@defisaver/automation-sdk 3.0.9-dev → 3.1.1-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +3 -3
- package/.editorconfig +9 -9
- package/.env.dev +4 -4
- package/.eslintignore +6 -7
- package/.eslintrc.js +39 -41
- package/.mocharc.json +5 -0
- package/.nvmrc +1 -0
- package/README.md +47 -41
- package/cjs/abis/Erc20.json +223 -0
- package/cjs/abis/SubStorage.json +21 -0
- package/cjs/abis/UniMulticall.json +17 -0
- package/cjs/abis/index.d.ts +9 -0
- package/cjs/abis/index.js +30 -0
- package/cjs/abis/legacy_AaveV2Subscriptions.json +8 -0
- package/cjs/abis/legacy_AuthCheck.json +8 -0
- package/cjs/abis/legacy_CompoundV2Subscriptions.json +9 -0
- package/cjs/abis/legacy_MakerSubscriptions.json +9 -0
- package/cjs/automation/private/Automation.d.ts +12 -0
- package/cjs/automation/private/Automation.js +42 -0
- package/cjs/automation/private/LegacyAutomation.d.ts +25 -0
- package/cjs/automation/private/LegacyAutomation.js +118 -0
- package/cjs/automation/private/LegacyProtocol.d.ts +22 -0
- package/cjs/automation/private/LegacyProtocol.js +41 -0
- package/cjs/automation/private/LegacyProtocol.test.d.ts +1 -0
- package/cjs/automation/private/LegacyProtocol.test.js +25 -0
- package/cjs/automation/private/Protocol.d.ts +22 -0
- package/cjs/automation/private/Protocol.js +41 -0
- package/cjs/automation/private/Protocol.test.d.ts +1 -0
- package/cjs/automation/private/Protocol.test.js +25 -0
- package/cjs/automation/private/StrategiesAutomation.d.ts +33 -0
- package/cjs/automation/private/StrategiesAutomation.js +181 -0
- package/cjs/automation/private/StrategiesAutomation.test.d.ts +1 -0
- package/cjs/automation/private/StrategiesAutomation.test.js +671 -0
- package/cjs/automation/public/ArbitrumStrategies.d.ts +5 -0
- package/cjs/automation/public/ArbitrumStrategies.js +13 -0
- package/cjs/automation/public/BaseStrategies.d.ts +5 -0
- package/cjs/automation/public/BaseStrategies.js +13 -0
- package/cjs/automation/public/EthereumStrategies.d.ts +5 -0
- package/cjs/automation/public/EthereumStrategies.js +13 -0
- package/cjs/automation/public/OptimismStrategies.d.ts +5 -0
- package/cjs/automation/public/OptimismStrategies.js +13 -0
- package/cjs/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -0
- package/cjs/automation/public/legacy/LegacyAaveAutomation.js +20 -0
- package/cjs/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -0
- package/cjs/automation/public/legacy/LegacyCompoundAutomation.js +20 -0
- package/cjs/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -0
- package/cjs/automation/public/legacy/LegacyMakerAutomation.js +20 -0
- package/cjs/configuration.d.ts +1 -0
- package/cjs/configuration.js +12 -0
- package/cjs/constants/index.d.ts +28 -0
- package/cjs/constants/index.js +484 -0
- package/cjs/index.d.ts +23 -0
- package/cjs/index.js +65 -0
- package/cjs/services/contractService.d.ts +12 -0
- package/cjs/services/contractService.js +54 -0
- package/cjs/services/ethereumService.d.ts +7 -0
- package/cjs/services/ethereumService.js +49 -0
- package/cjs/services/ethereumService.test.d.ts +1 -0
- package/cjs/services/ethereumService.test.js +242 -0
- package/cjs/services/strategiesService.d.ts +2 -0
- package/cjs/services/strategiesService.js +758 -0
- package/cjs/services/strategiesService.test.d.ts +1 -0
- package/cjs/services/strategiesService.test.js +110 -0
- package/cjs/services/strategySubService.d.ts +103 -0
- package/cjs/services/strategySubService.js +277 -0
- package/cjs/services/strategySubService.test.d.ts +1 -0
- package/cjs/services/strategySubService.test.js +934 -0
- package/cjs/services/subDataService.d.ts +201 -0
- package/cjs/services/subDataService.js +499 -0
- package/cjs/services/subDataService.test.d.ts +1 -0
- package/cjs/services/subDataService.test.js +1282 -0
- package/cjs/services/triggerService.d.ts +200 -0
- package/cjs/services/triggerService.js +382 -0
- package/cjs/services/triggerService.test.d.ts +1 -0
- package/cjs/services/triggerService.test.js +926 -0
- package/cjs/services/utils.d.ts +25 -0
- package/cjs/services/utils.js +131 -0
- package/cjs/services/utils.test.d.ts +1 -0
- package/cjs/services/utils.test.js +376 -0
- package/cjs/types/contracts/generated/Erc20.d.ts +53 -0
- package/cjs/types/contracts/generated/Erc20.js +5 -0
- package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -0
- package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.js +5 -0
- package/cjs/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -0
- package/cjs/types/contracts/generated/Legacy_AuthCheck.js +5 -0
- package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -0
- package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +5 -0
- package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -0
- package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.js +5 -0
- package/cjs/types/contracts/generated/SubStorage.d.ts +114 -0
- package/cjs/types/contracts/generated/SubStorage.js +5 -0
- package/cjs/types/contracts/generated/UniMulticall.d.ts +55 -0
- package/cjs/types/contracts/generated/UniMulticall.js +5 -0
- package/cjs/types/contracts/generated/index.d.ts +7 -0
- package/cjs/types/contracts/generated/index.js +2 -0
- package/cjs/types/contracts/generated/types.d.ts +54 -0
- package/cjs/types/contracts/generated/types.js +2 -0
- package/cjs/types/enums.d.ts +192 -0
- package/cjs/types/enums.js +216 -0
- package/cjs/types/index.d.ts +224 -0
- package/cjs/types/index.js +2 -0
- package/esm/abis/Erc20.json +223 -223
- package/esm/abis/SubStorage.json +21 -21
- package/esm/abis/UniMulticall.json +17 -17
- package/esm/abis/index.d.ts +9 -9
- package/esm/abis/index.js +18 -30
- package/esm/abis/legacy_AaveV2Subscriptions.json +8 -8
- package/esm/abis/legacy_AuthCheck.json +8 -8
- package/esm/abis/legacy_CompoundV2Subscriptions.json +9 -9
- package/esm/abis/legacy_MakerSubscriptions.json +9 -9
- package/esm/automation/private/Automation.d.ts +12 -12
- package/esm/automation/private/Automation.js +39 -42
- package/esm/automation/private/LegacyAutomation.d.ts +25 -25
- package/esm/automation/private/LegacyAutomation.js +112 -118
- package/esm/automation/private/LegacyProtocol.d.ts +22 -22
- package/esm/automation/private/LegacyProtocol.js +38 -41
- package/esm/automation/private/LegacyProtocol.test.d.ts +1 -1
- package/esm/automation/private/LegacyProtocol.test.js +20 -25
- package/esm/automation/private/Protocol.d.ts +22 -22
- package/esm/automation/private/Protocol.js +38 -41
- package/esm/automation/private/Protocol.test.d.ts +1 -1
- package/esm/automation/private/Protocol.test.js +20 -25
- package/esm/automation/private/StrategiesAutomation.d.ts +33 -33
- package/esm/automation/private/StrategiesAutomation.js +175 -181
- package/esm/automation/private/StrategiesAutomation.test.d.ts +1 -1
- package/esm/automation/private/StrategiesAutomation.test.js +666 -671
- package/esm/automation/public/ArbitrumStrategies.d.ts +5 -5
- package/esm/automation/public/ArbitrumStrategies.js +7 -13
- package/esm/automation/public/BaseStrategies.d.ts +5 -5
- package/esm/automation/public/BaseStrategies.js +7 -13
- package/esm/automation/public/EthereumStrategies.d.ts +5 -5
- package/esm/automation/public/EthereumStrategies.js +7 -13
- package/esm/automation/public/OptimismStrategies.d.ts +5 -5
- package/esm/automation/public/OptimismStrategies.js +7 -13
- package/esm/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyAaveAutomation.js +14 -20
- package/esm/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyCompoundAutomation.js +14 -20
- package/esm/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyMakerAutomation.js +14 -20
- package/esm/configuration.d.ts +1 -1
- package/esm/configuration.js +7 -12
- package/esm/constants/index.d.ts +28 -28
- package/esm/constants/index.js +478 -474
- package/esm/index.d.ts +23 -23
- package/esm/index.js +23 -65
- package/esm/services/contractService.d.ts +12 -12
- package/esm/services/contractService.js +45 -54
- package/esm/services/ethereumService.d.ts +7 -7
- package/esm/services/ethereumService.js +41 -49
- package/esm/services/ethereumService.test.d.ts +1 -1
- package/esm/services/ethereumService.test.js +237 -242
- package/esm/services/strategiesService.d.ts +2 -2
- package/esm/services/strategiesService.js +731 -723
- package/esm/services/strategiesService.test.d.ts +1 -1
- package/esm/services/strategiesService.test.js +108 -110
- package/esm/services/strategySubService.d.ts +103 -100
- package/esm/services/strategySubService.js +248 -264
- package/esm/services/strategySubService.test.d.ts +1 -1
- package/esm/services/strategySubService.test.js +906 -934
- package/esm/services/subDataService.d.ts +201 -192
- package/esm/services/subDataService.js +493 -475
- package/esm/services/subDataService.test.d.ts +1 -1
- package/esm/services/subDataService.test.js +1254 -1282
- package/esm/services/triggerService.d.ts +200 -191
- package/esm/services/triggerService.js +353 -367
- package/esm/services/triggerService.test.d.ts +1 -1
- package/esm/services/triggerService.test.js +901 -926
- package/esm/services/utils.d.ts +25 -25
- package/esm/services/utils.js +82 -131
- package/esm/services/utils.test.d.ts +1 -1
- package/esm/services/utils.test.js +348 -376
- package/esm/types/contracts/generated/Erc20.d.ts +53 -53
- package/esm/types/contracts/generated/Erc20.js +4 -5
- package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
- package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +4 -5
- package/esm/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
- package/esm/types/contracts/generated/Legacy_AuthCheck.js +4 -5
- package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
- package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +4 -5
- package/esm/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
- package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +4 -5
- package/esm/types/contracts/generated/SubStorage.d.ts +114 -114
- package/esm/types/contracts/generated/SubStorage.js +4 -5
- package/esm/types/contracts/generated/UniMulticall.d.ts +55 -55
- package/esm/types/contracts/generated/UniMulticall.js +4 -5
- package/esm/types/contracts/generated/index.d.ts +7 -7
- package/esm/types/contracts/generated/index.js +1 -2
- package/esm/types/contracts/generated/types.d.ts +54 -54
- package/esm/types/contracts/generated/types.js +1 -2
- package/esm/types/enums.d.ts +192 -181
- package/esm/types/enums.js +213 -203
- package/esm/types/index.d.ts +224 -224
- package/esm/types/index.js +1 -2
- package/package.json +61 -71
- package/scripts/generateContractTypes.js +39 -39
- package/src/abis/Erc20.json +222 -222
- package/src/abis/SubStorage.json +21 -21
- package/src/abis/UniMulticall.json +17 -17
- package/src/abis/index.ts +28 -28
- package/src/abis/legacy_AaveV2Subscriptions.json +7 -7
- package/src/abis/legacy_AuthCheck.json +7 -7
- package/src/abis/legacy_CompoundV2Subscriptions.json +8 -8
- package/src/abis/legacy_MakerSubscriptions.json +8 -8
- package/src/automation/private/Automation.ts +44 -44
- package/src/automation/private/LegacyAutomation.ts +135 -135
- package/src/automation/private/LegacyProtocol.test.ts +23 -23
- package/src/automation/private/LegacyProtocol.ts +51 -51
- package/src/automation/private/Protocol.test.ts +23 -23
- package/src/automation/private/Protocol.ts +51 -51
- package/src/automation/private/StrategiesAutomation.test.ts +663 -663
- package/src/automation/private/StrategiesAutomation.ts +242 -242
- package/src/automation/public/ArbitrumStrategies.ts +10 -10
- package/src/automation/public/BaseStrategies.ts +10 -10
- package/src/automation/public/EthereumStrategies.ts +10 -10
- package/src/automation/public/OptimismStrategies.ts +10 -10
- package/src/automation/public/legacy/LegacyAaveAutomation.ts +20 -20
- package/src/automation/public/legacy/LegacyCompoundAutomation.ts +20 -20
- package/src/automation/public/legacy/LegacyMakerAutomation.ts +20 -20
- package/src/configuration.ts +8 -8
- package/src/constants/index.ts +502 -492
- package/src/index.ts +39 -39
- package/src/services/contractService.ts +77 -77
- package/src/services/ethereumService.test.ts +257 -257
- package/src/services/ethereumService.ts +69 -69
- package/src/services/strategiesService.test.ts +105 -105
- package/src/services/strategiesService.ts +979 -934
- package/src/services/strategySubService.test.ts +1119 -1119
- package/src/services/strategySubService.ts +542 -518
- package/src/services/subDataService.test.ts +1387 -1387
- package/src/services/subDataService.ts +681 -645
- package/src/services/triggerService.test.ts +1004 -1004
- package/src/services/triggerService.ts +472 -449
- package/src/services/utils.test.ts +430 -430
- package/src/services/utils.ts +103 -103
- package/src/types/enums.ts +210 -197
- package/src/types/index.ts +279 -279
- package/tsconfig.esm.json +8 -0
- package/tsconfig.json +22 -79
- package/umd/index.js +40 -253
- package/.tests.sh +0 -3
- package/all_comits.txt +0 -2134
- package/webpack.umd.js +0 -52
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../configuration';
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const chai_1 = require("chai");
|
|
13
|
+
const enums_1 = require("../types/enums");
|
|
14
|
+
require("../configuration");
|
|
15
|
+
const strategiesService_1 = require("./strategiesService");
|
|
16
|
+
describe('Feature: strategiesService.ts', () => {
|
|
17
|
+
describe('When testing strategiesService.parseStrategiesAutomatedPosition', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
// TODO: we should probably write this for every strategy?
|
|
19
|
+
const examples = [
|
|
20
|
+
[
|
|
21
|
+
{
|
|
22
|
+
isEnabled: true,
|
|
23
|
+
chainId: 1,
|
|
24
|
+
positionId: '1-aave__v3-0x9cb7e19861665366011899d74e75d4f2a419aeed-0x2f39d218133afab8f2b819b1066c7e434ad94e9e',
|
|
25
|
+
subHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1',
|
|
26
|
+
blockNumber: 18015756,
|
|
27
|
+
subId: 379,
|
|
28
|
+
owner: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
|
|
29
|
+
protocol: {
|
|
30
|
+
id: enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3,
|
|
31
|
+
name: 'Aave',
|
|
32
|
+
slug: 'aave',
|
|
33
|
+
version: 'V3',
|
|
34
|
+
fullName: 'Aave V3'
|
|
35
|
+
},
|
|
36
|
+
strategy: {
|
|
37
|
+
isBundle: true,
|
|
38
|
+
strategyOrBundleId: 8,
|
|
39
|
+
strategyId: enums_1.Strategies.IdOverrides.LeverageManagement,
|
|
40
|
+
protocol: {
|
|
41
|
+
id: enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3,
|
|
42
|
+
name: 'Aave',
|
|
43
|
+
slug: 'aave',
|
|
44
|
+
version: 'V3',
|
|
45
|
+
fullName: 'Aave V3'
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
strategyData: {
|
|
49
|
+
encoded: {
|
|
50
|
+
triggerData: [
|
|
51
|
+
'0x0000000000000000000000009cb7e19861665366011899d74e75d4f2a419aeed0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e00000000000000000000000000000000000000000000000019ac8532c27900000000000000000000000000000000000000000000000000000000000000000001',
|
|
52
|
+
],
|
|
53
|
+
subData: [
|
|
54
|
+
'0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
|
|
55
|
+
'0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
56
|
+
'0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
57
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000'
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
decoded: {
|
|
61
|
+
triggerData: {
|
|
62
|
+
owner: '0x9cB7E19861665366011899d74E75d4F2A419aEeD',
|
|
63
|
+
market: '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e',
|
|
64
|
+
ratio: 185,
|
|
65
|
+
ratioState: 1
|
|
66
|
+
},
|
|
67
|
+
subData: { targetRatio: 200 }
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
specific: {
|
|
71
|
+
triggerRepayRatio: 185,
|
|
72
|
+
targetRepayRatio: 200,
|
|
73
|
+
repayEnabled: true,
|
|
74
|
+
subId1: 379,
|
|
75
|
+
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
chainId: 1,
|
|
80
|
+
blockNumber: 18015756,
|
|
81
|
+
subscriptionEventData: {
|
|
82
|
+
subId: '379',
|
|
83
|
+
proxy: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
|
|
84
|
+
subHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1',
|
|
85
|
+
// @ts-ignore
|
|
86
|
+
subStruct: {
|
|
87
|
+
strategyOrBundleId: '8',
|
|
88
|
+
isBundle: true,
|
|
89
|
+
triggerData: ['0x0000000000000000000000009cb7e19861665366011899d74e75d4f2a419aeed0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e00000000000000000000000000000000000000000000000019ac8532c27900000000000000000000000000000000000000000000000000000000000000000001'],
|
|
90
|
+
subData: [
|
|
91
|
+
'0x0000000000000000000000000000000000000000000000001bc16d674ec80000', '0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
92
|
+
'0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
93
|
+
],
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
strategiesSubsData: {
|
|
97
|
+
userProxy: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
|
|
98
|
+
isEnabled: true,
|
|
99
|
+
strategySubHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1'
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
];
|
|
104
|
+
examples.forEach(([expected, actual]) => {
|
|
105
|
+
it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
|
+
(0, chai_1.expect)((0, strategiesService_1.parseStrategiesAutomatedPosition)(actual)).to.eql(expected);
|
|
107
|
+
}));
|
|
108
|
+
});
|
|
109
|
+
}));
|
|
110
|
+
});
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { OrderType } from '../types/enums';
|
|
2
|
+
import { Bundles, ChainId, RatioState, Strategies } from '../types/enums';
|
|
3
|
+
import type { EthereumAddress, StrategyOrBundleIds } from '../types';
|
|
4
|
+
export declare const makerEncode: {
|
|
5
|
+
repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds | Bundles.BaseIds)[];
|
|
6
|
+
closeOnPrice(vaultId: number, ratioState: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
7
|
+
trailingStop(vaultId: number, triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
8
|
+
leverageManagement(vaultId: number, triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | number | boolean)[];
|
|
9
|
+
};
|
|
10
|
+
export declare const liquityEncode: {
|
|
11
|
+
closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
12
|
+
trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
13
|
+
paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
|
|
14
|
+
leverageManagement(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
|
|
15
|
+
dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
16
|
+
dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
17
|
+
debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
18
|
+
};
|
|
19
|
+
export declare const chickenBondsEncode: {
|
|
20
|
+
rebond(bondId: number): string[];
|
|
21
|
+
};
|
|
22
|
+
export declare const aaveV2Encode: {
|
|
23
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
24
|
+
};
|
|
25
|
+
export declare const aaveV3Encode: {
|
|
26
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
27
|
+
closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
28
|
+
baseTokenAddress: EthereumAddress;
|
|
29
|
+
quoteTokenAddress: EthereumAddress;
|
|
30
|
+
price: number;
|
|
31
|
+
ratioState: RatioState;
|
|
32
|
+
}, subData: {
|
|
33
|
+
collAsset: EthereumAddress;
|
|
34
|
+
collAssetId: number;
|
|
35
|
+
debtAsset: EthereumAddress;
|
|
36
|
+
debtAssetId: number;
|
|
37
|
+
}): (number | boolean | string[])[];
|
|
38
|
+
closeToAssetWithMaximumGasPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
39
|
+
baseTokenAddress: EthereumAddress;
|
|
40
|
+
quoteTokenAddress: EthereumAddress;
|
|
41
|
+
price: number;
|
|
42
|
+
ratioState: RatioState;
|
|
43
|
+
maximumGasPrice: number;
|
|
44
|
+
}, subData: {
|
|
45
|
+
collAsset: EthereumAddress;
|
|
46
|
+
collAssetId: number;
|
|
47
|
+
debtAsset: EthereumAddress;
|
|
48
|
+
debtAssetId: number;
|
|
49
|
+
}): (number | boolean | string[])[];
|
|
50
|
+
openOrder(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
51
|
+
baseTokenAddress: EthereumAddress;
|
|
52
|
+
quoteTokenAddress: EthereumAddress;
|
|
53
|
+
price: number;
|
|
54
|
+
state: RatioState.UNDER;
|
|
55
|
+
}, subData: {
|
|
56
|
+
collAsset: EthereumAddress;
|
|
57
|
+
collAssetId: number;
|
|
58
|
+
debtAsset: EthereumAddress;
|
|
59
|
+
debtAssetId: number;
|
|
60
|
+
marketAddr: EthereumAddress;
|
|
61
|
+
targetRatio: number;
|
|
62
|
+
}): (number | boolean | string[])[];
|
|
63
|
+
};
|
|
64
|
+
export declare const compoundV2Encode: {
|
|
65
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
66
|
+
};
|
|
67
|
+
export declare const compoundV3Encode: {
|
|
68
|
+
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
|
|
69
|
+
};
|
|
70
|
+
export declare const compoundV3L2Encode: {
|
|
71
|
+
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
72
|
+
};
|
|
73
|
+
export declare const morphoAaveV2Encode: {
|
|
74
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
75
|
+
};
|
|
76
|
+
export declare const exchangeEncode: {
|
|
77
|
+
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
78
|
+
limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
|
|
79
|
+
};
|
|
80
|
+
export declare const sparkEncode: {
|
|
81
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
82
|
+
closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
83
|
+
baseTokenAddress: EthereumAddress;
|
|
84
|
+
quoteTokenAddress: EthereumAddress;
|
|
85
|
+
price: number;
|
|
86
|
+
ratioState: RatioState;
|
|
87
|
+
}, subData: {
|
|
88
|
+
collAsset: EthereumAddress;
|
|
89
|
+
collAssetId: number;
|
|
90
|
+
debtAsset: EthereumAddress;
|
|
91
|
+
debtAssetId: number;
|
|
92
|
+
}): (number | boolean | string[])[];
|
|
93
|
+
};
|
|
94
|
+
export declare const crvUSDEncode: {
|
|
95
|
+
leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
96
|
+
payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
97
|
+
};
|
|
98
|
+
export declare const morphoBlueEncode: {
|
|
99
|
+
leverageManagement(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean): (boolean | string[] | Bundles.MainnetIds)[];
|
|
100
|
+
};
|
|
101
|
+
export declare const liquityV2Encode: {
|
|
102
|
+
leverageManagement(market: EthereumAddress, troveId: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
|
|
103
|
+
};
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.liquityV2Encode = exports.morphoBlueEncode = 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
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
31
|
+
const tokens_1 = require("@defisaver/tokens");
|
|
32
|
+
const enums_1 = require("../types/enums");
|
|
33
|
+
const constants_1 = require("../constants");
|
|
34
|
+
const subDataService = __importStar(require("./subDataService"));
|
|
35
|
+
const triggerService = __importStar(require("./triggerService"));
|
|
36
|
+
const utils_1 = require("./utils");
|
|
37
|
+
exports.makerEncode = {
|
|
38
|
+
repayFromSavings(bundleId, vaultId, triggerRepayRatio, targetRepayRatio, isBundle = true, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
|
|
39
|
+
const subData = subDataService.makerRepayFromSavingsSubData.encode(vaultId, targetRepayRatio, chainId, daiAddr, mcdCdpManagerAddr);
|
|
40
|
+
const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRepayRatio, enums_1.RatioState.UNDER);
|
|
41
|
+
return [bundleId, isBundle, triggerData, subData];
|
|
42
|
+
},
|
|
43
|
+
closeOnPrice(vaultId, ratioState, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
|
|
44
|
+
(0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
|
|
45
|
+
const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
|
|
46
|
+
const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, ratioState);
|
|
47
|
+
const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
|
|
48
|
+
? enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_DAI
|
|
49
|
+
: enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_COLL;
|
|
50
|
+
const isBundle = false;
|
|
51
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
52
|
+
},
|
|
53
|
+
trailingStop(vaultId, triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
|
|
54
|
+
(0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
|
|
55
|
+
const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
|
|
56
|
+
const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
|
|
57
|
+
const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
|
|
58
|
+
? enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_DAI
|
|
59
|
+
: enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_COLL;
|
|
60
|
+
const isBundle = false;
|
|
61
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
62
|
+
},
|
|
63
|
+
leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
64
|
+
return [
|
|
65
|
+
vaultId,
|
|
66
|
+
new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
|
|
67
|
+
new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
|
|
68
|
+
new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
|
|
69
|
+
new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
|
|
70
|
+
boostEnabled,
|
|
71
|
+
];
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
exports.liquityEncode = {
|
|
75
|
+
closeOnPrice(priceOverOrUnder, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
|
|
76
|
+
(0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
|
|
77
|
+
const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
|
|
78
|
+
const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, priceOverOrUnder);
|
|
79
|
+
const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_CLOSE_ON_PRICE_TO_COLL;
|
|
80
|
+
const isBundle = false;
|
|
81
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
82
|
+
},
|
|
83
|
+
trailingStop(triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
|
|
84
|
+
(0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
|
|
85
|
+
const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
|
|
86
|
+
const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
|
|
87
|
+
const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_TRAILING_STOP_LOSS_TO_COLL;
|
|
88
|
+
const isBundle = false;
|
|
89
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
90
|
+
},
|
|
91
|
+
paybackFromChickenBondStrategySub(proxyAddress, ratio, sourceId, sourceType, ratioState = enums_1.RatioState.UNDER) {
|
|
92
|
+
(0, utils_1.requireAddress)(proxyAddress);
|
|
93
|
+
const subData = subDataService.liquityPaybackUsingChickenBondSubData.encode(sourceId, sourceType);
|
|
94
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, ratio, ratioState);
|
|
95
|
+
const strategyId = enums_1.Bundles.MainnetIds.LIQUITY_PAYBACK_USING_CHICKEN_BOND;
|
|
96
|
+
const isBundle = true;
|
|
97
|
+
return [strategyId, isBundle, triggerData, subData];
|
|
98
|
+
},
|
|
99
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
100
|
+
return [
|
|
101
|
+
new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
|
|
102
|
+
new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
|
|
103
|
+
new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
|
|
104
|
+
new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
|
|
105
|
+
boostEnabled,
|
|
106
|
+
];
|
|
107
|
+
},
|
|
108
|
+
dsrPayback(proxyAddress, triggerRatio, targetRatio) {
|
|
109
|
+
(0, utils_1.requireAddress)(proxyAddress);
|
|
110
|
+
const subData = subDataService.liquityDsrPaybackSubData.encode(targetRatio);
|
|
111
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
|
|
112
|
+
const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_PAYBACK;
|
|
113
|
+
const isBundle = false;
|
|
114
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
115
|
+
},
|
|
116
|
+
dsrSupply(proxyAddress, triggerRatio, targetRatio) {
|
|
117
|
+
(0, utils_1.requireAddress)(proxyAddress);
|
|
118
|
+
const subData = subDataService.liquityDsrSupplySubData.encode(targetRatio);
|
|
119
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
|
|
120
|
+
const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_SUPPLY;
|
|
121
|
+
const isBundle = false;
|
|
122
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
123
|
+
},
|
|
124
|
+
debtInFrontRepay(proxyAddress, debtInFrontMin, targetRatioIncrease) {
|
|
125
|
+
(0, utils_1.requireAddress)(proxyAddress);
|
|
126
|
+
const subData = subDataService.liquityDebtInFrontRepaySubData.encode(targetRatioIncrease);
|
|
127
|
+
const triggerData = triggerService.liquityDebtInFrontWithLimitTrigger.encode(proxyAddress, debtInFrontMin);
|
|
128
|
+
const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DEBT_IN_FRONT_REPAY;
|
|
129
|
+
const isBundle = false;
|
|
130
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
exports.chickenBondsEncode = {
|
|
134
|
+
rebond(bondId) {
|
|
135
|
+
return subDataService.cBondsRebondSubData.encode(bondId);
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
exports.aaveV2Encode = {
|
|
139
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
140
|
+
return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
exports.aaveV3Encode = {
|
|
144
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
145
|
+
let subInput = '0x';
|
|
146
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
|
|
147
|
+
.padStart(32, '0'));
|
|
148
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
|
|
149
|
+
.padStart(32, '0'));
|
|
150
|
+
subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
|
|
151
|
+
.padStart(32, '0'));
|
|
152
|
+
subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
|
|
153
|
+
.padStart(32, '0'));
|
|
154
|
+
subInput = subInput.concat(boostEnabled ? '01' : '00');
|
|
155
|
+
return subInput;
|
|
156
|
+
},
|
|
157
|
+
closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
158
|
+
const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
|
|
159
|
+
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
160
|
+
const { baseTokenAddress, quoteTokenAddress, price, ratioState, } = triggerData;
|
|
161
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
162
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
163
|
+
},
|
|
164
|
+
closeToAssetWithMaximumGasPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
165
|
+
const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
|
|
166
|
+
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
167
|
+
const { baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState, } = triggerData;
|
|
168
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
|
|
169
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
170
|
+
},
|
|
171
|
+
openOrder(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
172
|
+
const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
|
|
173
|
+
const subDataEncoded = subDataService.aaveV3OpenOrderSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
|
|
174
|
+
const { baseTokenAddress, quoteTokenAddress, price, state, } = triggerData;
|
|
175
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
|
|
176
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
exports.compoundV2Encode = {
|
|
180
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
181
|
+
return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
exports.compoundV3Encode = {
|
|
185
|
+
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
186
|
+
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
exports.compoundV3L2Encode = {
|
|
190
|
+
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
191
|
+
return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
exports.morphoAaveV2Encode = {
|
|
195
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
196
|
+
return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
exports.exchangeEncode = {
|
|
200
|
+
dca(fromToken, toToken, amount, timestamp, interval, network) {
|
|
201
|
+
(0, utils_1.requireAddresses)([fromToken, toToken]);
|
|
202
|
+
const subData = subDataService.exchangeDcaSubData.encode(fromToken, toToken, amount, interval);
|
|
203
|
+
const triggerData = triggerService.exchangeTimestampTrigger.encode(timestamp, interval);
|
|
204
|
+
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_DCA;
|
|
205
|
+
return [strategyId, false, triggerData, subData];
|
|
206
|
+
},
|
|
207
|
+
limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
|
|
208
|
+
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
exports.sparkEncode = {
|
|
212
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
213
|
+
let subInput = '0x';
|
|
214
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
|
|
215
|
+
.padStart(32, '0'));
|
|
216
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
|
|
217
|
+
.padStart(32, '0'));
|
|
218
|
+
subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
|
|
219
|
+
.padStart(32, '0'));
|
|
220
|
+
subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
|
|
221
|
+
.padStart(32, '0'));
|
|
222
|
+
subInput = subInput.concat(boostEnabled ? '01' : '00');
|
|
223
|
+
return subInput;
|
|
224
|
+
},
|
|
225
|
+
closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
226
|
+
const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
|
|
227
|
+
const subDataEncoded = subDataService.sparkQuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
228
|
+
const { baseTokenAddress, quoteTokenAddress, price, ratioState, } = triggerData;
|
|
229
|
+
const triggerDataEncoded = triggerService.sparkQuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
230
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
exports.crvUSDEncode = {
|
|
234
|
+
leverageManagement(owner, controllerAddr, ratioState, targetRatio, triggerRatio, collTokenAddr, crvUSDAddr) {
|
|
235
|
+
const subData = subDataService.crvUSDLeverageManagementSubData.encode(controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr);
|
|
236
|
+
const triggerData = triggerService.crvUSDRatioTrigger.encode(owner, controllerAddr, triggerRatio, ratioState);
|
|
237
|
+
// over is boost, under is repay
|
|
238
|
+
const strategyOrBundleId = ratioState === enums_1.RatioState.OVER ? enums_1.Bundles.MainnetIds.CRVUSD_BOOST : enums_1.Bundles.MainnetIds.CRVUSD_REPAY;
|
|
239
|
+
const isBundle = true;
|
|
240
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
241
|
+
},
|
|
242
|
+
payback(proxyAddress, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr, controllerAddr, minHealthRatio) {
|
|
243
|
+
const subData = subDataService.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
|
|
244
|
+
const triggerData = triggerService.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
|
|
245
|
+
const strategyId = enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK;
|
|
246
|
+
const isBundle = false;
|
|
247
|
+
return [strategyId, isBundle, triggerData, subData];
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
exports.morphoBlueEncode = {
|
|
251
|
+
leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user, isEOA) {
|
|
252
|
+
const subData = subDataService.morphoBlueLeverageManagementSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user, isEOA);
|
|
253
|
+
const triggerData = triggerService.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
|
|
254
|
+
// over is boost, under is repay
|
|
255
|
+
const isBoost = ratioState === enums_1.RatioState.OVER;
|
|
256
|
+
let strategyOrBundleId;
|
|
257
|
+
if (isBoost)
|
|
258
|
+
strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_BOOST : enums_1.Bundles.MainnetIds.MORPHO_BLUE_BOOST;
|
|
259
|
+
else
|
|
260
|
+
strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_REPAY : enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY;
|
|
261
|
+
const isBundle = true;
|
|
262
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
exports.liquityV2Encode = {
|
|
266
|
+
leverageManagement(market, troveId, ratioState, targetRatio, triggerRatio, strategyOrBundleId) {
|
|
267
|
+
const isBundle = true;
|
|
268
|
+
const isRepay = ratioState === enums_1.RatioState.UNDER;
|
|
269
|
+
const subData = subDataService.liquityV2LeverageManagementSubData.encode(market, troveId, ratioState, targetRatio);
|
|
270
|
+
const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
|
|
271
|
+
// TODO: we can hardcode right bundles after testing
|
|
272
|
+
// const strategyOrBundleId = ratioState === RatioState.OVER
|
|
273
|
+
// ? Bundles.MainnetIds.LIQUITY_V2_BOOST
|
|
274
|
+
// : Bundles.MainnetIds.LIQUITY_V2_REPAY;
|
|
275
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
276
|
+
},
|
|
277
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../configuration';
|