@gearbox-protocol/liquidator-v2-config 9.3.0 → 9.4.0
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/dist/index.d.ts +381 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -8
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Address, Transport } from "viem";
|
|
2
2
|
import { CensoredString, ClientWhitelistItem } from "@gearbox-protocol/cli-utils";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
|
-
import {
|
|
4
|
+
import { GearboxState, MultiCall, PriceUpdate, RawTx } from "@gearbox-protocol/sdk/onchain";
|
|
5
|
+
import { CuratorName } from "@gearbox-protocol/sdk/model";
|
|
5
6
|
import { AccountsPlugin } from "@gearbox-protocol/sdk/plugins/accounts";
|
|
6
7
|
//#region src/batch-liquidator.d.ts
|
|
7
8
|
declare const BatchLiquidatorSchema: z.ZodObject<{
|
|
@@ -43,26 +44,26 @@ declare const BatchLiquidatorSchema: z.ZodObject<{
|
|
|
43
44
|
type: z.ZodLiteral<"slack">;
|
|
44
45
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
45
46
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
46
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
47
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
47
48
|
}, z.core.$strip> | z.ZodObject<{
|
|
48
49
|
type: z.ZodLiteral<"telegram">;
|
|
49
50
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
50
51
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
51
52
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
52
53
|
prefix: z.ZodOptional<z.ZodString>;
|
|
53
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
54
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
54
55
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
55
56
|
type: z.ZodLiteral<"slack">;
|
|
56
57
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
57
58
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
58
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
59
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
59
60
|
}, z.core.$strip> | z.ZodObject<{
|
|
60
61
|
type: z.ZodLiteral<"telegram">;
|
|
61
62
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
62
63
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
63
64
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
64
65
|
prefix: z.ZodOptional<z.ZodString>;
|
|
65
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
66
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
66
67
|
}, z.core.$strip>)[]], "type">>>>;
|
|
67
68
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
68
69
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -151,26 +152,26 @@ declare const CommonSchema: z.ZodObject<{
|
|
|
151
152
|
type: z.ZodLiteral<"slack">;
|
|
152
153
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
153
154
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
154
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
155
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
155
156
|
}, z.core.$strip> | z.ZodObject<{
|
|
156
157
|
type: z.ZodLiteral<"telegram">;
|
|
157
158
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
158
159
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
159
160
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>>;
|
|
160
161
|
prefix: z.ZodOptional<z.ZodString>;
|
|
161
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
162
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
162
163
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
163
164
|
type: z.ZodLiteral<"slack">;
|
|
164
165
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
165
166
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
166
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
167
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
167
168
|
}, z.core.$strip> | z.ZodObject<{
|
|
168
169
|
type: z.ZodLiteral<"telegram">;
|
|
169
170
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
170
171
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>;
|
|
171
172
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<CensoredString<string>, CensoredString<string>>]>, z.ZodTransform<CensoredString<string>, string | CensoredString<string>>>>;
|
|
172
173
|
prefix: z.ZodOptional<z.ZodString>;
|
|
173
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
174
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
174
175
|
}, z.core.$strip>)[]], "type">>>>;
|
|
175
176
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
176
177
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -201,6 +202,7 @@ declare const CommonSchema: z.ZodObject<{
|
|
|
201
202
|
deleverage: "deleverage";
|
|
202
203
|
full: "full";
|
|
203
204
|
partial: "partial";
|
|
205
|
+
wallet: "wallet";
|
|
204
206
|
}>>;
|
|
205
207
|
optimistic: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
206
208
|
useProductionScanner: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
@@ -224,7 +226,7 @@ declare const CommonSchema: z.ZodObject<{
|
|
|
224
226
|
type CommonSchema = z.infer<typeof CommonSchema>;
|
|
225
227
|
//#endregion
|
|
226
228
|
//#region src/schema.d.ts
|
|
227
|
-
declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
229
|
+
export declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
228
230
|
network: z.ZodEnum<{
|
|
229
231
|
Arbitrum: "Arbitrum";
|
|
230
232
|
Avalanche: "Avalanche";
|
|
@@ -263,26 +265,26 @@ declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
263
265
|
type: z.ZodLiteral<"slack">;
|
|
264
266
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
265
267
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
266
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
268
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
267
269
|
}, z.core.$strip> | z.ZodObject<{
|
|
268
270
|
type: z.ZodLiteral<"telegram">;
|
|
269
271
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
270
272
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
271
273
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
272
274
|
prefix: z.ZodOptional<z.ZodString>;
|
|
273
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
275
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
274
276
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
275
277
|
type: z.ZodLiteral<"slack">;
|
|
276
278
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
277
279
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
278
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
280
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
279
281
|
}, z.core.$strip> | z.ZodObject<{
|
|
280
282
|
type: z.ZodLiteral<"telegram">;
|
|
281
283
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
282
284
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
283
285
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
284
286
|
prefix: z.ZodOptional<z.ZodString>;
|
|
285
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
287
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
286
288
|
}, z.core.$strip>)[]], "type">>>>;
|
|
287
289
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
288
290
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -377,26 +379,26 @@ declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
377
379
|
type: z.ZodLiteral<"slack">;
|
|
378
380
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
379
381
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
380
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
382
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
381
383
|
}, z.core.$strip> | z.ZodObject<{
|
|
382
384
|
type: z.ZodLiteral<"telegram">;
|
|
383
385
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
384
386
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
385
387
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
386
388
|
prefix: z.ZodOptional<z.ZodString>;
|
|
387
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
389
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
388
390
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
389
391
|
type: z.ZodLiteral<"slack">;
|
|
390
392
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
391
393
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
392
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
394
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
393
395
|
}, z.core.$strip> | z.ZodObject<{
|
|
394
396
|
type: z.ZodLiteral<"telegram">;
|
|
395
397
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
396
398
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
397
399
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
398
400
|
prefix: z.ZodOptional<z.ZodString>;
|
|
399
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
401
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
400
402
|
}, z.core.$strip>)[]], "type">>>>;
|
|
401
403
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
402
404
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -483,26 +485,26 @@ declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
483
485
|
type: z.ZodLiteral<"slack">;
|
|
484
486
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
485
487
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
486
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
488
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
487
489
|
}, z.core.$strip> | z.ZodObject<{
|
|
488
490
|
type: z.ZodLiteral<"telegram">;
|
|
489
491
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
490
492
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
491
493
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
492
494
|
prefix: z.ZodOptional<z.ZodString>;
|
|
493
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
495
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
494
496
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
495
497
|
type: z.ZodLiteral<"slack">;
|
|
496
498
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
497
499
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
498
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
500
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
499
501
|
}, z.core.$strip> | z.ZodObject<{
|
|
500
502
|
type: z.ZodLiteral<"telegram">;
|
|
501
503
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
502
504
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
503
505
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
504
506
|
prefix: z.ZodOptional<z.ZodString>;
|
|
505
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
507
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
506
508
|
}, z.core.$strip>)[]], "type">>>>;
|
|
507
509
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
508
510
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -587,26 +589,26 @@ declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
587
589
|
type: z.ZodLiteral<"slack">;
|
|
588
590
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
589
591
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
590
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
592
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
591
593
|
}, z.core.$strip> | z.ZodObject<{
|
|
592
594
|
type: z.ZodLiteral<"telegram">;
|
|
593
595
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
594
596
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
595
597
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
596
598
|
prefix: z.ZodOptional<z.ZodString>;
|
|
597
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
599
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
598
600
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
599
601
|
type: z.ZodLiteral<"slack">;
|
|
600
602
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
601
603
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
602
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
604
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
603
605
|
}, z.core.$strip> | z.ZodObject<{
|
|
604
606
|
type: z.ZodLiteral<"telegram">;
|
|
605
607
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
606
608
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
607
609
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
608
610
|
prefix: z.ZodOptional<z.ZodString>;
|
|
609
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
611
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
610
612
|
}, z.core.$strip>)[]], "type">>>>;
|
|
611
613
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
612
614
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -651,19 +653,122 @@ declare const ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
651
653
|
outS3Prefix: z.ZodDefault<z.ZodString>;
|
|
652
654
|
outFileName: z.ZodOptional<z.ZodString>;
|
|
653
655
|
liquidationMode: z.ZodLiteral<"deleverage">;
|
|
656
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
657
|
+
network: z.ZodEnum<{
|
|
658
|
+
Arbitrum: "Arbitrum";
|
|
659
|
+
Avalanche: "Avalanche";
|
|
660
|
+
BNB: "BNB";
|
|
661
|
+
Base: "Base";
|
|
662
|
+
Berachain: "Berachain";
|
|
663
|
+
Etherlink: "Etherlink";
|
|
664
|
+
Hemi: "Hemi";
|
|
665
|
+
Lisk: "Lisk";
|
|
666
|
+
Mainnet: "Mainnet";
|
|
667
|
+
MegaETH: "MegaETH";
|
|
668
|
+
Monad: "Monad";
|
|
669
|
+
Optimism: "Optimism";
|
|
670
|
+
Plasma: "Plasma";
|
|
671
|
+
Somnia: "Somnia";
|
|
672
|
+
Sonic: "Sonic";
|
|
673
|
+
WorldChain: "WorldChain";
|
|
674
|
+
}>;
|
|
675
|
+
jsonRpcProviders: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodURL, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredURL, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredURL[] | undefined, import("@gearbox-protocol/cli-utils").CensoredURL[]>>>;
|
|
676
|
+
enabledProviders: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodEnum<{
|
|
677
|
+
alchemy: "alchemy";
|
|
678
|
+
ankr: "ankr";
|
|
679
|
+
custom: "custom";
|
|
680
|
+
drpc: "drpc";
|
|
681
|
+
erpc: "erpc";
|
|
682
|
+
thirdweb: "thirdweb";
|
|
683
|
+
}>>>>;
|
|
684
|
+
alchemyKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
685
|
+
drpcKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
686
|
+
ankrKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
687
|
+
thirdwebKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
688
|
+
erpcProjectId: z.ZodOptional<z.ZodString>;
|
|
689
|
+
erpcUrl: z.ZodDefault<z.ZodURL>;
|
|
690
|
+
jsonRpcTimeout: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
691
|
+
notifications: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
692
|
+
type: z.ZodLiteral<"slack">;
|
|
693
|
+
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
694
|
+
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
695
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
696
|
+
}, z.core.$strip> | z.ZodObject<{
|
|
697
|
+
type: z.ZodLiteral<"telegram">;
|
|
698
|
+
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
699
|
+
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
700
|
+
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
701
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
702
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
703
|
+
}, z.core.$strip>, ...(z.ZodObject<{
|
|
704
|
+
type: z.ZodLiteral<"slack">;
|
|
705
|
+
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
706
|
+
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
707
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
708
|
+
}, z.core.$strip> | z.ZodObject<{
|
|
709
|
+
type: z.ZodLiteral<"telegram">;
|
|
710
|
+
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
711
|
+
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
712
|
+
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
713
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
714
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
715
|
+
}, z.core.$strip>)[]], "type">>>>;
|
|
716
|
+
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
717
|
+
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
718
|
+
rwaFactories: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
719
|
+
appName: z.ZodDefault<z.ZodString>;
|
|
720
|
+
port: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
721
|
+
whitelistUrl: z.ZodOptional<z.ZodURL>;
|
|
722
|
+
hardWhitelist: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
723
|
+
address: z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>;
|
|
724
|
+
reason: z.ZodDefault<z.ZodString>;
|
|
725
|
+
contractType: z.ZodOptional<z.ZodString>;
|
|
726
|
+
expiresAt: z.ZodOptional<z.ZodNumber>;
|
|
727
|
+
}, z.core.$strip>>>;
|
|
728
|
+
debugAccount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
729
|
+
debugManager: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
730
|
+
castBin: z.ZodOptional<z.ZodString>;
|
|
731
|
+
castTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
732
|
+
staleBlockThreshold: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
733
|
+
logsPageSize: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
|
|
734
|
+
pollingInterval: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
735
|
+
privateKey: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<`0x${string}`>, `0x${string}`>>>;
|
|
736
|
+
liquidatorAddress: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
737
|
+
minBalanceGas: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
738
|
+
hfThreshold: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
739
|
+
numSplits: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
740
|
+
optimistic: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
741
|
+
useProductionScanner: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
742
|
+
optimisticTimestamp: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
743
|
+
failOnMissingFeeds: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
744
|
+
gasLimit: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
|
|
745
|
+
dryRun: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
746
|
+
redstoneGateways: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodURL>>, z.ZodTransform<string[] | undefined, string[]>>>;
|
|
747
|
+
compressorBatchSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
748
|
+
slippage: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
749
|
+
updateReservePrices: z.ZodDefault<z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>>;
|
|
750
|
+
keepAssets: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
751
|
+
premiumReceiver: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
752
|
+
outDir: z.ZodDefault<z.ZodString>;
|
|
753
|
+
outEndpoint: z.ZodOptional<z.ZodURL>;
|
|
754
|
+
outHeaders: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>;
|
|
755
|
+
outS3Bucket: z.ZodOptional<z.ZodString>;
|
|
756
|
+
outS3Prefix: z.ZodDefault<z.ZodString>;
|
|
757
|
+
outFileName: z.ZodOptional<z.ZodString>;
|
|
758
|
+
liquidationMode: z.ZodLiteral<"wallet">;
|
|
654
759
|
}, z.core.$strip>], "liquidationMode">;
|
|
655
|
-
type ConfigSchema = z.infer<typeof ConfigSchema>;
|
|
760
|
+
export type ConfigSchema = z.infer<typeof ConfigSchema>;
|
|
656
761
|
//#endregion
|
|
657
762
|
//#region src/config.d.ts
|
|
658
|
-
type Config = ConfigSchema & {
|
|
763
|
+
export type Config = ConfigSchema & {
|
|
659
764
|
readonly chainId: number;
|
|
660
765
|
readonly startBlock: bigint;
|
|
661
766
|
};
|
|
662
|
-
type LiqduiatorConfig<TSchema extends CommonSchema> = TSchema & {
|
|
767
|
+
export type LiqduiatorConfig<TSchema extends CommonSchema> = TSchema & {
|
|
663
768
|
readonly chainId: number;
|
|
664
769
|
readonly startBlock: bigint;
|
|
665
770
|
};
|
|
666
|
-
declare class ConfigImplementation {
|
|
771
|
+
export declare class ConfigImplementation {
|
|
667
772
|
#private;
|
|
668
773
|
constructor(schema: ConfigSchema);
|
|
669
774
|
initialize(transport: Transport): Promise<void>;
|
|
@@ -711,26 +816,26 @@ declare const DeleverageLiquidatorSchema: z.ZodObject<{
|
|
|
711
816
|
type: z.ZodLiteral<"slack">;
|
|
712
817
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
713
818
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
714
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
819
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
715
820
|
}, z.core.$strip> | z.ZodObject<{
|
|
716
821
|
type: z.ZodLiteral<"telegram">;
|
|
717
822
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
718
823
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
719
824
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
720
825
|
prefix: z.ZodOptional<z.ZodString>;
|
|
721
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
826
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
722
827
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
723
828
|
type: z.ZodLiteral<"slack">;
|
|
724
829
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
725
830
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
726
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
831
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
727
832
|
}, z.core.$strip> | z.ZodObject<{
|
|
728
833
|
type: z.ZodLiteral<"telegram">;
|
|
729
834
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
730
835
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
731
836
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
732
837
|
prefix: z.ZodOptional<z.ZodString>;
|
|
733
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
838
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
734
839
|
}, z.core.$strip>)[]], "type">>>>;
|
|
735
840
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
736
841
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -818,26 +923,26 @@ declare const FullLiquidatorSchema: z.ZodObject<{
|
|
|
818
923
|
type: z.ZodLiteral<"slack">;
|
|
819
924
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
820
925
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
821
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
926
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
822
927
|
}, z.core.$strip> | z.ZodObject<{
|
|
823
928
|
type: z.ZodLiteral<"telegram">;
|
|
824
929
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
825
930
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
826
931
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
827
932
|
prefix: z.ZodOptional<z.ZodString>;
|
|
828
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
933
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
829
934
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
830
935
|
type: z.ZodLiteral<"slack">;
|
|
831
936
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
832
937
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
833
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
938
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
834
939
|
}, z.core.$strip> | z.ZodObject<{
|
|
835
940
|
type: z.ZodLiteral<"telegram">;
|
|
836
941
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
837
942
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
838
943
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
839
944
|
prefix: z.ZodOptional<z.ZodString>;
|
|
840
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
945
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
841
946
|
}, z.core.$strip>)[]], "type">>>>;
|
|
842
947
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
843
948
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -897,31 +1002,31 @@ declare const FullLiquidatorSchema: z.ZodObject<{
|
|
|
897
1002
|
type FullLiquidatorSchema = z.infer<typeof FullLiquidatorSchema>;
|
|
898
1003
|
//#endregion
|
|
899
1004
|
//#region src/notifications.d.ts
|
|
900
|
-
declare const NotificationsConfig: z.ZodObject<{
|
|
1005
|
+
export declare const NotificationsConfig: z.ZodObject<{
|
|
901
1006
|
notifications: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
902
1007
|
type: z.ZodLiteral<"slack">;
|
|
903
1008
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
904
1009
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
905
|
-
curator: z.ZodOptional<z.ZodCustom<
|
|
1010
|
+
curator: z.ZodOptional<z.ZodCustom<CuratorName, CuratorName>>;
|
|
906
1011
|
}, z.core.$strip> | z.ZodObject<{
|
|
907
1012
|
type: z.ZodLiteral<"telegram">;
|
|
908
1013
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
909
1014
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
910
1015
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
911
1016
|
prefix: z.ZodOptional<z.ZodString>;
|
|
912
|
-
curator: z.ZodOptional<z.ZodCustom<
|
|
1017
|
+
curator: z.ZodOptional<z.ZodCustom<CuratorName, CuratorName>>;
|
|
913
1018
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
914
1019
|
type: z.ZodLiteral<"slack">;
|
|
915
1020
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
916
1021
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
917
|
-
curator: z.ZodOptional<z.ZodCustom<
|
|
1022
|
+
curator: z.ZodOptional<z.ZodCustom<CuratorName, CuratorName>>;
|
|
918
1023
|
}, z.core.$strip> | z.ZodObject<{
|
|
919
1024
|
type: z.ZodLiteral<"telegram">;
|
|
920
1025
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
921
1026
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
922
1027
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
923
1028
|
prefix: z.ZodOptional<z.ZodString>;
|
|
924
|
-
curator: z.ZodOptional<z.ZodCustom<
|
|
1029
|
+
curator: z.ZodOptional<z.ZodCustom<CuratorName, CuratorName>>;
|
|
925
1030
|
}, z.core.$strip>)[]], "type">>>>;
|
|
926
1031
|
}, z.core.$strip>;
|
|
927
1032
|
//#endregion
|
|
@@ -932,7 +1037,7 @@ type Numberish = number | string | bigint;
|
|
|
932
1037
|
* `none` is used when no strategy was applicable, or an error occurred before a
|
|
933
1038
|
* strategy could be selected.
|
|
934
1039
|
*/
|
|
935
|
-
type LiquidationStrategyKind = "full" | "loss-policy" | "rwa-via-stablecoins" | "partial" | "deleverage" | "none";
|
|
1040
|
+
type LiquidationStrategyKind = "full" | "loss-policy" | "rwa-via-stablecoins" | "partial" | "deleverage" | "wallet" | "none";
|
|
936
1041
|
/**
|
|
937
1042
|
* Preview data shared by full and loss-policy strategies (single full liquidation
|
|
938
1043
|
* routed through the pathfinder). Carries the execution-only fields (`calls`,
|
|
@@ -1017,6 +1122,98 @@ interface RwaStrategyPreview {
|
|
|
1017
1122
|
*/
|
|
1018
1123
|
skipOnFailure?: boolean;
|
|
1019
1124
|
}
|
|
1125
|
+
/**
|
|
1126
|
+
* ERC-20 approval the liquidator must grant before sending the liquidation
|
|
1127
|
+
* transaction when it pays from its own funds.
|
|
1128
|
+
*/
|
|
1129
|
+
interface Approval<N extends Numberish = Numberish> {
|
|
1130
|
+
/**
|
|
1131
|
+
* Credit manager, or the dedicated Midas/Securitize liquidator contract.
|
|
1132
|
+
*/
|
|
1133
|
+
spender: Address;
|
|
1134
|
+
/**
|
|
1135
|
+
* Credit manager underlying.
|
|
1136
|
+
*/
|
|
1137
|
+
token: Address;
|
|
1138
|
+
/**
|
|
1139
|
+
* Amount the liquidation pulls plus the SDK's headroom.
|
|
1140
|
+
*/
|
|
1141
|
+
amount: N;
|
|
1142
|
+
}
|
|
1143
|
+
/**
|
|
1144
|
+
* Delayed withdrawal position the liquidator takes ownership of during
|
|
1145
|
+
* liquidation. No tokens move: the redeemer contract changes owner.
|
|
1146
|
+
*/
|
|
1147
|
+
interface Redeemer<N extends Numberish = Numberish> {
|
|
1148
|
+
/**
|
|
1149
|
+
* Redeemer contract whose ownership moves to the liquidator.
|
|
1150
|
+
*/
|
|
1151
|
+
address?: Address;
|
|
1152
|
+
/**
|
|
1153
|
+
* Receivable token, e.g. the Securitize stablecoin.
|
|
1154
|
+
*/
|
|
1155
|
+
token: Address;
|
|
1156
|
+
/**
|
|
1157
|
+
* Amount of {@link token}: exact for claimable withdrawals, estimated for
|
|
1158
|
+
* pending ones.
|
|
1159
|
+
*/
|
|
1160
|
+
amount: N;
|
|
1161
|
+
/**
|
|
1162
|
+
* Estimated unix timestamp (seconds) when the redemption becomes claimable.
|
|
1163
|
+
*/
|
|
1164
|
+
claimableAt?: number;
|
|
1165
|
+
}
|
|
1166
|
+
/**
|
|
1167
|
+
* Preview data of the wallet strategy: a liquidation paid from the liquidator's
|
|
1168
|
+
* own funds, previewed by the liquidation compressor.
|
|
1169
|
+
*/
|
|
1170
|
+
interface WalletStrategyPreview<N extends Numberish = Numberish> {
|
|
1171
|
+
/**
|
|
1172
|
+
* Approval granted in the prepare step, absent when the liquidation path
|
|
1173
|
+
* needs no capital from the liquidator.
|
|
1174
|
+
*/
|
|
1175
|
+
approve?: Approval<N>;
|
|
1176
|
+
/**
|
|
1177
|
+
* Redemption positions the liquidation hands over to the liquidator.
|
|
1178
|
+
*/
|
|
1179
|
+
redeemers: Redeemer<N>[];
|
|
1180
|
+
/**
|
|
1181
|
+
* Top-level liquidation call built by the compressor, targeting either the
|
|
1182
|
+
* credit facade or a dedicated Midas/Securitize liquidator contract.
|
|
1183
|
+
*/
|
|
1184
|
+
calls: readonly MultiCall[];
|
|
1185
|
+
/**
|
|
1186
|
+
* Liquidation transaction built by the liquidation compressor.
|
|
1187
|
+
*/
|
|
1188
|
+
rawTx: RawTx;
|
|
1189
|
+
/**
|
|
1190
|
+
* If true, will not attempt to liquidate this account again.
|
|
1191
|
+
*/
|
|
1192
|
+
skipOnFailure?: boolean;
|
|
1193
|
+
}
|
|
1194
|
+
/**
|
|
1195
|
+
* Token amount reported in an {@link OptimisticResult}.
|
|
1196
|
+
*/
|
|
1197
|
+
interface OptimisticAsset<N extends Numberish = Numberish> {
|
|
1198
|
+
token: Address;
|
|
1199
|
+
amount: N;
|
|
1200
|
+
}
|
|
1201
|
+
/**
|
|
1202
|
+
* What the liquidator got out of a wallet-funded liquidation.
|
|
1203
|
+
*/
|
|
1204
|
+
interface WalletStrategyOutcome<N extends Numberish = Numberish> {
|
|
1205
|
+
/**
|
|
1206
|
+
* Balance increases of the liquidator wallet across the liquidation,
|
|
1207
|
+
* measured with a `balanceOf` multicall before and after the transaction.
|
|
1208
|
+
* Includes phantom tokens such as Securitize pending redemptions.
|
|
1209
|
+
*/
|
|
1210
|
+
received: OptimisticAsset<N>[];
|
|
1211
|
+
/**
|
|
1212
|
+
* Redemption positions the liquidator now owns, from the compressor preview:
|
|
1213
|
+
* the redeemer addresses and claim timestamps that a balance cannot express.
|
|
1214
|
+
*/
|
|
1215
|
+
redeemers: Redeemer<N>[];
|
|
1216
|
+
}
|
|
1020
1217
|
interface LossPolicyStrategySetup<N extends Numberish = Numberish> {
|
|
1021
1218
|
/**
|
|
1022
1219
|
* Amount the account debt was artificially increased by.
|
|
@@ -1064,6 +1261,21 @@ interface StrategyPreviews<N extends Numberish = Numberish> {
|
|
|
1064
1261
|
partial: PartialStrategyPreview<N>;
|
|
1065
1262
|
deleverage: PartialStrategyPreview<N>;
|
|
1066
1263
|
"rwa-via-stablecoins": RwaStrategyPreview;
|
|
1264
|
+
wallet: WalletStrategyPreview<N>;
|
|
1265
|
+
none: never;
|
|
1266
|
+
}
|
|
1267
|
+
/**
|
|
1268
|
+
* Maps each {@link LiquidationStrategyKind} to its `outcome` shape (what the
|
|
1269
|
+
* liquidator got out of the liquidation). Only strategies that liquidate with
|
|
1270
|
+
* own capital report one.
|
|
1271
|
+
*/
|
|
1272
|
+
interface StrategyOutcomes<N extends Numberish = Numberish> {
|
|
1273
|
+
full: never;
|
|
1274
|
+
"loss-policy": never;
|
|
1275
|
+
partial: never;
|
|
1276
|
+
deleverage: never;
|
|
1277
|
+
"rwa-via-stablecoins": never;
|
|
1278
|
+
wallet: WalletStrategyOutcome<N>;
|
|
1067
1279
|
none: never;
|
|
1068
1280
|
}
|
|
1069
1281
|
/**
|
|
@@ -1076,6 +1288,7 @@ interface StrategySetups<N extends Numberish = Numberish> {
|
|
|
1076
1288
|
partial: PartialStrategySetup<N>;
|
|
1077
1289
|
deleverage: DeleverageStrategySetup<N>;
|
|
1078
1290
|
"rwa-via-stablecoins": RwaStrategySetup;
|
|
1291
|
+
wallet: never;
|
|
1079
1292
|
none: never;
|
|
1080
1293
|
}
|
|
1081
1294
|
/**
|
|
@@ -1178,6 +1391,10 @@ type OptimisticResultByKind<N extends Numberish = Numberish> = { [K in Liquidati
|
|
|
1178
1391
|
* Strategy-specific liquidation preview.
|
|
1179
1392
|
*/
|
|
1180
1393
|
preview?: StrategyPreviews<N>[K];
|
|
1394
|
+
/**
|
|
1395
|
+
* Strategy-specific result of the liquidation: what the liquidator got.
|
|
1396
|
+
*/
|
|
1397
|
+
outcome?: StrategyOutcomes<N>[K];
|
|
1181
1398
|
}; };
|
|
1182
1399
|
/**
|
|
1183
1400
|
* Optimistic liquidation result format, shared by all liquidators.
|
|
@@ -1228,26 +1445,26 @@ declare const PartialLiquidatorSchema: z.ZodObject<{
|
|
|
1228
1445
|
type: z.ZodLiteral<"slack">;
|
|
1229
1446
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1230
1447
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1231
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
1448
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1232
1449
|
}, z.core.$strip> | z.ZodObject<{
|
|
1233
1450
|
type: z.ZodLiteral<"telegram">;
|
|
1234
1451
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1235
1452
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1236
1453
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
1237
1454
|
prefix: z.ZodOptional<z.ZodString>;
|
|
1238
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
1455
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1239
1456
|
}, z.core.$strip>, ...(z.ZodObject<{
|
|
1240
1457
|
type: z.ZodLiteral<"slack">;
|
|
1241
1458
|
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1242
1459
|
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1243
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
1460
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1244
1461
|
}, z.core.$strip> | z.ZodObject<{
|
|
1245
1462
|
type: z.ZodLiteral<"telegram">;
|
|
1246
1463
|
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1247
1464
|
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1248
1465
|
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
1249
1466
|
prefix: z.ZodOptional<z.ZodString>;
|
|
1250
|
-
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk").
|
|
1467
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1251
1468
|
}, z.core.$strip>)[]], "type">>>>;
|
|
1252
1469
|
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1253
1470
|
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
@@ -1303,6 +1520,10 @@ type TypedSDKState = GearboxState<{
|
|
|
1303
1520
|
readonly accounts: AccountsPlugin;
|
|
1304
1521
|
}>;
|
|
1305
1522
|
type WhitelistEntry = ClientWhitelistItem;
|
|
1523
|
+
/**
|
|
1524
|
+
* Human-readable labels for credit accounts, keyed by checksummed credit account address
|
|
1525
|
+
*/
|
|
1526
|
+
type AccountLabels = Record<Address, string>;
|
|
1306
1527
|
interface TrackReport {
|
|
1307
1528
|
id: string;
|
|
1308
1529
|
name: string;
|
|
@@ -1334,6 +1555,10 @@ interface ExecutionReport {
|
|
|
1334
1555
|
* Account/CM/Token addresses that we do not need to alert about, if they cannot be liquidated
|
|
1335
1556
|
*/
|
|
1336
1557
|
whitelist?: WhitelistEntry[];
|
|
1558
|
+
/**
|
|
1559
|
+
* Human-readable credit account labels, loaded from external file
|
|
1560
|
+
*/
|
|
1561
|
+
accountLabels?: AccountLabels;
|
|
1337
1562
|
/**
|
|
1338
1563
|
* Gearbox SDK state when it was attached
|
|
1339
1564
|
*/
|
|
@@ -1344,5 +1569,112 @@ interface ExecutionReport {
|
|
|
1344
1569
|
gasPrice: bigint;
|
|
1345
1570
|
}
|
|
1346
1571
|
//#endregion
|
|
1347
|
-
|
|
1572
|
+
//#region src/wallet-liquidator.d.ts
|
|
1573
|
+
declare const WalletLiquidatorSchema: z.ZodObject<{
|
|
1574
|
+
network: z.ZodEnum<{
|
|
1575
|
+
Arbitrum: "Arbitrum";
|
|
1576
|
+
Avalanche: "Avalanche";
|
|
1577
|
+
BNB: "BNB";
|
|
1578
|
+
Base: "Base";
|
|
1579
|
+
Berachain: "Berachain";
|
|
1580
|
+
Etherlink: "Etherlink";
|
|
1581
|
+
Hemi: "Hemi";
|
|
1582
|
+
Lisk: "Lisk";
|
|
1583
|
+
Mainnet: "Mainnet";
|
|
1584
|
+
MegaETH: "MegaETH";
|
|
1585
|
+
Monad: "Monad";
|
|
1586
|
+
Optimism: "Optimism";
|
|
1587
|
+
Plasma: "Plasma";
|
|
1588
|
+
Somnia: "Somnia";
|
|
1589
|
+
Sonic: "Sonic";
|
|
1590
|
+
WorldChain: "WorldChain";
|
|
1591
|
+
}>;
|
|
1592
|
+
jsonRpcProviders: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodURL, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredURL, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredURL[] | undefined, import("@gearbox-protocol/cli-utils").CensoredURL[]>>>;
|
|
1593
|
+
enabledProviders: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodEnum<{
|
|
1594
|
+
alchemy: "alchemy";
|
|
1595
|
+
ankr: "ankr";
|
|
1596
|
+
custom: "custom";
|
|
1597
|
+
drpc: "drpc";
|
|
1598
|
+
erpc: "erpc";
|
|
1599
|
+
thirdweb: "thirdweb";
|
|
1600
|
+
}>>>>;
|
|
1601
|
+
alchemyKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
1602
|
+
drpcKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
1603
|
+
ankrKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
1604
|
+
thirdwebKeys: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>[] | undefined, import("@gearbox-protocol/cli-utils").CensoredString<string>[]>>>;
|
|
1605
|
+
erpcProjectId: z.ZodOptional<z.ZodString>;
|
|
1606
|
+
erpcUrl: z.ZodDefault<z.ZodURL>;
|
|
1607
|
+
jsonRpcTimeout: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
1608
|
+
notifications: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1609
|
+
type: z.ZodLiteral<"slack">;
|
|
1610
|
+
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1611
|
+
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1612
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1613
|
+
}, z.core.$strip> | z.ZodObject<{
|
|
1614
|
+
type: z.ZodLiteral<"telegram">;
|
|
1615
|
+
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1616
|
+
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1617
|
+
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
1618
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
1619
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1620
|
+
}, z.core.$strip>, ...(z.ZodObject<{
|
|
1621
|
+
type: z.ZodLiteral<"slack">;
|
|
1622
|
+
webhookUrl: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1623
|
+
alertsOnly: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1624
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1625
|
+
}, z.core.$strip> | z.ZodObject<{
|
|
1626
|
+
type: z.ZodLiteral<"telegram">;
|
|
1627
|
+
token: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1628
|
+
alertsChannel: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>;
|
|
1629
|
+
notificationsChannel: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<import("@gearbox-protocol/cli-utils").CensoredString<string>, import("@gearbox-protocol/cli-utils").CensoredString<string>>]>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string | import("@gearbox-protocol/cli-utils").CensoredString<string>>>>;
|
|
1630
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
1631
|
+
curator: z.ZodOptional<z.ZodCustom<import("@gearbox-protocol/sdk/model").CuratorName, import("@gearbox-protocol/sdk/model").CuratorName>>;
|
|
1632
|
+
}, z.core.$strip>)[]], "type">>>>;
|
|
1633
|
+
addressProvider: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1634
|
+
marketConfigurators: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
1635
|
+
rwaFactories: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
1636
|
+
appName: z.ZodDefault<z.ZodString>;
|
|
1637
|
+
port: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1638
|
+
whitelistUrl: z.ZodOptional<z.ZodURL>;
|
|
1639
|
+
hardWhitelist: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1640
|
+
address: z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>;
|
|
1641
|
+
reason: z.ZodDefault<z.ZodString>;
|
|
1642
|
+
contractType: z.ZodOptional<z.ZodString>;
|
|
1643
|
+
expiresAt: z.ZodOptional<z.ZodNumber>;
|
|
1644
|
+
}, z.core.$strip>>>;
|
|
1645
|
+
debugAccount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1646
|
+
debugManager: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1647
|
+
castBin: z.ZodOptional<z.ZodString>;
|
|
1648
|
+
castTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1649
|
+
staleBlockThreshold: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1650
|
+
logsPageSize: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
|
|
1651
|
+
pollingInterval: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
1652
|
+
privateKey: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<`0x${string}`>, `0x${string}`>>>;
|
|
1653
|
+
liquidatorAddress: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1654
|
+
minBalanceGas: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
1655
|
+
hfThreshold: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
1656
|
+
numSplits: z.ZodDefault<z.ZodCoercedBigInt<unknown>>;
|
|
1657
|
+
optimistic: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1658
|
+
useProductionScanner: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1659
|
+
optimisticTimestamp: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
|
|
1660
|
+
failOnMissingFeeds: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1661
|
+
gasLimit: z.ZodOptional<z.ZodCoercedBigInt<unknown>>;
|
|
1662
|
+
dryRun: z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>;
|
|
1663
|
+
redstoneGateways: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodURL>>, z.ZodTransform<string[] | undefined, string[]>>>;
|
|
1664
|
+
compressorBatchSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1665
|
+
slippage: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
1666
|
+
updateReservePrices: z.ZodDefault<z.ZodOptional<z.ZodPipe<z.ZodAny, z.ZodTransform<boolean, any>>>>;
|
|
1667
|
+
keepAssets: z.ZodPipe<z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>, z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>>>, z.ZodTransform<`0x${string}`[] | undefined, `0x${string}`[] | undefined>>;
|
|
1668
|
+
premiumReceiver: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
|
|
1669
|
+
outDir: z.ZodDefault<z.ZodString>;
|
|
1670
|
+
outEndpoint: z.ZodOptional<z.ZodURL>;
|
|
1671
|
+
outHeaders: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<import("@gearbox-protocol/cli-utils").CensoredString<string>, string>>;
|
|
1672
|
+
outS3Bucket: z.ZodOptional<z.ZodString>;
|
|
1673
|
+
outS3Prefix: z.ZodDefault<z.ZodString>;
|
|
1674
|
+
outFileName: z.ZodOptional<z.ZodString>;
|
|
1675
|
+
liquidationMode: z.ZodLiteral<"wallet">;
|
|
1676
|
+
}, z.core.$strip>;
|
|
1677
|
+
type WalletLiquidatorSchema = z.infer<typeof WalletLiquidatorSchema>;
|
|
1678
|
+
//#endregion
|
|
1679
|
+
export type { AccountLabels, Approval, BatchLiquidatorSchema, CommonSchema, DeleverageLiquidatorSchema, DeleverageStrategySetup, ExecutionReport, FullLiquidatorSchema, FullStrategyPreview, LiquidationStrategyKind, LossPolicyStrategySetup, Numberish, OptimisticAsset, OptimisticResult, OptimisticResultBase, PartialLiquidatorSchema, PartialStrategyPreview, PartialStrategySetup, Redeemer, RwaStrategyPreview, RwaStrategySetup, StrategyOutcomes, StrategyPreviews, StrategySetups, TrackReport, TypedSDKState, WalletLiquidatorSchema, WalletStrategyOutcome, WalletStrategyPreview, WhitelistEntry };
|
|
1348
1680
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/batch-liquidator.ts","../src/common.ts","../src/schema.ts","../src/config.ts","../src/deleverage-liquidator.ts","../src/full-liquidator.ts","../src/notifications.ts","../src/optimist.ts","../src/partial-liquidator.ts","../src/report.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/batch-liquidator.ts","../src/common.ts","../src/schema.ts","../src/config.ts","../src/deleverage-liquidator.ts","../src/full-liquidator.ts","../src/notifications.ts","../src/optimist.ts","../src/partial-liquidator.ts","../src/report.ts","../src/wallet-liquidator.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createPublicClient, isHex } from "viem";
|
|
2
2
|
import { CensoredString, NotificationConfig, ProvidersSchema, addressLike, boolLike, clientWhitelistItemSchema, optionalAddressArrayLike, stringArrayLike, zommandRegistry } from "@gearbox-protocol/cli-utils";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
|
-
import { MAX_UINT256, WAD } from "@gearbox-protocol/sdk";
|
|
4
|
+
import { MAX_UINT256, WAD } from "@gearbox-protocol/sdk/onchain";
|
|
5
5
|
//#region src/config.ts
|
|
6
6
|
var ConfigImplementation = class {
|
|
7
7
|
#startBlock;
|
|
@@ -204,10 +204,11 @@ const CommonSchema = z.object({
|
|
|
204
204
|
"full",
|
|
205
205
|
"partial",
|
|
206
206
|
"batch",
|
|
207
|
-
"deleverage"
|
|
207
|
+
"deleverage",
|
|
208
|
+
"wallet"
|
|
208
209
|
]).default("full").register(zommandRegistry, {
|
|
209
210
|
flags: "--liquidation-mode <mode>",
|
|
210
|
-
description: "Liquidator mode (full/partial/batch/deleverage)",
|
|
211
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
211
212
|
env: "LIQUIDATION_MODE"
|
|
212
213
|
}),
|
|
213
214
|
/**
|
|
@@ -375,7 +376,7 @@ const BatchLiquidatorSchema = z.object({
|
|
|
375
376
|
*/
|
|
376
377
|
liquidationMode: z.literal("batch").register(zommandRegistry, {
|
|
377
378
|
flags: "--liquidation-mode <mode>",
|
|
378
|
-
description: "Liquidator mode (full/partial/batch/deleverage)",
|
|
379
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
379
380
|
env: "LIQUIDATION_MODE"
|
|
380
381
|
}),
|
|
381
382
|
/**
|
|
@@ -396,7 +397,7 @@ const DeleverageLiquidatorSchema = z.object({
|
|
|
396
397
|
*/
|
|
397
398
|
liquidationMode: z.literal("deleverage").register(zommandRegistry, {
|
|
398
399
|
flags: "--liquidation-mode <mode>",
|
|
399
|
-
description: "Liquidator mode (full/partial/batch/deleverage)",
|
|
400
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
400
401
|
env: "LIQUIDATION_MODE"
|
|
401
402
|
})
|
|
402
403
|
});
|
|
@@ -409,7 +410,7 @@ const FullLiquidatorSchema = z.object({
|
|
|
409
410
|
*/
|
|
410
411
|
liquidationMode: z.literal("full").register(zommandRegistry, {
|
|
411
412
|
flags: "--liquidation-mode <mode>",
|
|
412
|
-
description: "Liquidator mode (full/partial/batch/deleverage)",
|
|
413
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
413
414
|
env: "LIQUIDATION_MODE"
|
|
414
415
|
}),
|
|
415
416
|
/**
|
|
@@ -466,7 +467,7 @@ const PartialLiquidatorSchema = z.object({
|
|
|
466
467
|
*/
|
|
467
468
|
liquidationMode: z.literal("partial").register(zommandRegistry, {
|
|
468
469
|
flags: "--liquidation-mode <mode>",
|
|
469
|
-
description: "Liquidator mode (full/partial/batch/deleverage)",
|
|
470
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
470
471
|
env: "LIQUIDATION_MODE"
|
|
471
472
|
}),
|
|
472
473
|
/**
|
|
@@ -496,12 +497,26 @@ const PartialLiquidatorSchema = z.object({
|
|
|
496
497
|
})
|
|
497
498
|
}).refine((data) => !(data.optimistic === true && data.partialFallback === true), { message: "partialFallback=true is not allowed in optimistic mode" });
|
|
498
499
|
//#endregion
|
|
500
|
+
//#region src/wallet-liquidator.ts
|
|
501
|
+
const WalletLiquidatorSchema = z.object({
|
|
502
|
+
...CommonSchema.shape,
|
|
503
|
+
/**
|
|
504
|
+
* Liquidator mode
|
|
505
|
+
*/
|
|
506
|
+
liquidationMode: z.literal("wallet").register(zommandRegistry, {
|
|
507
|
+
flags: "--liquidation-mode <mode>",
|
|
508
|
+
description: "Liquidator mode (full/partial/batch/deleverage/wallet)",
|
|
509
|
+
env: "LIQUIDATION_MODE"
|
|
510
|
+
})
|
|
511
|
+
});
|
|
512
|
+
//#endregion
|
|
499
513
|
//#region src/schema.ts
|
|
500
514
|
const ConfigSchema = z.discriminatedUnion("liquidationMode", [
|
|
501
515
|
FullLiquidatorSchema,
|
|
502
516
|
PartialLiquidatorSchema,
|
|
503
517
|
BatchLiquidatorSchema,
|
|
504
|
-
DeleverageLiquidatorSchema
|
|
518
|
+
DeleverageLiquidatorSchema,
|
|
519
|
+
WalletLiquidatorSchema
|
|
505
520
|
]);
|
|
506
521
|
//#endregion
|
|
507
522
|
export { ConfigImplementation, ConfigSchema, NotificationsConfig };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#startBlock","#chainId"],"sources":["../src/config.ts","../src/notifications.ts","../src/common.ts","../src/batch-liquidator.ts","../src/deleverage-liquidator.ts","../src/full-liquidator.ts","../src/partial-liquidator.ts","../src/schema.ts"],"sourcesContent":["import { createPublicClient, type Transport } from \"viem\";\nimport type { CommonSchema } from \"./common.js\";\nimport type { ConfigSchema } from \"./schema.js\";\n\nexport type Config = ConfigSchema & {\n readonly chainId: number;\n readonly startBlock: bigint;\n};\n\nexport type LiqduiatorConfig<TSchema extends CommonSchema> = TSchema & {\n readonly chainId: number;\n readonly startBlock: bigint;\n};\n\nexport class ConfigImplementation {\n #startBlock?: bigint;\n #chainId?: number;\n\n constructor(schema: ConfigSchema) {\n Object.assign(this, schema);\n }\n\n public async initialize(transport: Transport): Promise<void> {\n const client = createPublicClient({\n transport,\n name: \"preload client\",\n });\n\n const [startBlock, chainId] = await Promise.all([\n client.getBlockNumber(),\n client.getChainId(),\n ]);\n\n this.#startBlock = startBlock;\n this.#chainId = chainId;\n }\n\n public get startBlock(): bigint {\n if (this.#startBlock === undefined) {\n throw new Error(\"config not initialized\");\n }\n return this.#startBlock;\n }\n\n public get chainId(): number {\n if (this.#chainId === undefined) {\n throw new Error(\"config not initialized\");\n }\n return this.#chainId;\n }\n}\n","import { NotificationConfig } from \"@gearbox-protocol/cli-utils\";\nimport type { Curator } from \"@gearbox-protocol/sdk\";\nimport { z } from \"zod/v4\";\n\nconst extendedOptions = NotificationConfig.options.map(o =>\n o.extend({\n /**\n * When undefined, defaults to all curators together (aka Gearbox internal)\n */\n curator: z.custom<Curator>(s => typeof s === \"string\").optional(),\n }),\n);\n\nexport const NotificationsConfig = z.object({\n notifications: z\n .array(\n z.discriminatedUnion(\n NotificationConfig.def.discriminator,\n extendedOptions as [\n (typeof extendedOptions)[0],\n ...(typeof extendedOptions)[number][],\n ],\n ),\n )\n .optional()\n .default([]),\n});\n","import {\n addressLike,\n boolLike,\n CensoredString,\n clientWhitelistItemSchema,\n optionalAddressArrayLike,\n ProvidersSchema,\n stringArrayLike,\n zommandRegistry,\n} from \"@gearbox-protocol/cli-utils\";\nimport { MAX_UINT256, WAD } from \"@gearbox-protocol/sdk\";\nimport { type Hex, isHex } from \"viem\";\nimport { z } from \"zod/v4\";\nimport { NotificationsConfig } from \"./notifications.js\";\n\nexport const CommonSchema = z.object({\n ...ProvidersSchema.shape,\n /**\n * By default uses address provider from @gearbox-protocol/sdk\n * Use this option to override address provider\n */\n addressProvider: addressLike().optional().register(zommandRegistry, {\n flags: \"--address-provider <address>\",\n description:\n \"Address provider override, uses default value from SDK otherwise\",\n env: \"ADDRESS_PROVIDER\",\n }),\n /**\n * Market configurators addresses to attach SDK\n */\n marketConfigurators: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--market-configurators <addresses...>\",\n description:\n \"Market configurators to use for the process, comma separated. Uses default value from SDK if not specified\",\n env: \"MARKET_CONFIGURATORS\",\n }),\n /**\n * RWA factories addresses to attach SDK\n */\n rwaFactories: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--rwa-factories <addresses...>\",\n description:\n \"RWA factories to use for the process, comma separated. Uses default value from SDK if not specified\",\n env: \"RWA_FACTORIES\",\n }),\n /**\n * App name used in various messages to distinguish instances\n */\n appName: z.string().default(\"liquidator-ts\").register(zommandRegistry, {\n flags: \"--app-name <name>\",\n description: \"App name used in various messages to distinguish instances\",\n env: \"APP_NAME\",\n }),\n /**\n * Port to expose some vital signals and metrics\n */\n port: z.coerce.number().default(4000).register(zommandRegistry, {\n flags: \"--port <port>\",\n description: \"Port to expose some vital signals and metrics\",\n env: \"PORT\",\n }),\n /**\n * Full URL of the whitelist endpoint. Entries can be credit account\n * addresses or credit manager addresses. Only applied in non-optimistic mode.\n */\n whitelistUrl: z.url().optional().register(zommandRegistry, {\n flags: \"--whitelist-url <url>\",\n description:\n \"Full URL of the liquidator soft whitelist endpoint. Entries are credit account or credit manager addresses. Does not prevent liquidation, but annotates failure notifications. Only applied in non-optimistic mode.\",\n env: \"WHITELIST_URL\",\n }),\n /**\n * Static (hard) whitelist that prevents liquidation entirely.\n * Entries can be credit account, credit manager or token addresses.\n */\n hardWhitelist: z.array(clientWhitelistItemSchema).optional(),\n /**\n * Only check this account during local debug session\n */\n debugAccount: addressLike().optional().register(zommandRegistry, {\n flags: \"--debug-account <address>\",\n description: \"Only check this account during local debug session\",\n env: \"DEBUG_ACCOUNT\",\n }),\n /**\n * Only check this credit manager during local debug session\n */\n debugManager: addressLike().optional().register(zommandRegistry, {\n flags: \"--debug-manager <address>\",\n description: \"Only check this credit manager during local debug session\",\n env: \"DEBUG_MANAGER\",\n }),\n /**\n * Path to foundry/cast binary, so that we can create tree-like traces in case of errors\n * Used during optimistic liquidations\n */\n castBin: z.string().optional().register(zommandRegistry, {\n flags: \"--cast-bin <path>\",\n description:\n \"Path to foundry/cast binary, so that we can create tree-like traces in case of errors\",\n env: \"CAST_BIN\",\n }),\n /**\n * Timeout duration passed to `timeout` utility when running cast.\n * If unset, cast runs without a timeout. Accepts any value understood by `timeout(1)` (e.g. `30s`, `1m`).\n */\n castTimeout: z.string().optional().default(\"1m\").register(zommandRegistry, {\n flags: \"--cast-timeout <duration>\",\n description:\n \"Timeout duration for cast invocations (e.g. 30s, 1m). If unset, cast runs without a timeout.\",\n env: \"CAST_TIMEOUT\",\n }),\n /**\n * Stale block threshold in seconds, to notify and try to rotate rpc provider. 0 means no monitoring\n */\n staleBlockThreshold: z.coerce\n .number()\n .nonnegative()\n .default(120)\n .register(zommandRegistry, {\n flags: \"--stale-block-threshold <threshold>\",\n description:\n \"Stale block threshold in seconds, to notify and try to rotate rpc provider. 0 means no monitoring\",\n env: \"STALE_BLOCK_THRESHOLD\",\n }),\n /**\n * Max block range size for eth_getLogs\n */\n logsPageSize: z.coerce\n .bigint()\n .nonnegative()\n .optional()\n .register(zommandRegistry, {\n flags: \"--logs-page-size <size>\",\n description: \"Max block range size for eth_getLogs\",\n env: \"LOGS_PAGE_SIZE\",\n }),\n /**\n * Polling interval in milliseconds, default to what's default in viem\n */\n pollingInterval: z.coerce\n .number()\n .nonnegative()\n .optional()\n .register(zommandRegistry, {\n flags: \"--polling-interval <interval>\",\n description:\n \"Polling interval in milliseconds, default to what's default in viem\",\n env: \"POLLING_INTERVAL\",\n }),\n /**\n * Private key used to send liquidation transactions\n * Required in non-optimistic mode, must not be set in optimistic mode\n */\n privateKey: z\n .string()\n .min(1)\n .transform((s): Hex => {\n return isHex(s) ? s : `0x${s}`;\n })\n .transform(CensoredString.transform<Hex>)\n .optional()\n .register(zommandRegistry, {\n flags: \"--private-key <key>\",\n description:\n \"Private key used to send liquidation transactions. Required in non-optimistic mode, must not be set in optimistic mode\",\n env: \"PRIVATE_KEY\",\n }),\n /**\n * Address to impersonate as transaction sender on anvil fork\n * Required in optimistic mode, must not be set in non-optimistic mode\n */\n liquidatorAddress: addressLike().optional().register(zommandRegistry, {\n flags: \"--liquidator-address <address>\",\n description:\n \"Address to impersonate as transaction sender on anvil fork. Required in optimistic mode, must not be set in non-optimistic mode\",\n env: \"LIQUIDATOR_ADDRESS\",\n }),\n /**\n * Minimum executor gas budget, in gas units. The required balance to send a\n * notification is computed as `minBalanceGas * currentGasPrice`.\n */\n minBalanceGas: z.coerce\n .bigint()\n .positive()\n // At some point on Mainnet there were 40 accounts\n // It costed ~80M gas to deleverage all of them, deleverage being the most expensive operation\n .default(85_000_000n)\n .register(zommandRegistry, {\n flags: \"--min-balance-gas <gas>\",\n description:\n \"Minimum executor gas budget (in gas units); required balance = this * current gas price\",\n env: \"MIN_BALANCE_GAS\",\n }),\n /**\n * Filter out all accounts with HF >= threshold during scan stage\n */\n hfThreshold: z.coerce\n .bigint()\n .nonnegative()\n .max(MAX_UINT256)\n .default(WAD - 1n) // 100% accounts are healthy, and credit account compressors filters by HF <= threshold\n .register(zommandRegistry, {\n flags: \"--hf-threshold <threshold>\",\n description:\n \"Filter out all accounts with HF >= threshold during scan stage\",\n env: \"HF_THRESHOLD\",\n }),\n /**\n * Default numSplits for router v3.1 contract\n */\n numSplits: z.coerce\n .bigint()\n .positive()\n .default(10n)\n .register(zommandRegistry, {\n flags: \"--num-splits <splits>\",\n description: \"Default numSplits for router v3.1 contract\",\n env: \"NUM_SPLITS\",\n }),\n /**\n * Liquidator mode\n */\n liquidationMode: z\n .enum([\"full\", \"partial\", \"batch\", \"deleverage\"])\n .default(\"full\")\n .register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Enable optimistic liquidations\n */\n optimistic: boolLike().optional().register(zommandRegistry, {\n flags: \"--optimistic\",\n description: \"Enable optimistic liquidations\",\n env: \"OPTIMISTIC\",\n }),\n /**\n * In optimistic mode, use real health factor range to scan for accounts\n * and do not force-enable deleverage bot on accounts.\n *\n * This mode can be used to test that deleverage bot is able to detect accounts correctly\n */\n useProductionScanner: boolLike().optional().register(zommandRegistry, {\n flags: \"--use-production-scanner\",\n description:\n \"In optimistic mode, use real health factor range to scan for accounts and do not force-enable deleverage bot on accounts\",\n env: \"USE_PRODUCTION_SCANNER\",\n }),\n /**\n * Optimistic timestamp to pass from external runner, in ms\n */\n optimisticTimestamp: z.coerce\n .number()\n .int()\n .positive()\n .nullish()\n .register(zommandRegistry, {\n flags: \"--optimistic-timestamp <timestamp>\",\n description: \"Optimistic timestamp to pass from external runner, in ms\",\n env: \"OPTIMISTIC_TIMESTAMP\",\n }),\n /**\n * Fail on missing feeds (redstone and pyth)\n */\n failOnMissingFeeds: boolLike().optional().register(zommandRegistry, {\n flags: \"--fail-on-missing-feeds\",\n description: \"Fail on missing feeds (redstone and pyth)\",\n env: \"FAIL_ON_MISSING_FEEDS\",\n }),\n /**\n * Explicitly set gas limit for SDK\n * -1 to disable explicitly setting gas limit in SDK\n * If not set, SDK will use default gas limit\n */\n gasLimit: z.coerce.bigint().optional().register(zommandRegistry, {\n flags: \"--gas-limit <limit>\",\n description: \"Set gas limit for SDK\",\n env: \"GAS_LIMIT\",\n }),\n /**\n * Do not send transactions in non-optimistic mode, just log them\n */\n dryRun: boolLike().optional().register(zommandRegistry, {\n flags: \"--dry-run\",\n description:\n \"Do not send transactions in non-optimistic mode, just log them\",\n env: \"DRY_RUN\",\n }),\n /**\n * Redstone gateways override\n * Set local caching proxies to avoid rate limiting in test environment\n */\n redstoneGateways: stringArrayLike()\n .pipe(z.array(z.url()))\n .transform(a => (a.length ? a : undefined))\n .optional()\n .register(zommandRegistry, {\n flags: \"--redstone-gateways <urls...>\",\n description: \"Redstone gateways to use, comma separated\",\n env: \"REDSTONE_GATEWAYS\",\n }),\n\n /**\n * Limit number of accounts to load from compressor. 0 = unlimited, let compressor decide\n */\n compressorBatchSize: z.coerce\n .number()\n .nonnegative()\n .default(0)\n .register(zommandRegistry, {\n flags: \"--compressor-batch-size <size>\",\n description:\n \"Limit number of accounts to load from compressor. 0 = unlimited, let compressor decide\",\n env: \"COMPRESSOR_BATCH_SIZE\",\n }),\n /**\n * Slippage value for pathfined\n */\n slippage: z.coerce\n .number()\n .min(0)\n .max(10000)\n .int()\n .default(50)\n .register(zommandRegistry, {\n flags: \"--slippage <value>\",\n description: \"Slippage value for pathfinder\",\n env: \"SLIPPAGE\",\n }),\n /**\n * By default, reserve prices are not updated (except for deleverage mode)\n */\n updateReservePrices: boolLike()\n .optional()\n .default(false)\n .register(zommandRegistry, {\n flags: \"--update-reserve-prices\",\n description: \"Update reserve prices\",\n env: \"UPDATE_RESERVE_PRICES\",\n }),\n /**\n * List of assets to keep on account after liquidation\n */\n keepAssets: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--keep-assets <assets...>\",\n description: \"List of assets to keep on account after liquidation\",\n env: \"KEEP_ASSETS\",\n }),\n /**\n * Address that receives the liquidation premium and leftover underlying.\n * Defaults to the executor address when unset.\n */\n premiumReceiver: addressLike().optional().register(zommandRegistry, {\n flags: \"--premium-receiver <address>\",\n description:\n \"Address that receives the liquidation premium and leftover underlying (defaults to executor address)\",\n env: \"PREMIUM_RECEIVER\",\n }),\n\n /**\n * Directory to save json with optimistic liquidation results\n */\n outDir: z.string().default(\".\").register(zommandRegistry, {\n flags: \"--out-dir <dir>\",\n description: \"Directory to save json with optimistic liquidation results\",\n env: \"OUT_DIR\",\n }),\n /**\n * REST endpoint to POST json with optimistic liquidation results\n */\n outEndpoint: z.url().optional().register(zommandRegistry, {\n flags: \"--out-endpoint <url>\",\n description:\n \"REST endpoint to POST json with optimistic liquidation results\",\n env: \"OUT_ENDPOINT\",\n }),\n /**\n * Headers for REST endpoint\n */\n outHeaders: z\n .string()\n .default(\"{}\")\n .transform(CensoredString.transform)\n .register(zommandRegistry, {\n flags: \"--out-headers <headers>\",\n description: \"Headers for REST endpoint\",\n env: \"OUT_HEADERS\",\n }),\n /**\n * s3 bucket to upload json with optimistic liquidation results\n */\n outS3Bucket: z.string().optional().register(zommandRegistry, {\n flags: \"--out-s3-bucket <bucket>\",\n description: \"S3 bucket to upload json with optimistic liquidation results\",\n env: \"OUT_S3_BUCKET\",\n }),\n /**\n * s3 bucket path prefix\n */\n outS3Prefix: z.string().default(\"\").register(zommandRegistry, {\n flags: \"--out-s3-prefix <prefix>\",\n description: \"S3 bucket path prefix\",\n env: \"OUT_S3_PREFIX\",\n }),\n /**\n * Filename of json with optimistic liquidation results for s3 or dir output\n */\n outFileName: z.string().optional().register(zommandRegistry, {\n flags: \"--out-file-name <name>\",\n description:\n \"Filename of json with optimistic liquidation results for s3 or dir output\",\n env: \"OUT_FILE_NAME\",\n }),\n\n /**\n * Notifications, global and per-curator\n */\n ...NotificationsConfig.shape,\n});\n\nexport type CommonSchema = z.infer<typeof CommonSchema>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const BatchLiquidatorSchema = z.object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"batch\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Number of accounts to liquidate at once using batch liquidator\n */\n batchSize: z.coerce\n .number()\n .nonnegative()\n .default(10)\n .register(zommandRegistry, {\n flags: \"--batch-size <size>\",\n description:\n \"Number of accounts to liquidate at once using batch liquidator\",\n env: \"BATCH_SIZE\",\n }),\n});\n\nexport type BatchLiquidatorSchema = z.infer<typeof BatchLiquidatorSchema>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const DeleverageLiquidatorSchema = z.object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"deleverage\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage)\",\n env: \"LIQUIDATION_MODE\",\n }),\n});\n\nexport type DeleverageLiquidatorSchema = z.infer<\n typeof DeleverageLiquidatorSchema\n>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const FullLiquidatorSchema = z\n .object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"full\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Debt policy\n * full - liquidate fully\n * debt-only - try to liquidate only debt\n * debt-expired - try to liquidate only debt for expired accounts\n */\n debtPolicy: z\n .enum([\"full\", \"debt-only\", \"debt-expired\"])\n .default(\"full\")\n .register(zommandRegistry, {\n flags: \"--debt-policy <policy>\",\n description: \"Liquidate fully/debt only/debt only for expired accounts\",\n env: \"DEBT_POLICY\",\n }),\n /**\n * Full-mode liquidation strategy set for this process.\n *\n * Values:\n * - `auto`: production default. Includes loss-policy, normal full, and RWA\n * stablecoin strategies. Routing is decided by account type and\n * per-strategy `isApplicable`: non-RWA accounts use loss policy when they\n * have bad debt and fall back to normal full liquidation otherwise, while\n * RWA accounts use only the RWA stablecoin strategy.\n * - `rwa`: include only `LiquidationStrategyRWAViaStablecoins`\n * Intended for optimistic RWA tracks.\n * - `loss`: include only `LiquidationStrategyLossPolicy`\n * Intended for optimistic loss-policy tracks.\n * - `full`: include only `LiquidationStrategyFull`\n * Intended for optimistic normal-full tracks.\n *\n * Optimistic mode rejects `auto`, so the external runner must invoke\n * explicit tracks: `rwa`, `loss`, and `full`.\n */\n strategy: z\n .enum([\"auto\", \"rwa\", \"loss\", \"full\"])\n .default(\"auto\")\n .register(zommandRegistry, {\n flags: \"--strategy <strategy>\",\n description:\n \"Full-mode liquidation strategy set (auto/rwa/loss/full). Optimistic mode requires an explicit track.\",\n env: \"STRATEGY\",\n }),\n })\n .refine(data => !(data.optimistic === true && data.strategy === \"auto\"), {\n message:\n \"strategy=auto is not allowed in optimistic mode; pick one of rwa/loss/full\",\n });\n\nexport type FullLiquidatorSchema = z.infer<typeof FullLiquidatorSchema>;\n","import {\n boolLike,\n optionalAddressArrayLike,\n zommandRegistry,\n} from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const PartialLiquidatorSchema = z\n .object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"partial\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage)\",\n env: \"LIQUIDATION_MODE\",\n }),\n\n /**\n * Fallback to use full liquidator when partial liquidator fails\n */\n partialFallback: boolLike().optional().register(zommandRegistry, {\n flags: \"--partial-fallback\",\n description:\n \"Fallback to use full liquidator when partial liquidator fails\",\n env: \"PARTIAL_FALLBACK\",\n }),\n\n /**\n * Desired HF after partial liquidation, with 4 decimals (100% = 10000)\n */\n targetPartialHF: z.coerce\n .bigint()\n .default(10100n)\n .register(zommandRegistry, {\n flags: \"--target-partial-hf <hf>\",\n description:\n \"Desired HF after partial liquidation, with 4 decimals (100% = 10000)\",\n env: \"TARGET_PARTIAL_HF\",\n }),\n /**\n * Optimal HF for partial liquidation will be calculated for accounts with following underlying tokens\n * Takes precedence over targetPartialHF\n */\n calculatePartialHF: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--calculate-partial-hf <tokens>\",\n description:\n \"Optimal HF for partial liquidation will be calculated for accounts with following underlying tokens\",\n env: \"CALCULATE_PARTIAL_HF\",\n }),\n })\n .refine(\n data => !(data.optimistic === true && data.partialFallback === true),\n { message: \"partialFallback=true is not allowed in optimistic mode\" },\n );\n\nexport type PartialLiquidatorSchema = z.infer<typeof PartialLiquidatorSchema>;\n","import { z } from \"zod/v4\";\nimport { BatchLiquidatorSchema } from \"./batch-liquidator.js\";\nimport { DeleverageLiquidatorSchema } from \"./deleverage-liquidator.js\";\nimport { FullLiquidatorSchema } from \"./full-liquidator.js\";\nimport { PartialLiquidatorSchema } from \"./partial-liquidator.js\";\n\nexport const ConfigSchema = z.discriminatedUnion(\"liquidationMode\", [\n FullLiquidatorSchema,\n PartialLiquidatorSchema,\n BatchLiquidatorSchema,\n DeleverageLiquidatorSchema,\n]);\n\nexport type ConfigSchema = z.infer<typeof ConfigSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/config.ts","../src/notifications.ts","../src/common.ts","../src/batch-liquidator.ts","../src/deleverage-liquidator.ts","../src/full-liquidator.ts","../src/partial-liquidator.ts","../src/wallet-liquidator.ts","../src/schema.ts"],"sourcesContent":["import { createPublicClient, type Transport } from \"viem\";\nimport type { CommonSchema } from \"./common.js\";\nimport type { ConfigSchema } from \"./schema.js\";\n\nexport type Config = ConfigSchema & {\n readonly chainId: number;\n readonly startBlock: bigint;\n};\n\nexport type LiqduiatorConfig<TSchema extends CommonSchema> = TSchema & {\n readonly chainId: number;\n readonly startBlock: bigint;\n};\n\nexport class ConfigImplementation {\n #startBlock?: bigint;\n #chainId?: number;\n\n constructor(schema: ConfigSchema) {\n Object.assign(this, schema);\n }\n\n public async initialize(transport: Transport): Promise<void> {\n const client = createPublicClient({\n transport,\n name: \"preload client\",\n });\n\n const [startBlock, chainId] = await Promise.all([\n client.getBlockNumber(),\n client.getChainId(),\n ]);\n\n this.#startBlock = startBlock;\n this.#chainId = chainId;\n }\n\n public get startBlock(): bigint {\n if (this.#startBlock === undefined) {\n throw new Error(\"config not initialized\");\n }\n return this.#startBlock;\n }\n\n public get chainId(): number {\n if (this.#chainId === undefined) {\n throw new Error(\"config not initialized\");\n }\n return this.#chainId;\n }\n}\n","import { NotificationConfig } from \"@gearbox-protocol/cli-utils\";\nimport type { CuratorName } from \"@gearbox-protocol/sdk/model\";\nimport { z } from \"zod/v4\";\n\nconst extendedOptions = NotificationConfig.options.map(o =>\n o.extend({\n /**\n * When undefined, defaults to all curators together (aka Gearbox internal)\n */\n curator: z.custom<CuratorName>(s => typeof s === \"string\").optional(),\n }),\n);\n\nexport const NotificationsConfig = z.object({\n notifications: z\n .array(\n z.discriminatedUnion(\n NotificationConfig.def.discriminator,\n extendedOptions as [\n (typeof extendedOptions)[0],\n ...(typeof extendedOptions)[number][],\n ],\n ),\n )\n .optional()\n .default([]),\n});\n","import {\n addressLike,\n boolLike,\n CensoredString,\n clientWhitelistItemSchema,\n optionalAddressArrayLike,\n ProvidersSchema,\n stringArrayLike,\n zommandRegistry,\n} from \"@gearbox-protocol/cli-utils\";\nimport { MAX_UINT256, WAD } from \"@gearbox-protocol/sdk/onchain\";\nimport { type Hex, isHex } from \"viem\";\nimport { z } from \"zod/v4\";\nimport { NotificationsConfig } from \"./notifications.js\";\n\nexport const CommonSchema = z.object({\n ...ProvidersSchema.shape,\n /**\n * By default uses address provider from @gearbox-protocol/sdk\n * Use this option to override address provider\n */\n addressProvider: addressLike().optional().register(zommandRegistry, {\n flags: \"--address-provider <address>\",\n description:\n \"Address provider override, uses default value from SDK otherwise\",\n env: \"ADDRESS_PROVIDER\",\n }),\n /**\n * Market configurators addresses to attach SDK\n */\n marketConfigurators: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--market-configurators <addresses...>\",\n description:\n \"Market configurators to use for the process, comma separated. Uses default value from SDK if not specified\",\n env: \"MARKET_CONFIGURATORS\",\n }),\n /**\n * RWA factories addresses to attach SDK\n */\n rwaFactories: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--rwa-factories <addresses...>\",\n description:\n \"RWA factories to use for the process, comma separated. Uses default value from SDK if not specified\",\n env: \"RWA_FACTORIES\",\n }),\n /**\n * App name used in various messages to distinguish instances\n */\n appName: z.string().default(\"liquidator-ts\").register(zommandRegistry, {\n flags: \"--app-name <name>\",\n description: \"App name used in various messages to distinguish instances\",\n env: \"APP_NAME\",\n }),\n /**\n * Port to expose some vital signals and metrics\n */\n port: z.coerce.number().default(4000).register(zommandRegistry, {\n flags: \"--port <port>\",\n description: \"Port to expose some vital signals and metrics\",\n env: \"PORT\",\n }),\n /**\n * Full URL of the whitelist endpoint. Entries can be credit account\n * addresses or credit manager addresses. Only applied in non-optimistic mode.\n */\n whitelistUrl: z.url().optional().register(zommandRegistry, {\n flags: \"--whitelist-url <url>\",\n description:\n \"Full URL of the liquidator soft whitelist endpoint. Entries are credit account or credit manager addresses. Does not prevent liquidation, but annotates failure notifications. Only applied in non-optimistic mode.\",\n env: \"WHITELIST_URL\",\n }),\n /**\n * Static (hard) whitelist that prevents liquidation entirely.\n * Entries can be credit account, credit manager or token addresses.\n */\n hardWhitelist: z.array(clientWhitelistItemSchema).optional(),\n /**\n * Only check this account during local debug session\n */\n debugAccount: addressLike().optional().register(zommandRegistry, {\n flags: \"--debug-account <address>\",\n description: \"Only check this account during local debug session\",\n env: \"DEBUG_ACCOUNT\",\n }),\n /**\n * Only check this credit manager during local debug session\n */\n debugManager: addressLike().optional().register(zommandRegistry, {\n flags: \"--debug-manager <address>\",\n description: \"Only check this credit manager during local debug session\",\n env: \"DEBUG_MANAGER\",\n }),\n /**\n * Path to foundry/cast binary, so that we can create tree-like traces in case of errors\n * Used during optimistic liquidations\n */\n castBin: z.string().optional().register(zommandRegistry, {\n flags: \"--cast-bin <path>\",\n description:\n \"Path to foundry/cast binary, so that we can create tree-like traces in case of errors\",\n env: \"CAST_BIN\",\n }),\n /**\n * Timeout duration passed to `timeout` utility when running cast.\n * If unset, cast runs without a timeout. Accepts any value understood by `timeout(1)` (e.g. `30s`, `1m`).\n */\n castTimeout: z.string().optional().default(\"1m\").register(zommandRegistry, {\n flags: \"--cast-timeout <duration>\",\n description:\n \"Timeout duration for cast invocations (e.g. 30s, 1m). If unset, cast runs without a timeout.\",\n env: \"CAST_TIMEOUT\",\n }),\n /**\n * Stale block threshold in seconds, to notify and try to rotate rpc provider. 0 means no monitoring\n */\n staleBlockThreshold: z.coerce\n .number()\n .nonnegative()\n .default(120)\n .register(zommandRegistry, {\n flags: \"--stale-block-threshold <threshold>\",\n description:\n \"Stale block threshold in seconds, to notify and try to rotate rpc provider. 0 means no monitoring\",\n env: \"STALE_BLOCK_THRESHOLD\",\n }),\n /**\n * Max block range size for eth_getLogs\n */\n logsPageSize: z.coerce\n .bigint()\n .nonnegative()\n .optional()\n .register(zommandRegistry, {\n flags: \"--logs-page-size <size>\",\n description: \"Max block range size for eth_getLogs\",\n env: \"LOGS_PAGE_SIZE\",\n }),\n /**\n * Polling interval in milliseconds, default to what's default in viem\n */\n pollingInterval: z.coerce\n .number()\n .nonnegative()\n .optional()\n .register(zommandRegistry, {\n flags: \"--polling-interval <interval>\",\n description:\n \"Polling interval in milliseconds, default to what's default in viem\",\n env: \"POLLING_INTERVAL\",\n }),\n /**\n * Private key used to send liquidation transactions\n * Required in non-optimistic mode, must not be set in optimistic mode\n */\n privateKey: z\n .string()\n .min(1)\n .transform((s): Hex => {\n return isHex(s) ? s : `0x${s}`;\n })\n .transform(CensoredString.transform<Hex>)\n .optional()\n .register(zommandRegistry, {\n flags: \"--private-key <key>\",\n description:\n \"Private key used to send liquidation transactions. Required in non-optimistic mode, must not be set in optimistic mode\",\n env: \"PRIVATE_KEY\",\n }),\n /**\n * Address to impersonate as transaction sender on anvil fork\n * Required in optimistic mode, must not be set in non-optimistic mode\n */\n liquidatorAddress: addressLike().optional().register(zommandRegistry, {\n flags: \"--liquidator-address <address>\",\n description:\n \"Address to impersonate as transaction sender on anvil fork. Required in optimistic mode, must not be set in non-optimistic mode\",\n env: \"LIQUIDATOR_ADDRESS\",\n }),\n /**\n * Minimum executor gas budget, in gas units. The required balance to send a\n * notification is computed as `minBalanceGas * currentGasPrice`.\n */\n minBalanceGas: z.coerce\n .bigint()\n .positive()\n // At some point on Mainnet there were 40 accounts\n // It costed ~80M gas to deleverage all of them, deleverage being the most expensive operation\n .default(85_000_000n)\n .register(zommandRegistry, {\n flags: \"--min-balance-gas <gas>\",\n description:\n \"Minimum executor gas budget (in gas units); required balance = this * current gas price\",\n env: \"MIN_BALANCE_GAS\",\n }),\n /**\n * Filter out all accounts with HF >= threshold during scan stage\n */\n hfThreshold: z.coerce\n .bigint()\n .nonnegative()\n .max(MAX_UINT256)\n .default(WAD - 1n) // 100% accounts are healthy, and credit account compressors filters by HF <= threshold\n .register(zommandRegistry, {\n flags: \"--hf-threshold <threshold>\",\n description:\n \"Filter out all accounts with HF >= threshold during scan stage\",\n env: \"HF_THRESHOLD\",\n }),\n /**\n * Default numSplits for router v3.1 contract\n */\n numSplits: z.coerce\n .bigint()\n .positive()\n .default(10n)\n .register(zommandRegistry, {\n flags: \"--num-splits <splits>\",\n description: \"Default numSplits for router v3.1 contract\",\n env: \"NUM_SPLITS\",\n }),\n /**\n * Liquidator mode\n */\n liquidationMode: z\n .enum([\"full\", \"partial\", \"batch\", \"deleverage\", \"wallet\"])\n .default(\"full\")\n .register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Enable optimistic liquidations\n */\n optimistic: boolLike().optional().register(zommandRegistry, {\n flags: \"--optimistic\",\n description: \"Enable optimistic liquidations\",\n env: \"OPTIMISTIC\",\n }),\n /**\n * In optimistic mode, use real health factor range to scan for accounts\n * and do not force-enable deleverage bot on accounts.\n *\n * This mode can be used to test that deleverage bot is able to detect accounts correctly\n */\n useProductionScanner: boolLike().optional().register(zommandRegistry, {\n flags: \"--use-production-scanner\",\n description:\n \"In optimistic mode, use real health factor range to scan for accounts and do not force-enable deleverage bot on accounts\",\n env: \"USE_PRODUCTION_SCANNER\",\n }),\n /**\n * Optimistic timestamp to pass from external runner, in ms\n */\n optimisticTimestamp: z.coerce\n .number()\n .int()\n .positive()\n .nullish()\n .register(zommandRegistry, {\n flags: \"--optimistic-timestamp <timestamp>\",\n description: \"Optimistic timestamp to pass from external runner, in ms\",\n env: \"OPTIMISTIC_TIMESTAMP\",\n }),\n /**\n * Fail on missing feeds (redstone and pyth)\n */\n failOnMissingFeeds: boolLike().optional().register(zommandRegistry, {\n flags: \"--fail-on-missing-feeds\",\n description: \"Fail on missing feeds (redstone and pyth)\",\n env: \"FAIL_ON_MISSING_FEEDS\",\n }),\n /**\n * Explicitly set gas limit for SDK\n * -1 to disable explicitly setting gas limit in SDK\n * If not set, SDK will use default gas limit\n */\n gasLimit: z.coerce.bigint().optional().register(zommandRegistry, {\n flags: \"--gas-limit <limit>\",\n description: \"Set gas limit for SDK\",\n env: \"GAS_LIMIT\",\n }),\n /**\n * Do not send transactions in non-optimistic mode, just log them\n */\n dryRun: boolLike().optional().register(zommandRegistry, {\n flags: \"--dry-run\",\n description:\n \"Do not send transactions in non-optimistic mode, just log them\",\n env: \"DRY_RUN\",\n }),\n /**\n * Redstone gateways override\n * Set local caching proxies to avoid rate limiting in test environment\n */\n redstoneGateways: stringArrayLike()\n .pipe(z.array(z.url()))\n .transform(a => (a.length ? a : undefined))\n .optional()\n .register(zommandRegistry, {\n flags: \"--redstone-gateways <urls...>\",\n description: \"Redstone gateways to use, comma separated\",\n env: \"REDSTONE_GATEWAYS\",\n }),\n\n /**\n * Limit number of accounts to load from compressor. 0 = unlimited, let compressor decide\n */\n compressorBatchSize: z.coerce\n .number()\n .nonnegative()\n .default(0)\n .register(zommandRegistry, {\n flags: \"--compressor-batch-size <size>\",\n description:\n \"Limit number of accounts to load from compressor. 0 = unlimited, let compressor decide\",\n env: \"COMPRESSOR_BATCH_SIZE\",\n }),\n /**\n * Slippage value for pathfined\n */\n slippage: z.coerce\n .number()\n .min(0)\n .max(10000)\n .int()\n .default(50)\n .register(zommandRegistry, {\n flags: \"--slippage <value>\",\n description: \"Slippage value for pathfinder\",\n env: \"SLIPPAGE\",\n }),\n /**\n * By default, reserve prices are not updated (except for deleverage mode)\n */\n updateReservePrices: boolLike()\n .optional()\n .default(false)\n .register(zommandRegistry, {\n flags: \"--update-reserve-prices\",\n description: \"Update reserve prices\",\n env: \"UPDATE_RESERVE_PRICES\",\n }),\n /**\n * List of assets to keep on account after liquidation\n */\n keepAssets: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--keep-assets <assets...>\",\n description: \"List of assets to keep on account after liquidation\",\n env: \"KEEP_ASSETS\",\n }),\n /**\n * Address that receives the liquidation premium and leftover underlying.\n * Defaults to the executor address when unset.\n */\n premiumReceiver: addressLike().optional().register(zommandRegistry, {\n flags: \"--premium-receiver <address>\",\n description:\n \"Address that receives the liquidation premium and leftover underlying (defaults to executor address)\",\n env: \"PREMIUM_RECEIVER\",\n }),\n\n /**\n * Directory to save json with optimistic liquidation results\n */\n outDir: z.string().default(\".\").register(zommandRegistry, {\n flags: \"--out-dir <dir>\",\n description: \"Directory to save json with optimistic liquidation results\",\n env: \"OUT_DIR\",\n }),\n /**\n * REST endpoint to POST json with optimistic liquidation results\n */\n outEndpoint: z.url().optional().register(zommandRegistry, {\n flags: \"--out-endpoint <url>\",\n description:\n \"REST endpoint to POST json with optimistic liquidation results\",\n env: \"OUT_ENDPOINT\",\n }),\n /**\n * Headers for REST endpoint\n */\n outHeaders: z\n .string()\n .default(\"{}\")\n .transform(CensoredString.transform)\n .register(zommandRegistry, {\n flags: \"--out-headers <headers>\",\n description: \"Headers for REST endpoint\",\n env: \"OUT_HEADERS\",\n }),\n /**\n * s3 bucket to upload json with optimistic liquidation results\n */\n outS3Bucket: z.string().optional().register(zommandRegistry, {\n flags: \"--out-s3-bucket <bucket>\",\n description: \"S3 bucket to upload json with optimistic liquidation results\",\n env: \"OUT_S3_BUCKET\",\n }),\n /**\n * s3 bucket path prefix\n */\n outS3Prefix: z.string().default(\"\").register(zommandRegistry, {\n flags: \"--out-s3-prefix <prefix>\",\n description: \"S3 bucket path prefix\",\n env: \"OUT_S3_PREFIX\",\n }),\n /**\n * Filename of json with optimistic liquidation results for s3 or dir output\n */\n outFileName: z.string().optional().register(zommandRegistry, {\n flags: \"--out-file-name <name>\",\n description:\n \"Filename of json with optimistic liquidation results for s3 or dir output\",\n env: \"OUT_FILE_NAME\",\n }),\n\n /**\n * Notifications, global and per-curator\n */\n ...NotificationsConfig.shape,\n});\n\nexport type CommonSchema = z.infer<typeof CommonSchema>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const BatchLiquidatorSchema = z.object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"batch\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Number of accounts to liquidate at once using batch liquidator\n */\n batchSize: z.coerce\n .number()\n .nonnegative()\n .default(10)\n .register(zommandRegistry, {\n flags: \"--batch-size <size>\",\n description:\n \"Number of accounts to liquidate at once using batch liquidator\",\n env: \"BATCH_SIZE\",\n }),\n});\n\nexport type BatchLiquidatorSchema = z.infer<typeof BatchLiquidatorSchema>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const DeleverageLiquidatorSchema = z.object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"deleverage\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n});\n\nexport type DeleverageLiquidatorSchema = z.infer<\n typeof DeleverageLiquidatorSchema\n>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const FullLiquidatorSchema = z\n .object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"full\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n /**\n * Debt policy\n * full - liquidate fully\n * debt-only - try to liquidate only debt\n * debt-expired - try to liquidate only debt for expired accounts\n */\n debtPolicy: z\n .enum([\"full\", \"debt-only\", \"debt-expired\"])\n .default(\"full\")\n .register(zommandRegistry, {\n flags: \"--debt-policy <policy>\",\n description: \"Liquidate fully/debt only/debt only for expired accounts\",\n env: \"DEBT_POLICY\",\n }),\n /**\n * Full-mode liquidation strategy set for this process.\n *\n * Values:\n * - `auto`: production default. Includes loss-policy, normal full, and RWA\n * stablecoin strategies. Routing is decided by account type and\n * per-strategy `isApplicable`: non-RWA accounts use loss policy when they\n * have bad debt and fall back to normal full liquidation otherwise, while\n * RWA accounts use only the RWA stablecoin strategy.\n * - `rwa`: include only `LiquidationStrategyRWAViaStablecoins`\n * Intended for optimistic RWA tracks.\n * - `loss`: include only `LiquidationStrategyLossPolicy`\n * Intended for optimistic loss-policy tracks.\n * - `full`: include only `LiquidationStrategyFull`\n * Intended for optimistic normal-full tracks.\n *\n * Optimistic mode rejects `auto`, so the external runner must invoke\n * explicit tracks: `rwa`, `loss`, and `full`.\n */\n strategy: z\n .enum([\"auto\", \"rwa\", \"loss\", \"full\"])\n .default(\"auto\")\n .register(zommandRegistry, {\n flags: \"--strategy <strategy>\",\n description:\n \"Full-mode liquidation strategy set (auto/rwa/loss/full). Optimistic mode requires an explicit track.\",\n env: \"STRATEGY\",\n }),\n })\n .refine(data => !(data.optimistic === true && data.strategy === \"auto\"), {\n message:\n \"strategy=auto is not allowed in optimistic mode; pick one of rwa/loss/full\",\n });\n\nexport type FullLiquidatorSchema = z.infer<typeof FullLiquidatorSchema>;\n","import {\n boolLike,\n optionalAddressArrayLike,\n zommandRegistry,\n} from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const PartialLiquidatorSchema = z\n .object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"partial\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n\n /**\n * Fallback to use full liquidator when partial liquidator fails\n */\n partialFallback: boolLike().optional().register(zommandRegistry, {\n flags: \"--partial-fallback\",\n description:\n \"Fallback to use full liquidator when partial liquidator fails\",\n env: \"PARTIAL_FALLBACK\",\n }),\n\n /**\n * Desired HF after partial liquidation, with 4 decimals (100% = 10000)\n */\n targetPartialHF: z.coerce\n .bigint()\n .default(10100n)\n .register(zommandRegistry, {\n flags: \"--target-partial-hf <hf>\",\n description:\n \"Desired HF after partial liquidation, with 4 decimals (100% = 10000)\",\n env: \"TARGET_PARTIAL_HF\",\n }),\n /**\n * Optimal HF for partial liquidation will be calculated for accounts with following underlying tokens\n * Takes precedence over targetPartialHF\n */\n calculatePartialHF: optionalAddressArrayLike().register(zommandRegistry, {\n flags: \"--calculate-partial-hf <tokens>\",\n description:\n \"Optimal HF for partial liquidation will be calculated for accounts with following underlying tokens\",\n env: \"CALCULATE_PARTIAL_HF\",\n }),\n })\n .refine(\n data => !(data.optimistic === true && data.partialFallback === true),\n { message: \"partialFallback=true is not allowed in optimistic mode\" },\n );\n\nexport type PartialLiquidatorSchema = z.infer<typeof PartialLiquidatorSchema>;\n","import { zommandRegistry } from \"@gearbox-protocol/cli-utils\";\nimport { z } from \"zod/v4\";\nimport { CommonSchema } from \"./common.js\";\n\nexport const WalletLiquidatorSchema = z.object({\n ...CommonSchema.shape,\n /**\n * Liquidator mode\n */\n liquidationMode: z.literal(\"wallet\").register(zommandRegistry, {\n flags: \"--liquidation-mode <mode>\",\n description: \"Liquidator mode (full/partial/batch/deleverage/wallet)\",\n env: \"LIQUIDATION_MODE\",\n }),\n});\n\nexport type WalletLiquidatorSchema = z.infer<typeof WalletLiquidatorSchema>;\n","import { z } from \"zod/v4\";\nimport { BatchLiquidatorSchema } from \"./batch-liquidator.js\";\nimport { DeleverageLiquidatorSchema } from \"./deleverage-liquidator.js\";\nimport { FullLiquidatorSchema } from \"./full-liquidator.js\";\nimport { PartialLiquidatorSchema } from \"./partial-liquidator.js\";\nimport { WalletLiquidatorSchema } from \"./wallet-liquidator.js\";\n\nexport const ConfigSchema = z.discriminatedUnion(\"liquidationMode\", [\n FullLiquidatorSchema,\n PartialLiquidatorSchema,\n BatchLiquidatorSchema,\n DeleverageLiquidatorSchema,\n WalletLiquidatorSchema,\n]);\n\nexport type ConfigSchema = z.infer<typeof ConfigSchema>;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gearbox-protocol/liquidator-v2-config",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0",
|
|
4
4
|
"description": "Configuration schemas and optimistic result types for Gearbox liquidator v2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
"dist"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@gearbox-protocol/sdk": "
|
|
21
|
-
"viem": "^2.
|
|
22
|
-
"zod": "^4.4
|
|
23
|
-
"@gearbox-protocol/cli-utils": "9.
|
|
20
|
+
"@gearbox-protocol/sdk": "^16.1.1",
|
|
21
|
+
"viem": "^2.56.3",
|
|
22
|
+
"zod": "^4.5.4",
|
|
23
|
+
"@gearbox-protocol/cli-utils": "9.4.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"tsdown": "^0.
|
|
26
|
+
"tsdown": "^0.23.0",
|
|
27
27
|
"typescript": "^7.0.2"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|