@defisaver/automation-sdk 3.2.5 → 3.3.1
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 -6
- package/.eslintrc.js +39 -39
- package/.mocharc.json +4 -4
- package/.nvmrc +1 -1
- package/README.md +46 -46
- package/cjs/abis/Erc20.json +223 -223
- package/cjs/abis/SubStorage.json +21 -21
- package/cjs/abis/UniMulticall.json +17 -17
- package/cjs/abis/index.d.ts +9 -9
- package/cjs/abis/index.js +30 -30
- package/cjs/abis/legacy_AaveV2Subscriptions.json +8 -8
- package/cjs/abis/legacy_AuthCheck.json +8 -8
- package/cjs/abis/legacy_CompoundV2Subscriptions.json +9 -9
- package/cjs/abis/legacy_MakerSubscriptions.json +9 -9
- package/cjs/automation/private/Automation.d.ts +12 -12
- package/cjs/automation/private/Automation.js +42 -42
- package/cjs/automation/private/LegacyAutomation.d.ts +25 -25
- package/cjs/automation/private/LegacyAutomation.js +118 -118
- package/cjs/automation/private/LegacyProtocol.d.ts +22 -22
- package/cjs/automation/private/LegacyProtocol.js +41 -41
- package/cjs/automation/private/LegacyProtocol.test.d.ts +1 -1
- package/cjs/automation/private/LegacyProtocol.test.js +25 -25
- package/cjs/automation/private/Protocol.d.ts +22 -22
- package/cjs/automation/private/Protocol.js +41 -41
- package/cjs/automation/private/Protocol.test.d.ts +1 -1
- package/cjs/automation/private/Protocol.test.js +25 -25
- package/cjs/automation/private/StrategiesAutomation.d.ts +33 -33
- package/cjs/automation/private/StrategiesAutomation.js +189 -189
- package/cjs/automation/private/StrategiesAutomation.test.d.ts +1 -1
- package/cjs/automation/private/StrategiesAutomation.test.js +671 -671
- package/cjs/automation/public/ArbitrumStrategies.d.ts +5 -5
- package/cjs/automation/public/ArbitrumStrategies.js +13 -13
- package/cjs/automation/public/BaseStrategies.d.ts +5 -5
- package/cjs/automation/public/BaseStrategies.js +13 -13
- package/cjs/automation/public/EthereumStrategies.d.ts +5 -5
- package/cjs/automation/public/EthereumStrategies.js +13 -13
- package/cjs/automation/public/OptimismStrategies.d.ts +5 -5
- package/cjs/automation/public/OptimismStrategies.js +13 -13
- package/cjs/automation/public/Strategies.test.d.ts +1 -1
- package/cjs/automation/public/Strategies.test.js +61 -61
- package/cjs/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
- package/cjs/automation/public/legacy/LegacyAaveAutomation.js +20 -20
- package/cjs/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
- package/cjs/automation/public/legacy/LegacyCompoundAutomation.js +20 -20
- package/cjs/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
- package/cjs/automation/public/legacy/LegacyMakerAutomation.js +20 -20
- package/cjs/configuration.d.ts +1 -1
- package/cjs/configuration.js +12 -12
- package/cjs/constants/index.d.ts +28 -28
- package/cjs/constants/index.js +674 -564
- package/cjs/index.d.ts +23 -23
- package/cjs/index.js +65 -65
- package/cjs/services/contractService.d.ts +12 -12
- package/cjs/services/contractService.js +54 -54
- package/cjs/services/ethereumService.d.ts +7 -7
- package/cjs/services/ethereumService.js +49 -49
- package/cjs/services/ethereumService.test.d.ts +1 -1
- package/cjs/services/ethereumService.test.js +242 -242
- package/cjs/services/strategiesService.d.ts +2 -2
- package/cjs/services/strategiesService.js +944 -898
- package/cjs/services/strategiesService.test.d.ts +1 -1
- package/cjs/services/strategiesService.test.js +110 -110
- package/cjs/services/strategySubService.d.ts +113 -111
- package/cjs/services/strategySubService.js +328 -314
- package/cjs/services/strategySubService.test.d.ts +1 -1
- package/cjs/services/strategySubService.test.js +1058 -936
- package/cjs/services/subDataService.d.ts +282 -261
- package/cjs/services/subDataService.js +740 -683
- package/cjs/services/subDataService.test.d.ts +1 -1
- package/cjs/services/subDataService.test.js +1458 -1282
- package/cjs/services/triggerService.d.ts +268 -249
- package/cjs/services/triggerService.js +509 -473
- package/cjs/services/triggerService.test.d.ts +1 -1
- package/cjs/services/triggerService.test.js +1139 -1045
- package/cjs/services/utils.d.ts +30 -30
- package/cjs/services/utils.js +182 -182
- package/cjs/services/utils.test.d.ts +1 -1
- package/cjs/services/utils.test.js +376 -376
- package/cjs/types/contracts/generated/Erc20.d.ts +53 -53
- package/cjs/types/contracts/generated/Erc20.js +5 -5
- package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
- package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.js +5 -5
- package/cjs/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
- package/cjs/types/contracts/generated/Legacy_AuthCheck.js +5 -5
- package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
- package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +5 -5
- package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
- package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.js +5 -5
- package/cjs/types/contracts/generated/SubStorage.d.ts +114 -114
- package/cjs/types/contracts/generated/SubStorage.js +5 -5
- package/cjs/types/contracts/generated/UniMulticall.d.ts +55 -55
- package/cjs/types/contracts/generated/UniMulticall.js +5 -5
- package/cjs/types/contracts/generated/index.d.ts +7 -7
- package/cjs/types/contracts/generated/index.js +2 -2
- package/cjs/types/contracts/generated/types.d.ts +54 -54
- package/cjs/types/contracts/generated/types.js +2 -2
- package/cjs/types/enums.d.ts +253 -226
- package/cjs/types/enums.js +279 -252
- package/cjs/types/index.d.ts +264 -248
- package/cjs/types/index.js +2 -2
- 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 -18
- 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 -39
- package/esm/automation/private/LegacyAutomation.d.ts +25 -25
- package/esm/automation/private/LegacyAutomation.js +112 -112
- package/esm/automation/private/LegacyProtocol.d.ts +22 -22
- package/esm/automation/private/LegacyProtocol.js +38 -38
- package/esm/automation/private/LegacyProtocol.test.d.ts +1 -1
- package/esm/automation/private/LegacyProtocol.test.js +20 -20
- package/esm/automation/private/Protocol.d.ts +22 -22
- package/esm/automation/private/Protocol.js +38 -38
- package/esm/automation/private/Protocol.test.d.ts +1 -1
- package/esm/automation/private/Protocol.test.js +20 -20
- package/esm/automation/private/StrategiesAutomation.d.ts +33 -33
- package/esm/automation/private/StrategiesAutomation.js +183 -183
- package/esm/automation/private/StrategiesAutomation.test.d.ts +1 -1
- package/esm/automation/private/StrategiesAutomation.test.js +666 -666
- package/esm/automation/public/ArbitrumStrategies.d.ts +5 -5
- package/esm/automation/public/ArbitrumStrategies.js +7 -7
- package/esm/automation/public/BaseStrategies.d.ts +5 -5
- package/esm/automation/public/BaseStrategies.js +7 -7
- package/esm/automation/public/EthereumStrategies.d.ts +5 -5
- package/esm/automation/public/EthereumStrategies.js +7 -7
- package/esm/automation/public/OptimismStrategies.d.ts +5 -5
- package/esm/automation/public/OptimismStrategies.js +7 -7
- package/esm/automation/public/Strategies.test.d.ts +1 -1
- package/esm/automation/public/Strategies.test.js +56 -56
- package/esm/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyAaveAutomation.js +14 -14
- package/esm/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyCompoundAutomation.js +14 -14
- package/esm/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
- package/esm/automation/public/legacy/LegacyMakerAutomation.js +14 -14
- package/esm/configuration.d.ts +1 -1
- package/esm/configuration.js +7 -7
- package/esm/constants/index.d.ts +28 -28
- package/esm/constants/index.js +668 -558
- package/esm/index.d.ts +23 -23
- package/esm/index.js +23 -23
- package/esm/services/contractService.d.ts +12 -12
- package/esm/services/contractService.js +45 -45
- package/esm/services/ethereumService.d.ts +7 -7
- package/esm/services/ethereumService.js +41 -41
- package/esm/services/ethereumService.test.d.ts +1 -1
- package/esm/services/ethereumService.test.js +237 -237
- package/esm/services/strategiesService.d.ts +2 -2
- package/esm/services/strategiesService.js +914 -868
- package/esm/services/strategiesService.test.d.ts +1 -1
- package/esm/services/strategiesService.test.js +108 -108
- package/esm/services/strategySubService.d.ts +113 -111
- package/esm/services/strategySubService.js +299 -285
- package/esm/services/strategySubService.test.d.ts +1 -1
- package/esm/services/strategySubService.test.js +1030 -908
- package/esm/services/subDataService.d.ts +282 -261
- package/esm/services/subDataService.js +734 -677
- package/esm/services/subDataService.test.d.ts +1 -1
- package/esm/services/subDataService.test.js +1430 -1254
- package/esm/services/triggerService.d.ts +268 -249
- package/esm/services/triggerService.js +480 -444
- package/esm/services/triggerService.test.d.ts +1 -1
- package/esm/services/triggerService.test.js +1114 -1020
- package/esm/services/utils.d.ts +30 -30
- package/esm/services/utils.js +131 -131
- package/esm/services/utils.test.d.ts +1 -1
- package/esm/services/utils.test.js +348 -348
- package/esm/types/contracts/generated/Erc20.d.ts +53 -53
- package/esm/types/contracts/generated/Erc20.js +4 -4
- package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
- package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +4 -4
- package/esm/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
- package/esm/types/contracts/generated/Legacy_AuthCheck.js +4 -4
- package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
- package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +4 -4
- package/esm/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
- package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +4 -4
- package/esm/types/contracts/generated/SubStorage.d.ts +114 -114
- package/esm/types/contracts/generated/SubStorage.js +4 -4
- package/esm/types/contracts/generated/UniMulticall.d.ts +55 -55
- package/esm/types/contracts/generated/UniMulticall.js +4 -4
- package/esm/types/contracts/generated/index.d.ts +7 -7
- package/esm/types/contracts/generated/index.js +1 -1
- package/esm/types/contracts/generated/types.d.ts +54 -54
- package/esm/types/contracts/generated/types.js +1 -1
- package/esm/types/enums.d.ts +253 -226
- package/esm/types/enums.js +276 -249
- package/esm/types/index.d.ts +264 -248
- package/esm/types/index.js +1 -1
- package/package.json +60 -60
- 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 +254 -254
- 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/Strategies.test.ts +49 -49
- 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 +702 -593
- 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 +1216 -1158
- package/src/services/strategySubService.test.ts +1250 -1122
- package/src/services/strategySubService.ts +685 -648
- package/src/services/subDataService.test.ts +1546 -1387
- package/src/services/subDataService.ts +1024 -934
- package/src/services/triggerService.test.ts +1234 -1130
- package/src/services/triggerService.ts +659 -602
- package/src/services/utils.test.ts +430 -430
- package/src/services/utils.ts +162 -162
- package/src/types/enums.ts +273 -246
- package/src/types/index.ts +333 -312
- package/tsconfig.esm.json +8 -8
- package/tsconfig.json +22 -22
package/src/types/index.ts
CHANGED
|
@@ -1,312 +1,333 @@
|
|
|
1
|
-
import type Web3 from 'web3';
|
|
2
|
-
import type { AbiItem } from 'web3-utils';
|
|
3
|
-
import type { BaseContract, BlockType } from './contracts/generated/types';
|
|
4
|
-
import type { Subscribe, StrategyModel } from './contracts/generated/SubStorage';
|
|
5
|
-
import type {
|
|
6
|
-
ChainId, Strategies, Bundles, ProtocolIdentifiers,
|
|
7
|
-
RatioState,
|
|
8
|
-
CloseToAssetType,
|
|
9
|
-
} from './enums';
|
|
10
|
-
|
|
11
|
-
export type PlaceholderType = any; // TODO - fix any types
|
|
12
|
-
|
|
13
|
-
export type EthereumAddress = string;
|
|
14
|
-
|
|
15
|
-
export type BlockNumber = BlockType;
|
|
16
|
-
|
|
17
|
-
export declare namespace Utils {
|
|
18
|
-
type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
19
|
-
|
|
20
|
-
type WithRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>;
|
|
21
|
-
|
|
22
|
-
type ValuesOf<E> = E[keyof E];
|
|
23
|
-
|
|
24
|
-
type EnumUnion<T> = {
|
|
25
|
-
[k in keyof T]: ValuesOf<T[k]>;
|
|
26
|
-
}[keyof T];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export declare namespace Contract {
|
|
30
|
-
interface Json {
|
|
31
|
-
abi: AbiItem[],
|
|
32
|
-
networks?: {
|
|
33
|
-
[key in ChainId as string]: {
|
|
34
|
-
createdBlock?: number,
|
|
35
|
-
address: EthereumAddress,
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
interface WithMeta<T> {
|
|
41
|
-
abi: AbiItem[],
|
|
42
|
-
address: EthereumAddress,
|
|
43
|
-
createdBlock: BlockNumber,
|
|
44
|
-
contract: T,
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export declare namespace Multicall {
|
|
49
|
-
interface Calls {
|
|
50
|
-
abiItem: AbiItem,
|
|
51
|
-
target: EthereumAddress,
|
|
52
|
-
gasLimit?: number,
|
|
53
|
-
params: any[],
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
interface FormattedCalls {
|
|
57
|
-
callData: string,
|
|
58
|
-
target: EthereumAddress,
|
|
59
|
-
gasLimit: number,
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
type Payload = any[];
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
interface _SubscriptionOptions {
|
|
66
|
-
toBlock: BlockNumber,
|
|
67
|
-
fromBlock: BlockNumber,
|
|
68
|
-
mergeSubs: boolean,
|
|
69
|
-
enabledOnly: boolean,
|
|
70
|
-
unexpiredOnly: boolean,
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export type SubscriptionOptions = Partial<_SubscriptionOptions>;
|
|
74
|
-
|
|
75
|
-
export declare namespace Interfaces {
|
|
76
|
-
interface ProtocolBase {
|
|
77
|
-
id: ProtocolIdentifiers.StrategiesAutomation | ProtocolIdentifiers.LegacyAutomation,
|
|
78
|
-
name: string,
|
|
79
|
-
slug: string,
|
|
80
|
-
fullName: string,
|
|
81
|
-
version: string,
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
interface Protocol extends ProtocolBase {
|
|
85
|
-
id: ProtocolIdentifiers.StrategiesAutomation,
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
interface LegacyProtocol extends ProtocolBase {
|
|
89
|
-
id: ProtocolIdentifiers.LegacyAutomation,
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
interface Automation {
|
|
93
|
-
provider: Web3,
|
|
94
|
-
providerFork?: Web3,
|
|
95
|
-
}
|
|
96
|
-
interface LegacyAutomation<T extends BaseContract> {
|
|
97
|
-
provider: Web3,
|
|
98
|
-
monitorAddress: EthereumAddress,
|
|
99
|
-
protocol: Interfaces.LegacyProtocol,
|
|
100
|
-
subscriptionsJson: Contract.WithMeta<T>,
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export interface Strategy<T = StrategyOrBundleIds> {
|
|
105
|
-
strategyOrBundleId: T,
|
|
106
|
-
strategyId: Strategies.Identifiers | Strategies.IdOverrides,
|
|
107
|
-
protocol: Interfaces.Protocol,
|
|
108
|
-
isBundle?: boolean,
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export interface BundleOrStrategy<T = StrategyOrBundleIds> extends Strategy<T> {
|
|
112
|
-
bundleId?: string,
|
|
113
|
-
bundleName?: string,
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export type TriggerData = StrategyModel.StrategySubStructOutputStruct['triggerData'];
|
|
117
|
-
export type SubData = StrategyModel.StrategySubStructOutputStruct['subData'];
|
|
118
|
-
|
|
119
|
-
export declare namespace Position {
|
|
120
|
-
namespace Specific {
|
|
121
|
-
interface Base {
|
|
122
|
-
subId1?: number,
|
|
123
|
-
subId2?: number,
|
|
124
|
-
mergeWithId?: Strategies.Identifiers,
|
|
125
|
-
mergeId?: Strategies.Identifiers
|
|
126
|
-
}
|
|
127
|
-
interface RatioProtection extends Base {
|
|
128
|
-
triggerRepayRatio?: number,
|
|
129
|
-
targetRepayRatio?: number,
|
|
130
|
-
repayEnabled?: boolean,
|
|
131
|
-
triggerBoostRatio?: number,
|
|
132
|
-
targetBoostRatio?: number,
|
|
133
|
-
boostEnabled?: boolean,
|
|
134
|
-
}
|
|
135
|
-
interface CloseOnPrice extends Base {
|
|
136
|
-
price: string,
|
|
137
|
-
closeToAssetAddr: EthereumAddress,
|
|
138
|
-
}
|
|
139
|
-
interface CloseOnPriceAave extends Base {
|
|
140
|
-
collAsset: EthereumAddress,
|
|
141
|
-
collAssetId: number,
|
|
142
|
-
debtAsset: EthereumAddress,
|
|
143
|
-
debtAssetId: number,
|
|
144
|
-
baseToken: EthereumAddress,
|
|
145
|
-
quoteToken: EthereumAddress,
|
|
146
|
-
price: string,
|
|
147
|
-
ratioState: RatioState,
|
|
148
|
-
}
|
|
149
|
-
interface BoostOnPriceAave extends CloseOnPriceAave {
|
|
150
|
-
ratio: number,
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
interface BoostOnPriceMorpho extends Base {
|
|
154
|
-
marketId: string;
|
|
155
|
-
subHash: string;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
interface CloseOnPriceWithMaximumGasPriceAave extends Base {
|
|
159
|
-
collAsset: EthereumAddress,
|
|
160
|
-
collAssetId: number,
|
|
161
|
-
debtAsset: EthereumAddress,
|
|
162
|
-
debtAssetId: number,
|
|
163
|
-
baseToken: EthereumAddress,
|
|
164
|
-
quoteToken: EthereumAddress,
|
|
165
|
-
price: string,
|
|
166
|
-
maximumGasPrice: string,
|
|
167
|
-
ratioState: RatioState,
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
interface CloseOnPriceLiquityV2 extends Base {
|
|
171
|
-
market: EthereumAddress,
|
|
172
|
-
troveId: string,
|
|
173
|
-
stopLossPrice: string,
|
|
174
|
-
takeProfitPrice: string,
|
|
175
|
-
closeToAssetAddr: EthereumAddress,
|
|
176
|
-
stopLossType: CloseToAssetType | undefined,
|
|
177
|
-
takeProfitType: CloseToAssetType | undefined,
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
interface BoostOnPriceLiquityV2 extends Base {
|
|
181
|
-
market: EthereumAddress,
|
|
182
|
-
troveId: string,
|
|
183
|
-
subHash: string;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
interface PaybackLiquityV2 extends Base {
|
|
187
|
-
market: EthereumAddress,
|
|
188
|
-
troveId: string,
|
|
189
|
-
targetRatio: number;
|
|
190
|
-
triggerRatio: number;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
interface TrailingStop extends Base {
|
|
194
|
-
roundId: number,
|
|
195
|
-
triggerPercentage: number,
|
|
196
|
-
closeToAssetAddr: EthereumAddress,
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
interface DebtInFrontRepay extends Base {
|
|
200
|
-
debtInFrontMin: string,
|
|
201
|
-
targetRepayRatioIncrease: number,
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
interface LeverageManagementCrvUSD extends Base {
|
|
205
|
-
subHashBoost?: string,
|
|
206
|
-
subHashRepay?: string,
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
isEnabled
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
export
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
[
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
1
|
+
import type Web3 from 'web3';
|
|
2
|
+
import type { AbiItem } from 'web3-utils';
|
|
3
|
+
import type { BaseContract, BlockType } from './contracts/generated/types';
|
|
4
|
+
import type { Subscribe, StrategyModel } from './contracts/generated/SubStorage';
|
|
5
|
+
import type {
|
|
6
|
+
ChainId, Strategies, Bundles, ProtocolIdentifiers,
|
|
7
|
+
RatioState,
|
|
8
|
+
CloseToAssetType,
|
|
9
|
+
} from './enums';
|
|
10
|
+
|
|
11
|
+
export type PlaceholderType = any; // TODO - fix any types
|
|
12
|
+
|
|
13
|
+
export type EthereumAddress = string;
|
|
14
|
+
|
|
15
|
+
export type BlockNumber = BlockType;
|
|
16
|
+
|
|
17
|
+
export declare namespace Utils {
|
|
18
|
+
type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
19
|
+
|
|
20
|
+
type WithRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>;
|
|
21
|
+
|
|
22
|
+
type ValuesOf<E> = E[keyof E];
|
|
23
|
+
|
|
24
|
+
type EnumUnion<T> = {
|
|
25
|
+
[k in keyof T]: ValuesOf<T[k]>;
|
|
26
|
+
}[keyof T];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export declare namespace Contract {
|
|
30
|
+
interface Json {
|
|
31
|
+
abi: AbiItem[],
|
|
32
|
+
networks?: {
|
|
33
|
+
[key in ChainId as string]: {
|
|
34
|
+
createdBlock?: number,
|
|
35
|
+
address: EthereumAddress,
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface WithMeta<T> {
|
|
41
|
+
abi: AbiItem[],
|
|
42
|
+
address: EthereumAddress,
|
|
43
|
+
createdBlock: BlockNumber,
|
|
44
|
+
contract: T,
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export declare namespace Multicall {
|
|
49
|
+
interface Calls {
|
|
50
|
+
abiItem: AbiItem,
|
|
51
|
+
target: EthereumAddress,
|
|
52
|
+
gasLimit?: number,
|
|
53
|
+
params: any[],
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
interface FormattedCalls {
|
|
57
|
+
callData: string,
|
|
58
|
+
target: EthereumAddress,
|
|
59
|
+
gasLimit: number,
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type Payload = any[];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
interface _SubscriptionOptions {
|
|
66
|
+
toBlock: BlockNumber,
|
|
67
|
+
fromBlock: BlockNumber,
|
|
68
|
+
mergeSubs: boolean,
|
|
69
|
+
enabledOnly: boolean,
|
|
70
|
+
unexpiredOnly: boolean,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export type SubscriptionOptions = Partial<_SubscriptionOptions>;
|
|
74
|
+
|
|
75
|
+
export declare namespace Interfaces {
|
|
76
|
+
interface ProtocolBase {
|
|
77
|
+
id: ProtocolIdentifiers.StrategiesAutomation | ProtocolIdentifiers.LegacyAutomation,
|
|
78
|
+
name: string,
|
|
79
|
+
slug: string,
|
|
80
|
+
fullName: string,
|
|
81
|
+
version: string,
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface Protocol extends ProtocolBase {
|
|
85
|
+
id: ProtocolIdentifiers.StrategiesAutomation,
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface LegacyProtocol extends ProtocolBase {
|
|
89
|
+
id: ProtocolIdentifiers.LegacyAutomation,
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
interface Automation {
|
|
93
|
+
provider: Web3,
|
|
94
|
+
providerFork?: Web3,
|
|
95
|
+
}
|
|
96
|
+
interface LegacyAutomation<T extends BaseContract> {
|
|
97
|
+
provider: Web3,
|
|
98
|
+
monitorAddress: EthereumAddress,
|
|
99
|
+
protocol: Interfaces.LegacyProtocol,
|
|
100
|
+
subscriptionsJson: Contract.WithMeta<T>,
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface Strategy<T = StrategyOrBundleIds> {
|
|
105
|
+
strategyOrBundleId: T,
|
|
106
|
+
strategyId: Strategies.Identifiers | Strategies.IdOverrides,
|
|
107
|
+
protocol: Interfaces.Protocol,
|
|
108
|
+
isBundle?: boolean,
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface BundleOrStrategy<T = StrategyOrBundleIds> extends Strategy<T> {
|
|
112
|
+
bundleId?: string,
|
|
113
|
+
bundleName?: string,
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export type TriggerData = StrategyModel.StrategySubStructOutputStruct['triggerData'];
|
|
117
|
+
export type SubData = StrategyModel.StrategySubStructOutputStruct['subData'];
|
|
118
|
+
|
|
119
|
+
export declare namespace Position {
|
|
120
|
+
namespace Specific {
|
|
121
|
+
interface Base {
|
|
122
|
+
subId1?: number,
|
|
123
|
+
subId2?: number,
|
|
124
|
+
mergeWithId?: Strategies.Identifiers,
|
|
125
|
+
mergeId?: Strategies.Identifiers
|
|
126
|
+
}
|
|
127
|
+
interface RatioProtection extends Base {
|
|
128
|
+
triggerRepayRatio?: number,
|
|
129
|
+
targetRepayRatio?: number,
|
|
130
|
+
repayEnabled?: boolean,
|
|
131
|
+
triggerBoostRatio?: number,
|
|
132
|
+
targetBoostRatio?: number,
|
|
133
|
+
boostEnabled?: boolean,
|
|
134
|
+
}
|
|
135
|
+
interface CloseOnPrice extends Base {
|
|
136
|
+
price: string,
|
|
137
|
+
closeToAssetAddr: EthereumAddress,
|
|
138
|
+
}
|
|
139
|
+
interface CloseOnPriceAave extends Base {
|
|
140
|
+
collAsset: EthereumAddress,
|
|
141
|
+
collAssetId: number,
|
|
142
|
+
debtAsset: EthereumAddress,
|
|
143
|
+
debtAssetId: number,
|
|
144
|
+
baseToken: EthereumAddress,
|
|
145
|
+
quoteToken: EthereumAddress,
|
|
146
|
+
price: string,
|
|
147
|
+
ratioState: RatioState,
|
|
148
|
+
}
|
|
149
|
+
interface BoostOnPriceAave extends CloseOnPriceAave {
|
|
150
|
+
ratio: number,
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface BoostOnPriceMorpho extends Base {
|
|
154
|
+
marketId: string;
|
|
155
|
+
subHash: string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface CloseOnPriceWithMaximumGasPriceAave extends Base {
|
|
159
|
+
collAsset: EthereumAddress,
|
|
160
|
+
collAssetId: number,
|
|
161
|
+
debtAsset: EthereumAddress,
|
|
162
|
+
debtAssetId: number,
|
|
163
|
+
baseToken: EthereumAddress,
|
|
164
|
+
quoteToken: EthereumAddress,
|
|
165
|
+
price: string,
|
|
166
|
+
maximumGasPrice: string,
|
|
167
|
+
ratioState: RatioState,
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
interface CloseOnPriceLiquityV2 extends Base {
|
|
171
|
+
market: EthereumAddress,
|
|
172
|
+
troveId: string,
|
|
173
|
+
stopLossPrice: string,
|
|
174
|
+
takeProfitPrice: string,
|
|
175
|
+
closeToAssetAddr: EthereumAddress,
|
|
176
|
+
stopLossType: CloseToAssetType | undefined,
|
|
177
|
+
takeProfitType: CloseToAssetType | undefined,
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
interface BoostOnPriceLiquityV2 extends Base {
|
|
181
|
+
market: EthereumAddress,
|
|
182
|
+
troveId: string,
|
|
183
|
+
subHash: string;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
interface PaybackLiquityV2 extends Base {
|
|
187
|
+
market: EthereumAddress,
|
|
188
|
+
troveId: string,
|
|
189
|
+
targetRatio: number;
|
|
190
|
+
triggerRatio: number;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
interface TrailingStop extends Base {
|
|
194
|
+
roundId: number,
|
|
195
|
+
triggerPercentage: number,
|
|
196
|
+
closeToAssetAddr: EthereumAddress,
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
interface DebtInFrontRepay extends Base {
|
|
200
|
+
debtInFrontMin: string,
|
|
201
|
+
targetRepayRatioIncrease: number,
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
interface LeverageManagementCrvUSD extends Base {
|
|
205
|
+
subHashBoost?: string,
|
|
206
|
+
subHashRepay?: string,
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
interface CompoundV3Base extends Base {
|
|
210
|
+
market: EthereumAddress,
|
|
211
|
+
collToken: EthereumAddress,
|
|
212
|
+
baseToken: EthereumAddress,
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
interface CompoundV3LeverageManagementOnPrice extends CompoundV3Base {
|
|
216
|
+
ratio: number,
|
|
217
|
+
price: string,
|
|
218
|
+
priceState: RatioState,
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
interface CompoundV3CloseOnPrice extends CompoundV3Base {
|
|
222
|
+
stopLossPrice: string,
|
|
223
|
+
takeProfitPrice: string,
|
|
224
|
+
stopLossType: CloseToAssetType | undefined,
|
|
225
|
+
takeProfitType: CloseToAssetType | undefined,
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
type SpecificAny =
|
|
230
|
+
Specific.CloseOnPrice
|
|
231
|
+
| Specific.TrailingStop
|
|
232
|
+
| Specific.RatioProtection
|
|
233
|
+
| Specific.CloseOnPriceAave
|
|
234
|
+
| Specific.BoostOnPriceAave
|
|
235
|
+
| Specific.CloseOnPriceWithMaximumGasPriceAave
|
|
236
|
+
| Specific.DebtInFrontRepay
|
|
237
|
+
| Specific.LeverageManagementCrvUSD
|
|
238
|
+
| Specific.CloseOnPriceLiquityV2
|
|
239
|
+
| Specific.BoostOnPriceMorpho
|
|
240
|
+
| Specific.BoostOnPriceLiquityV2
|
|
241
|
+
| Specific.PaybackLiquityV2
|
|
242
|
+
| Specific.CompoundV3LeverageManagementOnPrice
|
|
243
|
+
| Specific.CompoundV3CloseOnPrice;
|
|
244
|
+
|
|
245
|
+
export interface Automated {
|
|
246
|
+
chainId: ChainId,
|
|
247
|
+
positionId: string, // Helps to unify all strategies connected to a specific position
|
|
248
|
+
owner: EthereumAddress,
|
|
249
|
+
subId: number,
|
|
250
|
+
subIds?: number[],
|
|
251
|
+
isEnabled?: boolean,
|
|
252
|
+
subHash: string,
|
|
253
|
+
blockNumber: BlockNumber,
|
|
254
|
+
protocol: Interfaces.Protocol,
|
|
255
|
+
strategy: BundleOrStrategy,
|
|
256
|
+
strategyData: {
|
|
257
|
+
encoded: {
|
|
258
|
+
triggerData: TriggerData,
|
|
259
|
+
subData: SubData,
|
|
260
|
+
},
|
|
261
|
+
decoded: { // TODO type this?
|
|
262
|
+
triggerData: PlaceholderType,
|
|
263
|
+
subData: PlaceholderType,
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
specific: SpecificAny,
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface LegacyAutomated {
|
|
270
|
+
chainId: ChainId,
|
|
271
|
+
owner: EthereumAddress,
|
|
272
|
+
isEnabled: boolean,
|
|
273
|
+
protocol: Interfaces.LegacyProtocol,
|
|
274
|
+
strategy: {
|
|
275
|
+
strategyId: string,
|
|
276
|
+
protocol: Interfaces.Protocol,
|
|
277
|
+
},
|
|
278
|
+
specific: any,
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
type StrategyInfo<T extends number> = Record<T, Strategy<T>>;
|
|
283
|
+
export type MainnetStrategiesInfo = StrategyInfo<Strategies.MainnetIds>;
|
|
284
|
+
export type OptimismStrategiesInfo = StrategyInfo<Strategies.OptimismIds>;
|
|
285
|
+
export type ArbitrumStrategiesInfo = StrategyInfo<Strategies.ArbitrumIds>;
|
|
286
|
+
export type BaseStrategiesInfo = StrategyInfo<Strategies.BaseIds>;
|
|
287
|
+
export type StrategyInfoUnion = MainnetStrategiesInfo | OptimismStrategiesInfo | ArbitrumStrategiesInfo | BaseStrategiesInfo;
|
|
288
|
+
|
|
289
|
+
type BundleInfo<T extends number> = Record<T, BundleOrStrategy<T>>;
|
|
290
|
+
export type MainnetBundleInfo = BundleInfo<Bundles.MainnetIds>;
|
|
291
|
+
export type OptimismBundleInfo = BundleInfo<Bundles.OptimismIds>;
|
|
292
|
+
export type ArbitrumBundleInfo = BundleInfo<Bundles.ArbitrumIds>;
|
|
293
|
+
export type BaseBundleInfo = BundleInfo<Bundles.BaseIds>;
|
|
294
|
+
export type BundleInfoUnion = MainnetBundleInfo | OptimismBundleInfo | ArbitrumBundleInfo | BaseBundleInfo;
|
|
295
|
+
|
|
296
|
+
export interface StrategiesInfo {
|
|
297
|
+
[ChainId.Ethereum]: MainnetStrategiesInfo,
|
|
298
|
+
[ChainId.Optimism]: OptimismStrategiesInfo,
|
|
299
|
+
[ChainId.Arbitrum]: ArbitrumStrategiesInfo,
|
|
300
|
+
[ChainId.Base]: BaseStrategiesInfo,
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export interface BundlesInfo {
|
|
304
|
+
[ChainId.Ethereum]: MainnetBundleInfo,
|
|
305
|
+
[ChainId.Optimism]: OptimismBundleInfo,
|
|
306
|
+
[ChainId.Arbitrum]: ArbitrumBundleInfo,
|
|
307
|
+
[ChainId.Base]: BaseBundleInfo,
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export type StrategyOrBundleIds =
|
|
311
|
+
typeof Strategies.MainnetIds[keyof typeof Strategies.MainnetIds]
|
|
312
|
+
| typeof Strategies.OptimismIds[keyof typeof Strategies.OptimismIds]
|
|
313
|
+
| typeof Strategies.ArbitrumIds[keyof typeof Strategies.ArbitrumIds]
|
|
314
|
+
| typeof Strategies.BaseIds[keyof typeof Strategies.BaseIds]
|
|
315
|
+
| typeof Bundles.MainnetIds[keyof typeof Bundles.MainnetIds]
|
|
316
|
+
| typeof Bundles.OptimismIds[keyof typeof Bundles.OptimismIds]
|
|
317
|
+
| typeof Bundles.ArbitrumIds[keyof typeof Bundles.ArbitrumIds]
|
|
318
|
+
| typeof Bundles.BaseIds[keyof typeof Bundles.BaseIds];
|
|
319
|
+
|
|
320
|
+
export interface ParseData {
|
|
321
|
+
chainId: ChainId,
|
|
322
|
+
blockNumber: BlockNumber,
|
|
323
|
+
subscriptionEventData: Subscribe['returnValues']
|
|
324
|
+
strategiesSubsData: StrategyModel.StoredSubDataStructOutputStruct,
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
type MapToProtocolVersion<T> = {
|
|
328
|
+
[i in ProtocolIdentifiers.StrategiesAutomation]: {
|
|
329
|
+
[key in Strategies.Identifiers as string]: T
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
export type StrategiesToProtocolVersionMapping = MapToProtocolVersion<(position: Position.Automated, parseData: ParseData, chainId: ChainId) => Position.Automated>;
|
package/tsconfig.esm.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"outDir": "./esm/"
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "node",
|
|
6
|
+
"outDir": "./esm/"
|
|
7
|
+
}
|
|
8
|
+
}
|