@defisaver/automation-sdk 3.3.8 → 3.3.10-aave-v4-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/cjs/constants/index.js +55 -0
- package/cjs/services/ethereumService.js +21 -14
- package/cjs/services/strategiesService.js +101 -0
- package/cjs/services/strategySubService.d.ts +8 -0
- package/cjs/services/strategySubService.js +47 -1
- package/cjs/services/strategySubService.test.js +143 -0
- package/cjs/services/subDataService.d.ts +302 -129
- package/cjs/services/subDataService.js +629 -372
- package/cjs/services/subDataService.test.js +213 -0
- package/cjs/services/triggerService.d.ts +29 -0
- package/cjs/services/triggerService.js +55 -1
- package/cjs/services/triggerService.test.js +84 -0
- package/cjs/types/enums.d.ts +14 -2
- package/cjs/types/enums.js +12 -0
- package/cjs/types/index.d.ts +22 -1
- package/esm/constants/index.js +55 -0
- package/esm/services/ethereumService.js +21 -14
- package/esm/services/strategiesService.js +102 -1
- package/esm/services/strategySubService.d.ts +8 -0
- package/esm/services/strategySubService.js +46 -0
- package/esm/services/strategySubService.test.js +144 -1
- package/esm/services/subDataService.d.ts +302 -129
- package/esm/services/subDataService.js +628 -371
- package/esm/services/subDataService.test.js +213 -0
- package/esm/services/triggerService.d.ts +29 -0
- package/esm/services/triggerService.js +54 -0
- package/esm/services/triggerService.test.js +85 -1
- package/esm/types/enums.d.ts +14 -2
- package/esm/types/enums.js +12 -0
- package/esm/types/index.d.ts +22 -1
- package/package.json +1 -1
- package/src/constants/index.ts +55 -0
- package/src/services/ethereumService.ts +23 -16
- package/src/services/strategiesService.ts +116 -1
- package/src/services/strategySubService.test.ts +180 -0
- package/src/services/strategySubService.ts +162 -2
- package/src/services/subDataService.test.ts +233 -0
- package/src/services/subDataService.ts +977 -703
- package/src/services/triggerService.test.ts +99 -0
- package/src/services/triggerService.ts +76 -1
- package/src/types/enums.ts +12 -0
- package/src/types/index.ts +27 -1
|
@@ -153,6 +153,66 @@ describe('Feature: subDataService.ts', () => {
|
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
155
|
|
|
156
|
+
describe('When testing subDataService.makerLeverageManagementWithoutSubProxy', () => {
|
|
157
|
+
describe('encode()', () => {
|
|
158
|
+
const examples: Array<[SubData, [vaultId: number, targetRatio: number, daiAddr?: EthereumAddress]]> = [
|
|
159
|
+
[
|
|
160
|
+
[
|
|
161
|
+
'0x00000000000000000000000000000000000000000000000000000000000000de', '0x00000000000000000000000000000000000000000000000018fae27693b40000',
|
|
162
|
+
'0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f',
|
|
163
|
+
],
|
|
164
|
+
[222, 180], // Uses default DAI address
|
|
165
|
+
],
|
|
166
|
+
[
|
|
167
|
+
[
|
|
168
|
+
'0x000000000000000000000000000000000000000000000000000000000000014d', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
|
|
169
|
+
'0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
170
|
+
],
|
|
171
|
+
[333, 200, web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address)], // Custom address
|
|
172
|
+
],
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
examples.forEach(([expected, actual]) => {
|
|
176
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
177
|
+
expect(subDataService.makerLeverageManagementWithoutSubProxy.encode(...actual)).to.eql(expected);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
describe('decode()', () => {
|
|
183
|
+
const examples: Array<[{ vaultId: number, targetRatio: number, daiAddr: string }, SubData]> = [
|
|
184
|
+
[
|
|
185
|
+
{
|
|
186
|
+
vaultId: 222,
|
|
187
|
+
targetRatio: 180,
|
|
188
|
+
daiAddr: web3Utils.toChecksumAddress(getAssetInfo('DAI', ChainId.Ethereum).address),
|
|
189
|
+
},
|
|
190
|
+
[
|
|
191
|
+
'0x00000000000000000000000000000000000000000000000000000000000000de', '0x00000000000000000000000000000000000000000000000018fae27693b40000',
|
|
192
|
+
'0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f',
|
|
193
|
+
],
|
|
194
|
+
],
|
|
195
|
+
[
|
|
196
|
+
{
|
|
197
|
+
vaultId: 333,
|
|
198
|
+
targetRatio: 200,
|
|
199
|
+
daiAddr: web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
|
|
200
|
+
},
|
|
201
|
+
[
|
|
202
|
+
'0x000000000000000000000000000000000000000000000000000000000000014d', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
|
|
203
|
+
'0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
204
|
+
],
|
|
205
|
+
],
|
|
206
|
+
];
|
|
207
|
+
|
|
208
|
+
examples.forEach(([expected, actual]) => {
|
|
209
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
210
|
+
expect(subDataService.makerLeverageManagementWithoutSubProxy.decode(actual)).to.eql(expected);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
|
|
156
216
|
describe('When testing subDataService.liquityLeverageManagementSubData', () => {
|
|
157
217
|
describe('decode()', () => {
|
|
158
218
|
const examples: Array<[{ targetRatio: number }, SubData]> = [
|
|
@@ -2203,4 +2263,177 @@ describe('Feature: subDataService.ts', () => {
|
|
|
2203
2263
|
});
|
|
2204
2264
|
});
|
|
2205
2265
|
});
|
|
2266
|
+
|
|
2267
|
+
describe('When testing subDataService.aaveV4LeverageManagementSubData', () => {
|
|
2268
|
+
describe('encode()', () => {
|
|
2269
|
+
const examples: Array<[SubData, [spoke: EthereumAddress, owner: EthereumAddress, ratioState: RatioState, targetRatio: number]]> = [
|
|
2270
|
+
[
|
|
2271
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x0000000000000000000000000000000000000000000000000000000000000001","0x00000000000000000000000000000000000000000000000014d1120d7b160000"],
|
|
2272
|
+
[web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'), web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'), RatioState.UNDER, 150]
|
|
2273
|
+
],
|
|
2274
|
+
];
|
|
2275
|
+
|
|
2276
|
+
examples.forEach(([expected, actual]) => {
|
|
2277
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
2278
|
+
expect(subDataService.aaveV4LeverageManagementSubData.encode(...actual)).to.eql(expected);
|
|
2279
|
+
});
|
|
2280
|
+
});
|
|
2281
|
+
});
|
|
2282
|
+
|
|
2283
|
+
describe('decode()', () => {
|
|
2284
|
+
const examples: Array<[{ spoke: EthereumAddress, owner: EthereumAddress, ratioState: RatioState, targetRatio: number }, SubData]> = [
|
|
2285
|
+
[
|
|
2286
|
+
{
|
|
2287
|
+
spoke: web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
|
|
2288
|
+
owner: web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2289
|
+
ratioState: RatioState.UNDER,
|
|
2290
|
+
targetRatio: 150,
|
|
2291
|
+
},
|
|
2292
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x0000000000000000000000000000000000000000000000000000000000000001","0x00000000000000000000000000000000000000000000000014d1120d7b160000"],
|
|
2293
|
+
],
|
|
2294
|
+
];
|
|
2295
|
+
|
|
2296
|
+
examples.forEach(([expected, actual]) => {
|
|
2297
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
2298
|
+
expect(subDataService.aaveV4LeverageManagementSubData.decode(actual)).to.eql(expected);
|
|
2299
|
+
});
|
|
2300
|
+
});
|
|
2301
|
+
});
|
|
2302
|
+
});
|
|
2303
|
+
|
|
2304
|
+
describe('When testing subDataService.aaveV4LeverageManagementOnPriceSubData', () => {
|
|
2305
|
+
describe('encode()', () => {
|
|
2306
|
+
const examples: Array<[SubData, [spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, ratioState: RatioState, targetRatio: number]]> = [
|
|
2307
|
+
[
|
|
2308
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000016345785d8a00000"],
|
|
2309
|
+
[
|
|
2310
|
+
web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'), web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2311
|
+
web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'), 10,
|
|
2312
|
+
web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), 20,
|
|
2313
|
+
RatioState.OVER, 160
|
|
2314
|
+
]
|
|
2315
|
+
],
|
|
2316
|
+
];
|
|
2317
|
+
|
|
2318
|
+
examples.forEach(([expected, actual]) => {
|
|
2319
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
2320
|
+
expect(subDataService.aaveV4LeverageManagementOnPriceSubData.encode(...actual)).to.eql(expected);
|
|
2321
|
+
});
|
|
2322
|
+
});
|
|
2323
|
+
});
|
|
2324
|
+
|
|
2325
|
+
describe('decode()', () => {
|
|
2326
|
+
const examples: Array<[{ spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, ratioState: RatioState, targetRatio: number }, SubData]> = [
|
|
2327
|
+
[
|
|
2328
|
+
{
|
|
2329
|
+
spoke: web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
|
|
2330
|
+
owner: web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2331
|
+
collAsset: web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'),
|
|
2332
|
+
collAssetId: 10,
|
|
2333
|
+
debtAsset: web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'),
|
|
2334
|
+
debtAssetId: 20,
|
|
2335
|
+
ratioState: RatioState.OVER,
|
|
2336
|
+
targetRatio: 160,
|
|
2337
|
+
},
|
|
2338
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000016345785d8a00000"],
|
|
2339
|
+
],
|
|
2340
|
+
];
|
|
2341
|
+
|
|
2342
|
+
examples.forEach(([expected, actual]) => {
|
|
2343
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
2344
|
+
expect(subDataService.aaveV4LeverageManagementOnPriceSubData.decode(actual)).to.eql(expected);
|
|
2345
|
+
});
|
|
2346
|
+
});
|
|
2347
|
+
});
|
|
2348
|
+
});
|
|
2349
|
+
|
|
2350
|
+
describe('When testing subDataService.aaveV4CloseSubData', () => {
|
|
2351
|
+
describe('encode()', () => {
|
|
2352
|
+
const examples: Array<[SubData, [spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType]]> = [
|
|
2353
|
+
[
|
|
2354
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000000000000000001"],
|
|
2355
|
+
[
|
|
2356
|
+
web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'), web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2357
|
+
web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'), 10,
|
|
2358
|
+
web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), 20,
|
|
2359
|
+
CloseStrategyType.STOP_LOSS_IN_COLLATERAL
|
|
2360
|
+
]
|
|
2361
|
+
],
|
|
2362
|
+
];
|
|
2363
|
+
|
|
2364
|
+
examples.forEach(([expected, actual]) => {
|
|
2365
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
2366
|
+
expect(subDataService.aaveV4CloseSubData.encode(...actual)).to.eql(expected);
|
|
2367
|
+
});
|
|
2368
|
+
});
|
|
2369
|
+
});
|
|
2370
|
+
|
|
2371
|
+
describe('decode()', () => {
|
|
2372
|
+
const examples: Array<[{ spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType }, SubData]> = [
|
|
2373
|
+
[
|
|
2374
|
+
{
|
|
2375
|
+
spoke: web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
|
|
2376
|
+
owner: web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2377
|
+
collAsset: web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'),
|
|
2378
|
+
collAssetId: 10,
|
|
2379
|
+
debtAsset: web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'),
|
|
2380
|
+
debtAssetId: 20,
|
|
2381
|
+
closeType: CloseStrategyType.STOP_LOSS_IN_COLLATERAL,
|
|
2382
|
+
},
|
|
2383
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000000000000000001"],
|
|
2384
|
+
],
|
|
2385
|
+
];
|
|
2386
|
+
|
|
2387
|
+
examples.forEach(([expected, actual]) => {
|
|
2388
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
2389
|
+
expect(subDataService.aaveV4CloseSubData.decode(actual)).to.eql(expected);
|
|
2390
|
+
});
|
|
2391
|
+
});
|
|
2392
|
+
});
|
|
2393
|
+
});
|
|
2394
|
+
|
|
2395
|
+
describe('When testing subDataService.aaveV4CollateralSwitchSubData', () => {
|
|
2396
|
+
describe('encode()', () => {
|
|
2397
|
+
const examples: Array<[SubData, [spoke: EthereumAddress, owner: EthereumAddress, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, amountToSwitch: string]]> = [
|
|
2398
|
+
[
|
|
2399
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"],
|
|
2400
|
+
[
|
|
2401
|
+
web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'), web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2402
|
+
web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'), 10,
|
|
2403
|
+
web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), 20,
|
|
2404
|
+
'1000000000000000000'
|
|
2405
|
+
]
|
|
2406
|
+
],
|
|
2407
|
+
];
|
|
2408
|
+
|
|
2409
|
+
examples.forEach(([expected, actual]) => {
|
|
2410
|
+
it(`Given ${actual} should return expected value: ${expected}`, () => {
|
|
2411
|
+
expect(subDataService.aaveV4CollateralSwitchSubData.encode(...actual)).to.eql(expected);
|
|
2412
|
+
});
|
|
2413
|
+
});
|
|
2414
|
+
});
|
|
2415
|
+
|
|
2416
|
+
describe('decode()', () => {
|
|
2417
|
+
const examples: Array<[{ spoke: EthereumAddress, owner: EthereumAddress, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, amountToSwitch: string }, SubData]> = [
|
|
2418
|
+
[
|
|
2419
|
+
{
|
|
2420
|
+
spoke: web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
|
|
2421
|
+
owner: web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
2422
|
+
fromAsset: web3Utils.toChecksumAddress('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'),
|
|
2423
|
+
fromAssetId: 10,
|
|
2424
|
+
toAsset: web3Utils.toChecksumAddress('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'),
|
|
2425
|
+
toAssetId: 20,
|
|
2426
|
+
amountToSwitch: '1000000000000000000'
|
|
2427
|
+
},
|
|
2428
|
+
["0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e","0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c","0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","0x0000000000000000000000000000000000000000000000000000000000000014","0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"],
|
|
2429
|
+
],
|
|
2430
|
+
];
|
|
2431
|
+
|
|
2432
|
+
examples.forEach(([expected, actual]) => {
|
|
2433
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
2434
|
+
expect(subDataService.aaveV4CollateralSwitchSubData.decode(actual)).to.eql(expected);
|
|
2435
|
+
});
|
|
2436
|
+
});
|
|
2437
|
+
});
|
|
2438
|
+
});
|
|
2206
2439
|
});
|