@defisaver/automation-sdk 3.0.2 → 3.0.3
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/esm/constants/index.js +5 -0
- package/esm/services/strategiesService.js +12 -0
- package/esm/services/strategySubService.d.ts +1 -0
- package/esm/services/strategySubService.js +7 -0
- package/esm/services/strategySubService.test.js +34 -0
- package/esm/services/subDataService.d.ts +9 -0
- package/esm/services/subDataService.js +31 -1
- package/esm/services/subDataService.test.js +45 -0
- package/esm/services/triggerService.d.ts +8 -0
- package/esm/services/triggerService.js +15 -1
- package/esm/services/triggerService.test.js +28 -0
- package/esm/types/enums.d.ts +3 -1
- package/esm/types/enums.js +2 -0
- package/package.json +1 -1
- package/src/constants/index.ts +5 -0
- package/src/services/strategiesService.ts +16 -0
- package/src/services/strategySubService.test.ts +38 -0
- package/src/services/strategySubService.ts +17 -0
- package/src/services/subDataService.test.ts +53 -1
- package/src/services/subDataService.ts +38 -0
- package/src/services/triggerService.test.ts +30 -0
- package/src/services/triggerService.ts +21 -1
- package/src/types/enums.ts +2 -0
- package/umd/index.js +123 -53
package/esm/constants/index.js
CHANGED
|
@@ -90,6 +90,11 @@ exports.MAINNET_STRATEGIES_INFO = {
|
|
|
90
90
|
strategyId: enums_1.Strategies.Identifiers.DebtInFrontRepay,
|
|
91
91
|
protocol: exports.PROTOCOLS.Liquity,
|
|
92
92
|
},
|
|
93
|
+
[enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK]: {
|
|
94
|
+
strategyOrBundleId: enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK,
|
|
95
|
+
strategyId: enums_1.Strategies.Identifiers.Payback,
|
|
96
|
+
protocol: exports.PROTOCOLS.CrvUSD,
|
|
97
|
+
},
|
|
93
98
|
};
|
|
94
99
|
exports.OPTIMISM_STRATEGIES_INFO = {
|
|
95
100
|
[enums_1.Strategies.OptimismIds.EXCHANGE_DCA]: {
|
|
@@ -545,6 +545,17 @@ function parseCrvUSDLeverageManagement(position, parseData) {
|
|
|
545
545
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
546
546
|
return _position;
|
|
547
547
|
}
|
|
548
|
+
function parseCrvUSDPayback(position, parseData) {
|
|
549
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
550
|
+
const { subStruct } = parseData.subscriptionEventData;
|
|
551
|
+
const triggerData = triggerService.crvUsdHealthRatioTrigger.decode(subStruct.triggerData);
|
|
552
|
+
const subData = subDataService.crvUSDPaybackSubData.decode(subStruct.subData);
|
|
553
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
554
|
+
_position.strategyData.decoded.subData = subData;
|
|
555
|
+
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller, Math.random());
|
|
556
|
+
_position.strategy.strategyId = enums_1.Strategies.Identifiers.Payback;
|
|
557
|
+
return _position;
|
|
558
|
+
}
|
|
548
559
|
function parseMorphoBlueLeverageManagement(position, parseData) {
|
|
549
560
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
550
561
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
@@ -640,6 +651,7 @@ const parsingMethodsMapping = {
|
|
|
640
651
|
[enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
641
652
|
[enums_1.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
642
653
|
[enums_1.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement,
|
|
654
|
+
[enums_1.Strategies.Identifiers.Payback]: parseCrvUSDPayback,
|
|
643
655
|
},
|
|
644
656
|
[enums_1.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue]: {
|
|
645
657
|
[enums_1.Strategies.Identifiers.Repay]: parseMorphoBlueLeverageManagement,
|
|
@@ -80,6 +80,7 @@ export declare const sparkEncode: {
|
|
|
80
80
|
};
|
|
81
81
|
export declare const crvUSDEncode: {
|
|
82
82
|
leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
83
|
+
payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
83
84
|
};
|
|
84
85
|
export declare const morphoBlueEncode: {
|
|
85
86
|
leverageManagement(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
@@ -232,6 +232,13 @@ exports.crvUSDEncode = {
|
|
|
232
232
|
const isBundle = true;
|
|
233
233
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
234
234
|
},
|
|
235
|
+
payback(proxyAddress, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr, controllerAddr, minHealthRatio) {
|
|
236
|
+
const subData = subDataService.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
|
|
237
|
+
const triggerData = triggerService.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
|
|
238
|
+
const strategyId = enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK;
|
|
239
|
+
const isBundle = false;
|
|
240
|
+
return [strategyId, isBundle, triggerData, subData];
|
|
241
|
+
},
|
|
235
242
|
};
|
|
236
243
|
exports.morphoBlueEncode = {
|
|
237
244
|
leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user) {
|
|
@@ -750,6 +750,40 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
750
750
|
});
|
|
751
751
|
});
|
|
752
752
|
});
|
|
753
|
+
describe('payback()', () => {
|
|
754
|
+
const examples = [
|
|
755
|
+
[
|
|
756
|
+
[
|
|
757
|
+
enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK,
|
|
758
|
+
false,
|
|
759
|
+
[
|
|
760
|
+
'0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000',
|
|
761
|
+
],
|
|
762
|
+
[
|
|
763
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
764
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
765
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
766
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
767
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e'
|
|
768
|
+
],
|
|
769
|
+
],
|
|
770
|
+
[
|
|
771
|
+
web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'),
|
|
772
|
+
web3Utils.toChecksumAddress('0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280'),
|
|
773
|
+
web3Utils.toChecksumAddress('0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280'),
|
|
774
|
+
'20000',
|
|
775
|
+
'0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E',
|
|
776
|
+
web3Utils.toChecksumAddress('0xA920De414eA4Ab66b97dA1bFE9e6EcA7d4219635'),
|
|
777
|
+
20,
|
|
778
|
+
]
|
|
779
|
+
]
|
|
780
|
+
];
|
|
781
|
+
examples.forEach(([expected, actual]) => {
|
|
782
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
783
|
+
(0, chai_1.expect)(strategySubService_1.crvUSDEncode.payback(...actual)).to.eql(expected);
|
|
784
|
+
});
|
|
785
|
+
});
|
|
786
|
+
});
|
|
753
787
|
});
|
|
754
788
|
describe('When testing strategySubService.morphoBlueEncode', () => {
|
|
755
789
|
describe('leverageManagement()', () => {
|
|
@@ -158,6 +158,15 @@ export declare const crvUSDLeverageManagementSubData: {
|
|
|
158
158
|
targetRatio: number;
|
|
159
159
|
};
|
|
160
160
|
};
|
|
161
|
+
export declare const crvUSDPaybackSubData: {
|
|
162
|
+
encode: (controllerAddr: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress) => string[];
|
|
163
|
+
decode: (subData: string[]) => {
|
|
164
|
+
controller: string;
|
|
165
|
+
addressToPullTokensFrom: string;
|
|
166
|
+
positionOwner: string;
|
|
167
|
+
paybackAmount: string;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
161
170
|
export declare const morphoBlueLeverageManagementSubData: {
|
|
162
171
|
encode: (loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, user: EthereumAddress) => string[];
|
|
163
172
|
decode: (subData: string[]) => {
|
|
@@ -3,9 +3,10 @@ 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.morphoBlueLeverageManagementSubData = 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;
|
|
6
|
+
exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = 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
|
+
const web3_utils_1 = require("web3-utils");
|
|
9
10
|
const tokens_1 = require("@defisaver/tokens");
|
|
10
11
|
const sdk_1 = require("@defisaver/sdk");
|
|
11
12
|
const enums_1 = require("../types/enums");
|
|
@@ -378,6 +379,35 @@ exports.crvUSDLeverageManagementSubData = {
|
|
|
378
379
|
return { controller, targetRatio };
|
|
379
380
|
},
|
|
380
381
|
};
|
|
382
|
+
exports.crvUSDPaybackSubData = {
|
|
383
|
+
encode: (controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr) => {
|
|
384
|
+
const controllerAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', controllerAddr);
|
|
385
|
+
const addressToPullTokensFromEncoded = web3_eth_abi_1.default.encodeParameter('address', addressToPullTokensFrom);
|
|
386
|
+
const positionOwnerEncoded = web3_eth_abi_1.default.encodeParameter('address', positionOwner);
|
|
387
|
+
const paybackAmountEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, web3_utils_1.toWei)(paybackAmount, 'ether'));
|
|
388
|
+
const crvUSDAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', crvUSDAddr);
|
|
389
|
+
return [
|
|
390
|
+
controllerAddrEncoded,
|
|
391
|
+
addressToPullTokensFromEncoded,
|
|
392
|
+
positionOwnerEncoded,
|
|
393
|
+
paybackAmountEncoded,
|
|
394
|
+
crvUSDAddrEncoded,
|
|
395
|
+
];
|
|
396
|
+
},
|
|
397
|
+
decode: (subData) => {
|
|
398
|
+
const controller = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
|
|
399
|
+
const addressToPullTokensFrom = web3_eth_abi_1.default.decodeParameter('address', subData[1]);
|
|
400
|
+
const positionOwner = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
|
|
401
|
+
const weiPaybackAmount = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
|
|
402
|
+
const paybackAmount = (0, web3_utils_1.fromWei)(weiPaybackAmount, 'ether');
|
|
403
|
+
return {
|
|
404
|
+
controller,
|
|
405
|
+
addressToPullTokensFrom,
|
|
406
|
+
positionOwner,
|
|
407
|
+
paybackAmount,
|
|
408
|
+
};
|
|
409
|
+
},
|
|
410
|
+
};
|
|
381
411
|
exports.morphoBlueLeverageManagementSubData = {
|
|
382
412
|
encode: (loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user) => {
|
|
383
413
|
const loanTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', loanToken);
|
|
@@ -1045,6 +1045,51 @@ describe('Feature: subDataService.ts', () => {
|
|
|
1045
1045
|
});
|
|
1046
1046
|
});
|
|
1047
1047
|
});
|
|
1048
|
+
describe('When testing subDataService.crvUSDPaybackSubData', () => {
|
|
1049
|
+
describe('encode()', () => {
|
|
1050
|
+
const examples = [
|
|
1051
|
+
[
|
|
1052
|
+
[
|
|
1053
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
1054
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1055
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1056
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
1057
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
1058
|
+
],
|
|
1059
|
+
['0xa920de414ea4ab66b97da1bfe9e6eca7d4219635', '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280', '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280', '20000', '0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E'],
|
|
1060
|
+
]
|
|
1061
|
+
];
|
|
1062
|
+
examples.forEach(([expected, actual]) => {
|
|
1063
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
1064
|
+
(0, chai_1.expect)(subDataService_1.crvUSDPaybackSubData.encode(...actual)).to.eql(expected);
|
|
1065
|
+
});
|
|
1066
|
+
});
|
|
1067
|
+
});
|
|
1068
|
+
describe('decode()', () => {
|
|
1069
|
+
const examples = [
|
|
1070
|
+
[
|
|
1071
|
+
{
|
|
1072
|
+
controller: '0xA920De414eA4Ab66b97dA1bFE9e6EcA7d4219635',
|
|
1073
|
+
addressToPullTokensFrom: '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280',
|
|
1074
|
+
positionOwner: '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280',
|
|
1075
|
+
paybackAmount: '20000'
|
|
1076
|
+
},
|
|
1077
|
+
[
|
|
1078
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
1079
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1080
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1081
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
1082
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
1083
|
+
]
|
|
1084
|
+
]
|
|
1085
|
+
];
|
|
1086
|
+
examples.forEach(([expected, actual]) => {
|
|
1087
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
1088
|
+
(0, chai_1.expect)(subDataService_1.crvUSDPaybackSubData.decode(actual)).to.eql(expected);
|
|
1089
|
+
});
|
|
1090
|
+
});
|
|
1091
|
+
});
|
|
1092
|
+
});
|
|
1048
1093
|
describe('When testing subDataService.compoundV3L2LeverageManagementSubData', () => {
|
|
1049
1094
|
describe('encode()', () => {
|
|
1050
1095
|
const examples = [
|
|
@@ -172,6 +172,14 @@ export declare const crvUSDRatioTrigger: {
|
|
|
172
172
|
ratioState: number;
|
|
173
173
|
};
|
|
174
174
|
};
|
|
175
|
+
export declare const crvUsdHealthRatioTrigger: {
|
|
176
|
+
encode(owner: EthereumAddress, controller: EthereumAddress, ratioPercentage: number): string[];
|
|
177
|
+
decode(triggerData: string[]): {
|
|
178
|
+
owner: string;
|
|
179
|
+
controller: string;
|
|
180
|
+
ratio: number;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
175
183
|
export declare const morphoBlueRatioTrigger: {
|
|
176
184
|
encode(marketId: string, owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
|
|
177
185
|
decode(triggerData: string[]): {
|
|
@@ -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.morphoBlueRatioTrigger = exports.crvUSDRatioTrigger = exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
|
|
29
|
+
exports.morphoBlueRatioTrigger = exports.crvUsdHealthRatioTrigger = exports.crvUSDRatioTrigger = exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
|
|
30
30
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
31
31
|
const tokens_1 = require("@defisaver/tokens");
|
|
32
32
|
const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
|
|
@@ -335,6 +335,20 @@ exports.crvUSDRatioTrigger = {
|
|
|
335
335
|
};
|
|
336
336
|
},
|
|
337
337
|
};
|
|
338
|
+
exports.crvUsdHealthRatioTrigger = {
|
|
339
|
+
encode(owner, controller, ratioPercentage) {
|
|
340
|
+
const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
|
|
341
|
+
return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256'], [owner, controller, ratioWei])];
|
|
342
|
+
},
|
|
343
|
+
decode(triggerData) {
|
|
344
|
+
const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
|
|
345
|
+
return {
|
|
346
|
+
owner: decodedData[0],
|
|
347
|
+
controller: decodedData[1],
|
|
348
|
+
ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
|
|
349
|
+
};
|
|
350
|
+
},
|
|
351
|
+
};
|
|
338
352
|
exports.morphoBlueRatioTrigger = {
|
|
339
353
|
encode(marketId, // bytes32
|
|
340
354
|
owner, ratioPercentage, ratioState) {
|
|
@@ -859,6 +859,34 @@ describe('Feature: triggerService.ts', () => {
|
|
|
859
859
|
});
|
|
860
860
|
});
|
|
861
861
|
});
|
|
862
|
+
describe('When testing triggerService.crvUsdHealthRatioTrigger', () => {
|
|
863
|
+
describe('encode()', () => {
|
|
864
|
+
const examples = [
|
|
865
|
+
[
|
|
866
|
+
['0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000'],
|
|
867
|
+
[web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'), web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'), 20]
|
|
868
|
+
]
|
|
869
|
+
];
|
|
870
|
+
examples.forEach(([expected, actual]) => {
|
|
871
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
872
|
+
(0, chai_1.expect)(triggerService_1.crvUsdHealthRatioTrigger.encode(...actual)).to.eql(expected);
|
|
873
|
+
});
|
|
874
|
+
});
|
|
875
|
+
});
|
|
876
|
+
describe('decode()', () => {
|
|
877
|
+
const examples = [
|
|
878
|
+
[
|
|
879
|
+
{ owner: web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'), controller: web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'), ratio: 20 },
|
|
880
|
+
['0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000'],
|
|
881
|
+
],
|
|
882
|
+
];
|
|
883
|
+
examples.forEach(([expected, actual]) => {
|
|
884
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
885
|
+
(0, chai_1.expect)(triggerService_1.crvUsdHealthRatioTrigger.decode(actual)).to.eql(expected);
|
|
886
|
+
});
|
|
887
|
+
});
|
|
888
|
+
});
|
|
889
|
+
});
|
|
862
890
|
describe('When testing triggerService.morphoBlueRatioTrigger', () => {
|
|
863
891
|
describe('encode()', () => {
|
|
864
892
|
const examples = [
|
package/esm/types/enums.d.ts
CHANGED
|
@@ -58,7 +58,8 @@ export declare namespace Strategies {
|
|
|
58
58
|
EXCHANGE_LIMIT_ORDER = 51,
|
|
59
59
|
LIQUITY_DSR_PAYBACK = 69,
|
|
60
60
|
LIQUITY_DSR_SUPPLY = 70,
|
|
61
|
-
LIQUITY_DEBT_IN_FRONT_REPAY = 75
|
|
61
|
+
LIQUITY_DEBT_IN_FRONT_REPAY = 75,
|
|
62
|
+
CURVEUSD_PAYBACK = 92
|
|
62
63
|
}
|
|
63
64
|
enum OptimismIds {
|
|
64
65
|
EXCHANGE_DCA = 8,
|
|
@@ -85,6 +86,7 @@ export declare namespace Strategies {
|
|
|
85
86
|
TrailingStopToColl = "trailing-stop-to-collateral",
|
|
86
87
|
TrailingStopToDebt = "trailing-stop-to-debt",
|
|
87
88
|
Rebond = "rebond",
|
|
89
|
+
Payback = "payback",
|
|
88
90
|
BondProtection = "bond-protection",
|
|
89
91
|
Dca = "dca",
|
|
90
92
|
LimitOrder = "limit-order",
|
package/esm/types/enums.js
CHANGED
|
@@ -71,6 +71,7 @@ var Strategies;
|
|
|
71
71
|
MainnetIds[MainnetIds["LIQUITY_DSR_PAYBACK"] = 69] = "LIQUITY_DSR_PAYBACK";
|
|
72
72
|
MainnetIds[MainnetIds["LIQUITY_DSR_SUPPLY"] = 70] = "LIQUITY_DSR_SUPPLY";
|
|
73
73
|
MainnetIds[MainnetIds["LIQUITY_DEBT_IN_FRONT_REPAY"] = 75] = "LIQUITY_DEBT_IN_FRONT_REPAY";
|
|
74
|
+
MainnetIds[MainnetIds["CURVEUSD_PAYBACK"] = 92] = "CURVEUSD_PAYBACK";
|
|
74
75
|
})(MainnetIds = Strategies.MainnetIds || (Strategies.MainnetIds = {}));
|
|
75
76
|
let OptimismIds;
|
|
76
77
|
(function (OptimismIds) {
|
|
@@ -100,6 +101,7 @@ var Strategies;
|
|
|
100
101
|
Identifiers["TrailingStopToColl"] = "trailing-stop-to-collateral";
|
|
101
102
|
Identifiers["TrailingStopToDebt"] = "trailing-stop-to-debt";
|
|
102
103
|
Identifiers["Rebond"] = "rebond";
|
|
104
|
+
Identifiers["Payback"] = "payback";
|
|
103
105
|
Identifiers["BondProtection"] = "bond-protection";
|
|
104
106
|
Identifiers["Dca"] = "dca";
|
|
105
107
|
Identifiers["LimitOrder"] = "limit-order";
|
package/package.json
CHANGED
package/src/constants/index.ts
CHANGED
|
@@ -95,6 +95,11 @@ export const MAINNET_STRATEGIES_INFO: MainnetStrategiesInfo = {
|
|
|
95
95
|
strategyId: Strategies.Identifiers.DebtInFrontRepay,
|
|
96
96
|
protocol: PROTOCOLS.Liquity,
|
|
97
97
|
},
|
|
98
|
+
[Strategies.MainnetIds.CURVEUSD_PAYBACK]: {
|
|
99
|
+
strategyOrBundleId: Strategies.MainnetIds.CURVEUSD_PAYBACK,
|
|
100
|
+
strategyId: Strategies.Identifiers.Payback,
|
|
101
|
+
protocol: PROTOCOLS.CrvUSD,
|
|
102
|
+
},
|
|
98
103
|
};
|
|
99
104
|
|
|
100
105
|
export const OPTIMISM_STRATEGIES_INFO = {
|
|
@@ -721,6 +721,21 @@ function parseCrvUSDLeverageManagement(position: Position.Automated, parseData:
|
|
|
721
721
|
return _position;
|
|
722
722
|
}
|
|
723
723
|
|
|
724
|
+
function parseCrvUSDPayback(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
725
|
+
const _position = cloneDeep(position);
|
|
726
|
+
|
|
727
|
+
const { subStruct } = parseData.subscriptionEventData;
|
|
728
|
+
const triggerData = triggerService.crvUsdHealthRatioTrigger.decode(subStruct.triggerData);
|
|
729
|
+
const subData = subDataService.crvUSDPaybackSubData.decode(subStruct.subData);
|
|
730
|
+
|
|
731
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
732
|
+
_position.strategyData.decoded.subData = subData;
|
|
733
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller, Math.random());
|
|
734
|
+
_position.strategy.strategyId = Strategies.Identifiers.Payback;
|
|
735
|
+
|
|
736
|
+
return _position;
|
|
737
|
+
}
|
|
738
|
+
|
|
724
739
|
function parseMorphoBlueLeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
725
740
|
const _position = cloneDeep(position);
|
|
726
741
|
|
|
@@ -823,6 +838,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
823
838
|
[ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
824
839
|
[Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
825
840
|
[Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement,
|
|
841
|
+
[Strategies.Identifiers.Payback]: parseCrvUSDPayback,
|
|
826
842
|
},
|
|
827
843
|
[ProtocolIdentifiers.StrategiesAutomation.MorphoBlue]: {
|
|
828
844
|
[Strategies.Identifiers.Repay]: parseMorphoBlueLeverageManagement,
|
|
@@ -899,6 +899,44 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
899
899
|
});
|
|
900
900
|
});
|
|
901
901
|
});
|
|
902
|
+
describe('payback()', () => {
|
|
903
|
+
const examples: Array<[
|
|
904
|
+
[StrategyOrBundleIds, boolean, TriggerData, SubData],
|
|
905
|
+
[owner: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number],
|
|
906
|
+
]> = [
|
|
907
|
+
[
|
|
908
|
+
[
|
|
909
|
+
Strategies.MainnetIds.CURVEUSD_PAYBACK,
|
|
910
|
+
false,
|
|
911
|
+
[
|
|
912
|
+
'0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000',
|
|
913
|
+
],
|
|
914
|
+
[
|
|
915
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
916
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
917
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
918
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
919
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e'
|
|
920
|
+
],
|
|
921
|
+
],
|
|
922
|
+
[
|
|
923
|
+
web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'),
|
|
924
|
+
web3Utils.toChecksumAddress('0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280'),
|
|
925
|
+
web3Utils.toChecksumAddress('0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280'),
|
|
926
|
+
'20000',
|
|
927
|
+
'0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E',
|
|
928
|
+
web3Utils.toChecksumAddress('0xA920De414eA4Ab66b97dA1bFE9e6EcA7d4219635'),
|
|
929
|
+
20,
|
|
930
|
+
]
|
|
931
|
+
]
|
|
932
|
+
];
|
|
933
|
+
|
|
934
|
+
examples.forEach(([expected, actual]) => {
|
|
935
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
936
|
+
expect(crvUSDEncode.payback(...actual)).to.eql(expected);
|
|
937
|
+
});
|
|
938
|
+
});
|
|
939
|
+
});
|
|
902
940
|
});
|
|
903
941
|
describe('When testing strategySubService.morphoBlueEncode', () => {
|
|
904
942
|
describe('leverageManagement()', () => {
|
|
@@ -447,6 +447,23 @@ export const crvUSDEncode = {
|
|
|
447
447
|
|
|
448
448
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
449
449
|
},
|
|
450
|
+
payback(
|
|
451
|
+
proxyAddress: EthereumAddress,
|
|
452
|
+
addressToPullTokensFrom: EthereumAddress,
|
|
453
|
+
positionOwner: EthereumAddress,
|
|
454
|
+
paybackAmount: string,
|
|
455
|
+
crvUSDAddr: EthereumAddress,
|
|
456
|
+
controllerAddr: EthereumAddress,
|
|
457
|
+
minHealthRatio: number,
|
|
458
|
+
) {
|
|
459
|
+
const subData = subDataService.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
|
|
460
|
+
const triggerData = triggerService.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
|
|
461
|
+
|
|
462
|
+
const strategyId = Strategies.MainnetIds.CURVEUSD_PAYBACK;
|
|
463
|
+
const isBundle = false;
|
|
464
|
+
|
|
465
|
+
return [strategyId, isBundle, triggerData, subData];
|
|
466
|
+
},
|
|
450
467
|
};
|
|
451
468
|
|
|
452
469
|
export const morphoBlueEncode = {
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
sparkLeverageManagementSubData,
|
|
31
31
|
sparkQuotePriceSubData,
|
|
32
32
|
crvUSDLeverageManagementSubData,
|
|
33
|
-
compoundV3L2LeverageManagementSubData, morphoBlueLeverageManagementSubData,
|
|
33
|
+
compoundV3L2LeverageManagementSubData, morphoBlueLeverageManagementSubData, crvUSDPaybackSubData,
|
|
34
34
|
} from './subDataService';
|
|
35
35
|
|
|
36
36
|
describe('Feature: subDataService.ts', () => {
|
|
@@ -1125,6 +1125,58 @@ describe('Feature: subDataService.ts', () => {
|
|
|
1125
1125
|
});
|
|
1126
1126
|
});
|
|
1127
1127
|
|
|
1128
|
+
describe('When testing subDataService.crvUSDPaybackSubData', () => {
|
|
1129
|
+
describe('encode()', () => {
|
|
1130
|
+
const examples: Array<[SubData, [controller: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress]]> = [
|
|
1131
|
+
[
|
|
1132
|
+
[
|
|
1133
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
1134
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1135
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1136
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
1137
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
1138
|
+
],
|
|
1139
|
+
['0xa920de414ea4ab66b97da1bfe9e6eca7d4219635', '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280', '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280', '20000', '0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E'],
|
|
1140
|
+
]
|
|
1141
|
+
];
|
|
1142
|
+
examples.forEach(([expected, actual]) => {
|
|
1143
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
1144
|
+
expect(crvUSDPaybackSubData.encode(...actual)).to.eql(expected);
|
|
1145
|
+
});
|
|
1146
|
+
});
|
|
1147
|
+
});
|
|
1148
|
+
describe('decode()', () => {
|
|
1149
|
+
const examples: Array<[{
|
|
1150
|
+
controller: EthereumAddress,
|
|
1151
|
+
addressToPullTokensFrom: EthereumAddress,
|
|
1152
|
+
positionOwner: EthereumAddress,
|
|
1153
|
+
paybackAmount: string,
|
|
1154
|
+
}, SubData]> = [
|
|
1155
|
+
[
|
|
1156
|
+
{
|
|
1157
|
+
controller: '0xA920De414eA4Ab66b97dA1bFE9e6EcA7d4219635',
|
|
1158
|
+
addressToPullTokensFrom: '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280',
|
|
1159
|
+
positionOwner: '0xDc0Ad7a48088f1AA55d26f8b36F7C1E827DdD280',
|
|
1160
|
+
paybackAmount: '20000'
|
|
1161
|
+
},
|
|
1162
|
+
[
|
|
1163
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
1164
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1165
|
+
'0x000000000000000000000000dc0ad7a48088f1aa55d26f8b36f7c1e827ddd280',
|
|
1166
|
+
'0x00000000000000000000000000000000000000000000043c33c1937564800000',
|
|
1167
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
1168
|
+
]
|
|
1169
|
+
]
|
|
1170
|
+
];
|
|
1171
|
+
|
|
1172
|
+
examples.forEach(([expected, actual]) => {
|
|
1173
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
1174
|
+
expect(crvUSDPaybackSubData.decode(actual)).to.eql(expected);
|
|
1175
|
+
});
|
|
1176
|
+
});
|
|
1177
|
+
});
|
|
1178
|
+
});
|
|
1179
|
+
|
|
1128
1180
|
describe('When testing subDataService.compoundV3L2LeverageManagementSubData', () => {
|
|
1129
1181
|
describe('encode()', () => {
|
|
1130
1182
|
const examples: Array<[
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Dec from 'decimal.js';
|
|
2
2
|
import AbiCoder from 'web3-eth-abi';
|
|
3
|
+
import { fromWei, toWei } from 'web3-utils';
|
|
4
|
+
|
|
3
5
|
import { assetAmountInEth, getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
|
|
4
6
|
import { otherAddresses } from '@defisaver/sdk';
|
|
5
7
|
|
|
@@ -511,6 +513,42 @@ export const crvUSDLeverageManagementSubData = {
|
|
|
511
513
|
},
|
|
512
514
|
};
|
|
513
515
|
|
|
516
|
+
export const crvUSDPaybackSubData = {
|
|
517
|
+
encode: (
|
|
518
|
+
controllerAddr: EthereumAddress,
|
|
519
|
+
addressToPullTokensFrom: EthereumAddress,
|
|
520
|
+
positionOwner: EthereumAddress,
|
|
521
|
+
paybackAmount: string,
|
|
522
|
+
crvUSDAddr: EthereumAddress,
|
|
523
|
+
) => {
|
|
524
|
+
const controllerAddrEncoded = AbiCoder.encodeParameter('address', controllerAddr);
|
|
525
|
+
const addressToPullTokensFromEncoded = AbiCoder.encodeParameter('address', addressToPullTokensFrom);
|
|
526
|
+
const positionOwnerEncoded = AbiCoder.encodeParameter('address', positionOwner);
|
|
527
|
+
const paybackAmountEncoded = AbiCoder.encodeParameter('uint256', toWei(paybackAmount, 'ether'));
|
|
528
|
+
const crvUSDAddrEncoded = AbiCoder.encodeParameter('address', crvUSDAddr);
|
|
529
|
+
return [
|
|
530
|
+
controllerAddrEncoded,
|
|
531
|
+
addressToPullTokensFromEncoded,
|
|
532
|
+
positionOwnerEncoded,
|
|
533
|
+
paybackAmountEncoded,
|
|
534
|
+
crvUSDAddrEncoded,
|
|
535
|
+
];
|
|
536
|
+
},
|
|
537
|
+
decode: (subData: SubData) => {
|
|
538
|
+
const controller = AbiCoder.decodeParameter('address', subData[0]) as unknown as EthereumAddress;
|
|
539
|
+
const addressToPullTokensFrom = AbiCoder.decodeParameter('address', subData[1]) as any as EthereumAddress;
|
|
540
|
+
const positionOwner = AbiCoder.decodeParameter('address', subData[2]) as any as EthereumAddress;
|
|
541
|
+
const weiPaybackAmount = AbiCoder.decodeParameter('uint256', subData[3]) as any as string;
|
|
542
|
+
const paybackAmount = fromWei(weiPaybackAmount, 'ether');
|
|
543
|
+
return {
|
|
544
|
+
controller,
|
|
545
|
+
addressToPullTokensFrom,
|
|
546
|
+
positionOwner,
|
|
547
|
+
paybackAmount,
|
|
548
|
+
};
|
|
549
|
+
},
|
|
550
|
+
};
|
|
551
|
+
|
|
514
552
|
export const morphoBlueLeverageManagementSubData = {
|
|
515
553
|
encode: (
|
|
516
554
|
loanToken: EthereumAddress,
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
liquityDebtInFrontWithLimitTrigger,
|
|
29
29
|
crvUSDRatioTrigger,
|
|
30
30
|
morphoBlueRatioTrigger,
|
|
31
|
+
crvUsdHealthRatioTrigger,
|
|
31
32
|
} from './triggerService';
|
|
32
33
|
|
|
33
34
|
describe('Feature: triggerService.ts', () => {
|
|
@@ -934,6 +935,35 @@ describe('Feature: triggerService.ts', () => {
|
|
|
934
935
|
});
|
|
935
936
|
});
|
|
936
937
|
|
|
938
|
+
describe('When testing triggerService.crvUsdHealthRatioTrigger', () => {
|
|
939
|
+
describe('encode()', () => {
|
|
940
|
+
const examples: Array<[[string], [owner: EthereumAddress, controller: EthereumAddress, ratioPercentage: number]]> = [
|
|
941
|
+
[
|
|
942
|
+
['0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000'],
|
|
943
|
+
[web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'), web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'), 20]
|
|
944
|
+
]
|
|
945
|
+
];
|
|
946
|
+
examples.forEach(([expected, actual]) => {
|
|
947
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
948
|
+
expect(crvUsdHealthRatioTrigger.encode(...actual)).to.eql(expected);
|
|
949
|
+
});
|
|
950
|
+
});
|
|
951
|
+
});
|
|
952
|
+
describe('decode()', () => {
|
|
953
|
+
const examples: Array<[{ owner: EthereumAddress, controller: EthereumAddress, ratio: number }, TriggerData]> = [
|
|
954
|
+
[
|
|
955
|
+
{ owner: web3Utils.toChecksumAddress('0x7a2af22ba3276108cd331c8985ef9528e10a871a'), controller: web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'), ratio: 20 },
|
|
956
|
+
['0x0000000000000000000000007a2af22ba3276108cd331c8985ef9528e10a871a000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d421963500000000000000000000000000000000000000000000000002c68af0bb140000'],
|
|
957
|
+
],
|
|
958
|
+
];
|
|
959
|
+
examples.forEach(([expected, actual]) => {
|
|
960
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
961
|
+
expect(crvUsdHealthRatioTrigger.decode(actual)).to.eql(expected);
|
|
962
|
+
});
|
|
963
|
+
});
|
|
964
|
+
});
|
|
965
|
+
});
|
|
966
|
+
|
|
937
967
|
describe('When testing triggerService.morphoBlueRatioTrigger', () => {
|
|
938
968
|
describe('encode()', () => {
|
|
939
969
|
const examples: Array<[[string], [marketId: string, owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState]]> = [
|
|
@@ -381,7 +381,6 @@ export const curveUsdSoftLiquidationTrigger = {
|
|
|
381
381
|
},
|
|
382
382
|
};
|
|
383
383
|
|
|
384
|
-
|
|
385
384
|
export const crvUSDRatioTrigger = {
|
|
386
385
|
encode(
|
|
387
386
|
owner: EthereumAddress,
|
|
@@ -405,6 +404,27 @@ export const crvUSDRatioTrigger = {
|
|
|
405
404
|
},
|
|
406
405
|
};
|
|
407
406
|
|
|
407
|
+
export const crvUsdHealthRatioTrigger = {
|
|
408
|
+
encode(
|
|
409
|
+
owner: EthereumAddress,
|
|
410
|
+
controller: EthereumAddress,
|
|
411
|
+
ratioPercentage: number,
|
|
412
|
+
) {
|
|
413
|
+
const ratioWei = ratioPercentageToWei(ratioPercentage);
|
|
414
|
+
return [AbiCoder.encodeParameters(['address', 'address', 'uint256'], [owner, controller, ratioWei])];
|
|
415
|
+
},
|
|
416
|
+
decode(
|
|
417
|
+
triggerData: TriggerData,
|
|
418
|
+
) {
|
|
419
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
|
|
420
|
+
return {
|
|
421
|
+
owner: decodedData[0] as EthereumAddress,
|
|
422
|
+
controller: decodedData[1] as EthereumAddress,
|
|
423
|
+
ratio: weiToRatioPercentage(decodedData[2] as string),
|
|
424
|
+
};
|
|
425
|
+
},
|
|
426
|
+
};
|
|
427
|
+
|
|
408
428
|
export const morphoBlueRatioTrigger = {
|
|
409
429
|
encode(
|
|
410
430
|
marketId: string, // bytes32
|
package/src/types/enums.ts
CHANGED
|
@@ -65,6 +65,7 @@ export namespace Strategies {
|
|
|
65
65
|
LIQUITY_DSR_PAYBACK = 69,
|
|
66
66
|
LIQUITY_DSR_SUPPLY = 70,
|
|
67
67
|
LIQUITY_DEBT_IN_FRONT_REPAY = 75,
|
|
68
|
+
CURVEUSD_PAYBACK = 92,
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
export enum OptimismIds {
|
|
@@ -94,6 +95,7 @@ export namespace Strategies {
|
|
|
94
95
|
TrailingStopToColl = 'trailing-stop-to-collateral',
|
|
95
96
|
TrailingStopToDebt = 'trailing-stop-to-debt',
|
|
96
97
|
Rebond = 'rebond',
|
|
98
|
+
Payback = 'payback',
|
|
97
99
|
BondProtection = 'bond-protection',
|
|
98
100
|
Dca = 'dca',
|
|
99
101
|
LimitOrder = 'limit-order',
|
package/umd/index.js
CHANGED
|
@@ -178,6 +178,11 @@ var MAINNET_STRATEGIES_INFO = {
|
|
|
178
178
|
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.MainnetIds.LIQUITY_DEBT_IN_FRONT_REPAY,
|
|
179
179
|
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.DebtInFrontRepay,
|
|
180
180
|
protocol: PROTOCOLS.Liquity
|
|
181
|
+
},
|
|
182
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.MainnetIds.CURVEUSD_PAYBACK]: {
|
|
183
|
+
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.MainnetIds.CURVEUSD_PAYBACK,
|
|
184
|
+
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.Payback,
|
|
185
|
+
protocol: PROTOCOLS.CrvUSD
|
|
181
186
|
}
|
|
182
187
|
};
|
|
183
188
|
var OPTIMISM_STRATEGIES_INFO = {
|
|
@@ -537,6 +542,7 @@ var Strategies;
|
|
|
537
542
|
MainnetIds[MainnetIds["LIQUITY_DSR_PAYBACK"] = 69] = "LIQUITY_DSR_PAYBACK";
|
|
538
543
|
MainnetIds[MainnetIds["LIQUITY_DSR_SUPPLY"] = 70] = "LIQUITY_DSR_SUPPLY";
|
|
539
544
|
MainnetIds[MainnetIds["LIQUITY_DEBT_IN_FRONT_REPAY"] = 75] = "LIQUITY_DEBT_IN_FRONT_REPAY";
|
|
545
|
+
MainnetIds[MainnetIds["CURVEUSD_PAYBACK"] = 92] = "CURVEUSD_PAYBACK";
|
|
540
546
|
})(MainnetIds || (MainnetIds = {}));
|
|
541
547
|
_Strategies.MainnetIds = MainnetIds;
|
|
542
548
|
var OptimismIds;
|
|
@@ -569,6 +575,7 @@ var Strategies;
|
|
|
569
575
|
Identifiers["TrailingStopToColl"] = "trailing-stop-to-collateral";
|
|
570
576
|
Identifiers["TrailingStopToDebt"] = "trailing-stop-to-debt";
|
|
571
577
|
Identifiers["Rebond"] = "rebond";
|
|
578
|
+
Identifiers["Payback"] = "payback";
|
|
572
579
|
Identifiers["BondProtection"] = "bond-protection";
|
|
573
580
|
Identifiers["Dca"] = "dca";
|
|
574
581
|
Identifiers["LimitOrder"] = "limit-order";
|
|
@@ -2253,6 +2260,19 @@ function parseCrvUSDLeverageManagement(position, parseData) {
|
|
|
2253
2260
|
_position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.LeverageManagement;
|
|
2254
2261
|
return _position;
|
|
2255
2262
|
}
|
|
2263
|
+
function parseCrvUSDPayback(position, parseData) {
|
|
2264
|
+
var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
|
|
2265
|
+
var {
|
|
2266
|
+
subStruct
|
|
2267
|
+
} = parseData.subscriptionEventData;
|
|
2268
|
+
var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_6__.crvUsdHealthRatioTrigger.decode(subStruct.triggerData);
|
|
2269
|
+
var subData = _subDataService__WEBPACK_IMPORTED_MODULE_5__.crvUSDPaybackSubData.decode(subStruct.subData);
|
|
2270
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
2271
|
+
_position.strategyData.decoded.subData = subData;
|
|
2272
|
+
_position.positionId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller, Math.random());
|
|
2273
|
+
_position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Payback;
|
|
2274
|
+
return _position;
|
|
2275
|
+
}
|
|
2256
2276
|
function parseMorphoBlueLeverageManagement(position, parseData) {
|
|
2257
2277
|
var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
|
|
2258
2278
|
var {
|
|
@@ -2352,7 +2372,8 @@ var parsingMethodsMapping = {
|
|
|
2352
2372
|
},
|
|
2353
2373
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
2354
2374
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
2355
|
-
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement
|
|
2375
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement,
|
|
2376
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Payback]: parseCrvUSDPayback
|
|
2356
2377
|
},
|
|
2357
2378
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue]: {
|
|
2358
2379
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseMorphoBlueLeverageManagement,
|
|
@@ -19631,6 +19652,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
19631
19652
|
/* harmony export */ compoundV3L2LeverageManagementSubData: () => (/* binding */ compoundV3L2LeverageManagementSubData),
|
|
19632
19653
|
/* harmony export */ compoundV3LeverageManagementSubData: () => (/* binding */ compoundV3LeverageManagementSubData),
|
|
19633
19654
|
/* harmony export */ crvUSDLeverageManagementSubData: () => (/* binding */ crvUSDLeverageManagementSubData),
|
|
19655
|
+
/* harmony export */ crvUSDPaybackSubData: () => (/* binding */ crvUSDPaybackSubData),
|
|
19634
19656
|
/* harmony export */ exchangeDcaSubData: () => (/* binding */ exchangeDcaSubData),
|
|
19635
19657
|
/* harmony export */ exchangeLimitOrderSubData: () => (/* binding */ exchangeLimitOrderSubData),
|
|
19636
19658
|
/* harmony export */ liquityCloseSubData: () => (/* binding */ liquityCloseSubData),
|
|
@@ -19652,12 +19674,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
19652
19674
|
/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(decimal_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
19653
19675
|
/* harmony import */ var web3_eth_abi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
|
|
19654
19676
|
/* harmony import */ var web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(web3_eth_abi__WEBPACK_IMPORTED_MODULE_1__);
|
|
19655
|
-
/* harmony import */ var
|
|
19656
|
-
/* harmony import */ var
|
|
19657
|
-
/* harmony import */ var
|
|
19658
|
-
/* harmony import */ var
|
|
19659
|
-
/* harmony import */ var
|
|
19660
|
-
/* harmony import */ var
|
|
19677
|
+
/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
|
|
19678
|
+
/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_2__);
|
|
19679
|
+
/* harmony import */ var _defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
|
|
19680
|
+
/* harmony import */ var _defisaver_tokens__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__);
|
|
19681
|
+
/* harmony import */ var _defisaver_sdk__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31);
|
|
19682
|
+
/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5);
|
|
19683
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4);
|
|
19684
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17);
|
|
19685
|
+
|
|
19661
19686
|
|
|
19662
19687
|
|
|
19663
19688
|
|
|
@@ -19667,11 +19692,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
19667
19692
|
|
|
19668
19693
|
var makerRepayFromSavingsSubData = {
|
|
19669
19694
|
encode(vaultId, targetRatioPercentage, chainId, daiAddr, mcdCdpManagerAddr) {
|
|
19670
|
-
var _daiAddr = daiAddr || (0,
|
|
19695
|
+
var _daiAddr = daiAddr || (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('DAI', chainId).address;
|
|
19671
19696
|
// @ts-ignore // TODO - this requires change in @defisaver/tokens
|
|
19672
|
-
var _mcdCdpManagerAddr = mcdCdpManagerAddr || (0,
|
|
19697
|
+
var _mcdCdpManagerAddr = mcdCdpManagerAddr || (0,_defisaver_sdk__WEBPACK_IMPORTED_MODULE_4__.otherAddresses)(chainId).McdCdpManager;
|
|
19673
19698
|
var vaultIdEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', vaultId.toString());
|
|
19674
|
-
var targetRatioWei = (0,
|
|
19699
|
+
var targetRatioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatioPercentage);
|
|
19675
19700
|
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', targetRatioWei);
|
|
19676
19701
|
var daiAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _daiAddr);
|
|
19677
19702
|
var mcdManagerAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _mcdCdpManagerAddr);
|
|
@@ -19680,7 +19705,7 @@ var makerRepayFromSavingsSubData = {
|
|
|
19680
19705
|
decode(subData) {
|
|
19681
19706
|
var vaultId = +web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[0]).toString();
|
|
19682
19707
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
19683
|
-
var targetRatio = (0,
|
|
19708
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19684
19709
|
var daiAddr = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[2]).toString();
|
|
19685
19710
|
var mcdManagerAddr = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[3]).toString();
|
|
19686
19711
|
return {
|
|
@@ -19694,7 +19719,7 @@ var makerRepayFromSavingsSubData = {
|
|
|
19694
19719
|
var liquityRepayFromSavingsSubData = {
|
|
19695
19720
|
decode(subData) {
|
|
19696
19721
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
19697
|
-
var targetRatio = (0,
|
|
19722
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19698
19723
|
return {
|
|
19699
19724
|
targetRatio
|
|
19700
19725
|
};
|
|
@@ -19702,13 +19727,13 @@ var liquityRepayFromSavingsSubData = {
|
|
|
19702
19727
|
};
|
|
19703
19728
|
var makerCloseSubData = {
|
|
19704
19729
|
encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr) {
|
|
19705
|
-
var _daiAddr = daiAddr || (0,
|
|
19730
|
+
var _daiAddr = daiAddr || (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('DAI', chainId).address;
|
|
19706
19731
|
// @ts-ignore // TODO - this requires change in @defisaver/tokens
|
|
19707
|
-
var _mcdCdpManagerAddr = mcdCdpManagerAddr || (0,
|
|
19732
|
+
var _mcdCdpManagerAddr = mcdCdpManagerAddr || (0,_defisaver_sdk__WEBPACK_IMPORTED_MODULE_4__.otherAddresses)(chainId).McdCdpManager;
|
|
19708
19733
|
var vaultIdEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', vaultId.toString());
|
|
19709
19734
|
var daiAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _daiAddr);
|
|
19710
19735
|
var mcdManagerAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _mcdCdpManagerAddr);
|
|
19711
|
-
if ((0,
|
|
19736
|
+
if ((0,_utils__WEBPACK_IMPORTED_MODULE_7__.compareAddresses)(closeToAssetAddr, _daiAddr)) {
|
|
19712
19737
|
// Close to DAI strategy
|
|
19713
19738
|
return [vaultIdEncoded, daiAddrEncoded, mcdManagerAddrEncoded];
|
|
19714
19739
|
}
|
|
@@ -19731,7 +19756,7 @@ var makerLeverageManagementSubData = {
|
|
|
19731
19756
|
decode: subData => {
|
|
19732
19757
|
var vaultId = +web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[0]).toString();
|
|
19733
19758
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
19734
|
-
var targetRatio = (0,
|
|
19759
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19735
19760
|
return {
|
|
19736
19761
|
vaultId,
|
|
19737
19762
|
targetRatio
|
|
@@ -19741,7 +19766,7 @@ var makerLeverageManagementSubData = {
|
|
|
19741
19766
|
var liquityLeverageManagementSubData = {
|
|
19742
19767
|
decode: subData => {
|
|
19743
19768
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
19744
|
-
var targetRatio = (0,
|
|
19769
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19745
19770
|
return {
|
|
19746
19771
|
targetRatio
|
|
19747
19772
|
};
|
|
@@ -19749,11 +19774,11 @@ var liquityLeverageManagementSubData = {
|
|
|
19749
19774
|
};
|
|
19750
19775
|
var liquityCloseSubData = {
|
|
19751
19776
|
encode(closeToAssetAddr) {
|
|
19752
|
-
var chainId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
19777
|
+
var chainId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _types_enums__WEBPACK_IMPORTED_MODULE_5__.ChainId.Ethereum;
|
|
19753
19778
|
var collAddr = arguments.length > 2 ? arguments[2] : undefined;
|
|
19754
19779
|
var debtAddr = arguments.length > 3 ? arguments[3] : undefined;
|
|
19755
|
-
var _collAddr = collAddr || (0,
|
|
19756
|
-
var _debtAddr = debtAddr || (0,
|
|
19780
|
+
var _collAddr = collAddr || (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('WETH', chainId).address;
|
|
19781
|
+
var _debtAddr = debtAddr || (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('LUSD', chainId).address;
|
|
19757
19782
|
var collAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _collAddr);
|
|
19758
19783
|
var debtAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', _debtAddr);
|
|
19759
19784
|
// if (compareAddresses(closeToAssetAddr, _debtAddr)) { // Closing to debt strategy was not implemented, but it should be in the future
|
|
@@ -19780,7 +19805,7 @@ var aaveV2LeverageManagementSubData = {
|
|
|
19780
19805
|
},
|
|
19781
19806
|
decode(subData) {
|
|
19782
19807
|
var ratioWei = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
19783
|
-
var targetRatio = (0,
|
|
19808
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(ratioWei);
|
|
19784
19809
|
return {
|
|
19785
19810
|
targetRatio
|
|
19786
19811
|
};
|
|
@@ -19790,7 +19815,7 @@ var aaveV3LeverageManagementSubData = {
|
|
|
19790
19815
|
// TODO encode?
|
|
19791
19816
|
decode(subData) {
|
|
19792
19817
|
var ratioWei = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[0]);
|
|
19793
|
-
var targetRatio = (0,
|
|
19818
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(ratioWei);
|
|
19794
19819
|
return {
|
|
19795
19820
|
targetRatio
|
|
19796
19821
|
};
|
|
@@ -19798,7 +19823,7 @@ var aaveV3LeverageManagementSubData = {
|
|
|
19798
19823
|
};
|
|
19799
19824
|
var aaveV3QuotePriceSubData = {
|
|
19800
19825
|
encode(collAsset, collAssetId, debtAsset, debtAssetId) {
|
|
19801
|
-
var nullAddress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] :
|
|
19826
|
+
var nullAddress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants__WEBPACK_IMPORTED_MODULE_6__.ZERO_ADDRESS;
|
|
19802
19827
|
var encodedColl = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', collAsset);
|
|
19803
19828
|
var encodedCollId = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', collAssetId);
|
|
19804
19829
|
var encodedDebt = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', debtAsset);
|
|
@@ -19827,7 +19852,7 @@ var compoundV2LeverageManagementSubData = {
|
|
|
19827
19852
|
},
|
|
19828
19853
|
decode(subData) {
|
|
19829
19854
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[0]);
|
|
19830
|
-
var targetRatio = (0,
|
|
19855
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19831
19856
|
return {
|
|
19832
19857
|
targetRatio
|
|
19833
19858
|
};
|
|
@@ -19841,7 +19866,7 @@ var compoundV3LeverageManagementSubData = {
|
|
|
19841
19866
|
},
|
|
19842
19867
|
decode(subData) {
|
|
19843
19868
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[3]);
|
|
19844
|
-
var targetRatio = (0,
|
|
19869
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
19845
19870
|
return {
|
|
19846
19871
|
targetRatio
|
|
19847
19872
|
};
|
|
@@ -19861,7 +19886,7 @@ var compoundV3L2LeverageManagementSubData = {
|
|
|
19861
19886
|
},
|
|
19862
19887
|
decode(subData) {
|
|
19863
19888
|
var ratioWei = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[3]);
|
|
19864
|
-
var targetRatio = (0,
|
|
19889
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(ratioWei);
|
|
19865
19890
|
return {
|
|
19866
19891
|
targetRatio
|
|
19867
19892
|
};
|
|
@@ -19869,13 +19894,13 @@ var compoundV3L2LeverageManagementSubData = {
|
|
|
19869
19894
|
};
|
|
19870
19895
|
var morphoAaveV2LeverageManagementSubData = {
|
|
19871
19896
|
encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
19872
|
-
return [(0,
|
|
19897
|
+
return [(0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(triggerRepayRatio), (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(triggerBoostRatio), (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetBoostRatio), (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRepayRatio),
|
|
19873
19898
|
// @ts-ignore
|
|
19874
19899
|
boostEnabled];
|
|
19875
19900
|
},
|
|
19876
19901
|
decode(subData) {
|
|
19877
19902
|
var ratioWei = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint128', subData[1]);
|
|
19878
|
-
var targetRatio = (0,
|
|
19903
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(ratioWei);
|
|
19879
19904
|
return {
|
|
19880
19905
|
targetRatio
|
|
19881
19906
|
};
|
|
@@ -19900,11 +19925,11 @@ var liquityPaybackUsingChickenBondSubData = {
|
|
|
19900
19925
|
* @param chainId
|
|
19901
19926
|
*/
|
|
19902
19927
|
encode: function encode(sourceId, sourceType) {
|
|
19903
|
-
var chainId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] :
|
|
19928
|
+
var chainId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _types_enums__WEBPACK_IMPORTED_MODULE_5__.ChainId.Ethereum;
|
|
19904
19929
|
var sourceIdEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', sourceId);
|
|
19905
19930
|
var sourceTypeEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', sourceType);
|
|
19906
|
-
var lusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', (0,
|
|
19907
|
-
var bLusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', (0,
|
|
19931
|
+
var lusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('LUSD', chainId).address);
|
|
19932
|
+
var bLusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('bLUSD', chainId).address);
|
|
19908
19933
|
return [sourceIdEncoded, sourceTypeEncoded, lusdAddressEncoded, bLusdAddressEncoded];
|
|
19909
19934
|
},
|
|
19910
19935
|
decode: subData => {
|
|
@@ -19927,7 +19952,7 @@ var exchangeDcaSubData = {
|
|
|
19927
19952
|
decode: (subData, chainId) => {
|
|
19928
19953
|
var fromToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]).toString();
|
|
19929
19954
|
var toToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[1]).toString();
|
|
19930
|
-
var amount = (0,
|
|
19955
|
+
var amount = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.assetAmountInEth)(web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[2]).toString(), (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfoByAddress)(fromToken, chainId).symbol);
|
|
19931
19956
|
var interval = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[3]).toString();
|
|
19932
19957
|
return {
|
|
19933
19958
|
fromToken,
|
|
@@ -19944,7 +19969,7 @@ var exchangeLimitOrderSubData = {
|
|
|
19944
19969
|
decode: (subData, chainId) => {
|
|
19945
19970
|
var fromToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]).toString();
|
|
19946
19971
|
var toToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[1]).toString();
|
|
19947
|
-
var amount = (0,
|
|
19972
|
+
var amount = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.assetAmountInEth)(web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[2]).toString(), (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfoByAddress)(fromToken, chainId).symbol);
|
|
19948
19973
|
return {
|
|
19949
19974
|
fromToken,
|
|
19950
19975
|
toToken,
|
|
@@ -19956,7 +19981,7 @@ var sparkLeverageManagementSubData = {
|
|
|
19956
19981
|
// TODO encode?
|
|
19957
19982
|
decode(subData) {
|
|
19958
19983
|
var ratioWei = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[0]);
|
|
19959
|
-
var targetRatio = (0,
|
|
19984
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(ratioWei);
|
|
19960
19985
|
return {
|
|
19961
19986
|
targetRatio
|
|
19962
19987
|
};
|
|
@@ -19964,7 +19989,7 @@ var sparkLeverageManagementSubData = {
|
|
|
19964
19989
|
};
|
|
19965
19990
|
var sparkQuotePriceSubData = {
|
|
19966
19991
|
encode(collAsset, collAssetId, debtAsset, debtAssetId) {
|
|
19967
|
-
var nullAddress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] :
|
|
19992
|
+
var nullAddress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants__WEBPACK_IMPORTED_MODULE_6__.ZERO_ADDRESS;
|
|
19968
19993
|
var encodedColl = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', collAsset);
|
|
19969
19994
|
var encodedCollId = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', collAssetId);
|
|
19970
19995
|
var encodedDebt = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', debtAsset);
|
|
@@ -19987,17 +20012,17 @@ var sparkQuotePriceSubData = {
|
|
|
19987
20012
|
};
|
|
19988
20013
|
var liquityDsrPaybackSubData = {
|
|
19989
20014
|
encode: targetRatio => {
|
|
19990
|
-
var daiAddress = (0,
|
|
19991
|
-
var lusdAddress = (0,
|
|
19992
|
-
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8',
|
|
19993
|
-
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,
|
|
20015
|
+
var daiAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('DAI').address;
|
|
20016
|
+
var lusdAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('LUSD').address;
|
|
20017
|
+
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', _types_enums__WEBPACK_IMPORTED_MODULE_5__.RatioState.UNDER);
|
|
20018
|
+
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatio));
|
|
19994
20019
|
var daiAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', daiAddress);
|
|
19995
20020
|
var lusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', lusdAddress);
|
|
19996
20021
|
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, lusdAddressEncoded];
|
|
19997
20022
|
},
|
|
19998
20023
|
decode: subData => {
|
|
19999
20024
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
20000
|
-
var targetRatio = (0,
|
|
20025
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
20001
20026
|
return {
|
|
20002
20027
|
targetRatio
|
|
20003
20028
|
};
|
|
@@ -20005,17 +20030,17 @@ var liquityDsrPaybackSubData = {
|
|
|
20005
20030
|
};
|
|
20006
20031
|
var liquityDsrSupplySubData = {
|
|
20007
20032
|
encode: targetRatio => {
|
|
20008
|
-
var daiAddress = (0,
|
|
20009
|
-
var wethAddress = (0,
|
|
20010
|
-
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8',
|
|
20011
|
-
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,
|
|
20033
|
+
var daiAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('DAI').address;
|
|
20034
|
+
var wethAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('WETH').address;
|
|
20035
|
+
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', _types_enums__WEBPACK_IMPORTED_MODULE_5__.RatioState.UNDER);
|
|
20036
|
+
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatio));
|
|
20012
20037
|
var daiAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', daiAddress);
|
|
20013
20038
|
var wethAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', wethAddress);
|
|
20014
20039
|
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, wethAddressEncoded];
|
|
20015
20040
|
},
|
|
20016
20041
|
decode: subData => {
|
|
20017
20042
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[1]);
|
|
20018
|
-
var targetRatio = (0,
|
|
20043
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
20019
20044
|
return {
|
|
20020
20045
|
targetRatio
|
|
20021
20046
|
};
|
|
@@ -20023,11 +20048,11 @@ var liquityDsrSupplySubData = {
|
|
|
20023
20048
|
};
|
|
20024
20049
|
var liquityDebtInFrontRepaySubData = {
|
|
20025
20050
|
encode: targetRatioIncrease => {
|
|
20026
|
-
var wethAddress = (0,
|
|
20027
|
-
var lusdAddress = (0,
|
|
20051
|
+
var wethAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('WETH').address;
|
|
20052
|
+
var lusdAddress = (0,_defisaver_tokens__WEBPACK_IMPORTED_MODULE_3__.getAssetInfo)('LUSD').address;
|
|
20028
20053
|
var wethAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', wethAddress);
|
|
20029
20054
|
var lusdAddressEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', lusdAddress);
|
|
20030
|
-
var targetRatioIncreaseEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,
|
|
20055
|
+
var targetRatioIncreaseEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatioIncrease));
|
|
20031
20056
|
var withdrawIdEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', 1); // withdraw - 1
|
|
20032
20057
|
var paybackIdEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', 0); // payback - 0
|
|
20033
20058
|
|
|
@@ -20035,7 +20060,7 @@ var liquityDebtInFrontRepaySubData = {
|
|
|
20035
20060
|
},
|
|
20036
20061
|
decode: subData => {
|
|
20037
20062
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[2]);
|
|
20038
|
-
var targetRatioIncrease = (0,
|
|
20063
|
+
var targetRatioIncrease = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
20039
20064
|
return {
|
|
20040
20065
|
targetRatioIncrease
|
|
20041
20066
|
};
|
|
@@ -20045,7 +20070,7 @@ var crvUSDLeverageManagementSubData = {
|
|
|
20045
20070
|
encode: (controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr) => {
|
|
20046
20071
|
var controllerAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', controllerAddr);
|
|
20047
20072
|
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', ratioState);
|
|
20048
|
-
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,
|
|
20073
|
+
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatio));
|
|
20049
20074
|
var collTokenAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', collTokenAddr);
|
|
20050
20075
|
var crvUSDAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', crvUSDAddr);
|
|
20051
20076
|
return [controllerAddrEncoded, ratioStateEncoded, targetRatioEncoded, collTokenAddrEncoded, crvUSDAddrEncoded];
|
|
@@ -20053,13 +20078,36 @@ var crvUSDLeverageManagementSubData = {
|
|
|
20053
20078
|
decode: subData => {
|
|
20054
20079
|
var controller = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]);
|
|
20055
20080
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[2]);
|
|
20056
|
-
var targetRatio = (0,
|
|
20081
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
20057
20082
|
return {
|
|
20058
20083
|
controller,
|
|
20059
20084
|
targetRatio
|
|
20060
20085
|
};
|
|
20061
20086
|
}
|
|
20062
20087
|
};
|
|
20088
|
+
var crvUSDPaybackSubData = {
|
|
20089
|
+
encode: (controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr) => {
|
|
20090
|
+
var controllerAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', controllerAddr);
|
|
20091
|
+
var addressToPullTokensFromEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', addressToPullTokensFrom);
|
|
20092
|
+
var positionOwnerEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', positionOwner);
|
|
20093
|
+
var paybackAmountEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,web3_utils__WEBPACK_IMPORTED_MODULE_2__.toWei)(paybackAmount, 'ether'));
|
|
20094
|
+
var crvUSDAddrEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', crvUSDAddr);
|
|
20095
|
+
return [controllerAddrEncoded, addressToPullTokensFromEncoded, positionOwnerEncoded, paybackAmountEncoded, crvUSDAddrEncoded];
|
|
20096
|
+
},
|
|
20097
|
+
decode: subData => {
|
|
20098
|
+
var controller = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]);
|
|
20099
|
+
var addressToPullTokensFrom = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[1]);
|
|
20100
|
+
var positionOwner = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[2]);
|
|
20101
|
+
var weiPaybackAmount = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[3]);
|
|
20102
|
+
var paybackAmount = (0,web3_utils__WEBPACK_IMPORTED_MODULE_2__.fromWei)(weiPaybackAmount, 'ether');
|
|
20103
|
+
return {
|
|
20104
|
+
controller,
|
|
20105
|
+
addressToPullTokensFrom,
|
|
20106
|
+
positionOwner,
|
|
20107
|
+
paybackAmount
|
|
20108
|
+
};
|
|
20109
|
+
}
|
|
20110
|
+
};
|
|
20063
20111
|
var morphoBlueLeverageManagementSubData = {
|
|
20064
20112
|
encode: (loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user) => {
|
|
20065
20113
|
var loanTokenEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', loanToken);
|
|
@@ -20068,7 +20116,7 @@ var morphoBlueLeverageManagementSubData = {
|
|
|
20068
20116
|
var irmEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', irm);
|
|
20069
20117
|
var lltvEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', lltv);
|
|
20070
20118
|
var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', ratioState);
|
|
20071
|
-
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,
|
|
20119
|
+
var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_7__.ratioPercentageToWei)(targetRatio));
|
|
20072
20120
|
var userEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', user);
|
|
20073
20121
|
return [loanTokenEncoded, collTokenEncoded, oracleEncoded, irmEncoded, lltvEncoded, ratioStateEncoded, targetRatioEncoded, userEncoded];
|
|
20074
20122
|
},
|
|
@@ -20080,7 +20128,7 @@ var morphoBlueLeverageManagementSubData = {
|
|
|
20080
20128
|
var lltv = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[4]);
|
|
20081
20129
|
var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[6]);
|
|
20082
20130
|
var user = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[7]);
|
|
20083
|
-
var targetRatio = (0,
|
|
20131
|
+
var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.weiToRatioPercentage)(weiRatio);
|
|
20084
20132
|
return {
|
|
20085
20133
|
loanToken,
|
|
20086
20134
|
collToken,
|
|
@@ -33151,6 +33199,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
33151
33199
|
/* harmony export */ compoundV2RatioTrigger: () => (/* binding */ compoundV2RatioTrigger),
|
|
33152
33200
|
/* harmony export */ compoundV3RatioTrigger: () => (/* binding */ compoundV3RatioTrigger),
|
|
33153
33201
|
/* harmony export */ crvUSDRatioTrigger: () => (/* binding */ crvUSDRatioTrigger),
|
|
33202
|
+
/* harmony export */ crvUsdHealthRatioTrigger: () => (/* binding */ crvUsdHealthRatioTrigger),
|
|
33154
33203
|
/* harmony export */ curveUsdBorrowRateTrigger: () => (/* binding */ curveUsdBorrowRateTrigger),
|
|
33155
33204
|
/* harmony export */ curveUsdSoftLiquidationTrigger: () => (/* binding */ curveUsdSoftLiquidationTrigger),
|
|
33156
33205
|
/* harmony export */ exchangeOffchainPriceTrigger: () => (/* binding */ exchangeOffchainPriceTrigger),
|
|
@@ -33493,6 +33542,20 @@ var crvUSDRatioTrigger = {
|
|
|
33493
33542
|
};
|
|
33494
33543
|
}
|
|
33495
33544
|
};
|
|
33545
|
+
var crvUsdHealthRatioTrigger = {
|
|
33546
|
+
encode(owner, controller, ratioPercentage) {
|
|
33547
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
33548
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256'], [owner, controller, ratioWei])];
|
|
33549
|
+
},
|
|
33550
|
+
decode(triggerData) {
|
|
33551
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
|
|
33552
|
+
return {
|
|
33553
|
+
owner: decodedData[0],
|
|
33554
|
+
controller: decodedData[1],
|
|
33555
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2])
|
|
33556
|
+
};
|
|
33557
|
+
}
|
|
33558
|
+
};
|
|
33496
33559
|
var morphoBlueRatioTrigger = {
|
|
33497
33560
|
encode(marketId,
|
|
33498
33561
|
// bytes32
|
|
@@ -33830,6 +33893,13 @@ var crvUSDEncode = {
|
|
|
33830
33893
|
var strategyOrBundleId = ratioState === _types_enums__WEBPACK_IMPORTED_MODULE_2__.RatioState.OVER ? _types_enums__WEBPACK_IMPORTED_MODULE_2__.Bundles.MainnetIds.CRVUSD_BOOST : _types_enums__WEBPACK_IMPORTED_MODULE_2__.Bundles.MainnetIds.CRVUSD_REPAY;
|
|
33831
33894
|
var isBundle = true;
|
|
33832
33895
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
33896
|
+
},
|
|
33897
|
+
payback(proxyAddress, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr, controllerAddr, minHealthRatio) {
|
|
33898
|
+
var subData = _subDataService__WEBPACK_IMPORTED_MODULE_4__.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
|
|
33899
|
+
var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_5__.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
|
|
33900
|
+
var strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_2__.Strategies.MainnetIds.CURVEUSD_PAYBACK;
|
|
33901
|
+
var isBundle = false;
|
|
33902
|
+
return [strategyId, isBundle, triggerData, subData];
|
|
33833
33903
|
}
|
|
33834
33904
|
};
|
|
33835
33905
|
var morphoBlueEncode = {
|