File tree Expand file tree Collapse file tree 9 files changed +200
-152
lines changed
src/services/liquidate/partial Expand file tree Collapse file tree 9 files changed +200
-152
lines changed Original file line number Diff line number Diff line change 2929 "@gearbox-protocol/cli-utils" : " ^5.45.15" ,
3030 "@gearbox-protocol/liquidator-contracts" : " ^1.36.0-experimental.41" ,
3131 "@gearbox-protocol/liquidator-v2-contracts" : " ^2.4.0" ,
32- "@gearbox-protocol/sdk" : " 8.27.7 " ,
32+ "@gearbox-protocol/sdk" : " 8.27.9 " ,
3333 "@gearbox-protocol/types" : " ^1.14.8" ,
3434 "@types/node" : " ^24.3.1" ,
3535 "@uniswap/sdk-core" : " ^7.7.2" ,
4848 "pino" : " ^9.9.4" ,
4949 "tsx" : " 4.20.5" ,
5050 "typescript" : " ^5.9.2" ,
51- "viem" : " ^2.37.3 " ,
51+ "viem" : " ^2.37.4 " ,
5252 "vitest" : " ^3.2.4" ,
5353 "zod" : " ^4.1.5"
5454 },
Original file line number Diff line number Diff line change 11import type {
22 CreditSuite ,
3+ Curator ,
34 OnDemandPriceUpdates ,
45 PriceUpdateV300 ,
56 PriceUpdateV310 ,
67} from "@gearbox-protocol/sdk" ;
7- import { formatBN } from "@gearbox-protocol/sdk" ;
8+ import { formatBN , getCuratorName } from "@gearbox-protocol/sdk" ;
89import type { Address } from "abitype" ;
910
1011import type { OptimalPartialLiquidation } from "./types.js" ;
@@ -59,3 +60,16 @@ export function humanizePreviewPartialLiquidation(
5960 slippage : slippage . toString ( ) ,
6061 } ;
6162}
63+
64+ export function mustGetCuratorName ( cm : CreditSuite ) : Curator {
65+ const curator = getCuratorName (
66+ cm . marketConfigurator ,
67+ cm . provider . networkType ,
68+ ) ;
69+ if ( ! curator ) {
70+ throw new Error (
71+ `unknown market configurator ${ cm . marketConfigurator } on ${ cm . provider . networkType } ` ,
72+ ) ;
73+ }
74+ return curator ;
75+ }
Original file line number Diff line number Diff line change @@ -6,10 +6,18 @@ import {
66 AaveFLTaker_bytecode ,
77 AaveLiquidator_bytecode ,
88} from "@gearbox-protocol/liquidator-v2-contracts/bytecode" ;
9- import type { CreditSuite , Curator } from "@gearbox-protocol/sdk" ;
9+ import {
10+ type CreditSuite ,
11+ type Curator ,
12+ getCuratorName ,
13+ isVersionRange ,
14+ VERSION_RANGE_300 ,
15+ VERSION_RANGE_310 ,
16+ } from "@gearbox-protocol/sdk" ;
1017import { type Address , isAddress } from "viem" ;
1118
1219import { AAVE_V3_LENDING_POOL } from "../constants.js" ;
20+ import { mustGetCuratorName } from "../utils.js" ;
1321import PartialLiquidatorV300Contract from "./PartialLiquidatorV300Contract.js" ;
1422
1523export class AAVELiquidatorV300Contract extends PartialLiquidatorV300Contract {
@@ -18,14 +26,14 @@ export class AAVELiquidatorV300Contract extends PartialLiquidatorV300Contract {
1826 public static tryAttach (
1927 cm : CreditSuite ,
2028 ) : AAVELiquidatorV300Contract | undefined {
21- if ( cm . router . version < 300 || cm . router . version > 309 ) {
29+ if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_300 ) ) {
2230 return undefined ;
2331 }
2432 const aavePool = AAVE_V3_LENDING_POOL [ cm . provider . networkType ] ;
2533 if ( ! aavePool || ! isAddress ( aavePool ) ) {
2634 return undefined ;
2735 }
28- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
36+ const curator = mustGetCuratorName ( cm ) ;
2937 const symbol = cm . sdk . tokensMeta . symbol ( cm . underlying ) ;
3038 let result : AAVELiquidatorV300Contract | undefined ;
3139 switch ( symbol ) {
Original file line number Diff line number Diff line change @@ -6,10 +6,16 @@ import {
66 GhoFMTaker_bytecode ,
77 GhoLiquidator_bytecode ,
88} from "@gearbox-protocol/liquidator-v2-contracts/bytecode" ;
9- import type { CreditSuite , Curator } from "@gearbox-protocol/sdk" ;
9+ import {
10+ type CreditSuite ,
11+ type Curator ,
12+ isVersionRange ,
13+ VERSION_RANGE_300 ,
14+ } from "@gearbox-protocol/sdk" ;
1015import type { Address } from "viem" ;
1116
1217import { FLASH_MINTERS } from "../constants.js" ;
18+ import { mustGetCuratorName } from "../utils.js" ;
1319import PartialLiquidatorV300Contract from "./PartialLiquidatorV300Contract.js" ;
1420
1521export class GHOLiquidatorV300Contract extends PartialLiquidatorV300Contract {
@@ -19,10 +25,10 @@ export class GHOLiquidatorV300Contract extends PartialLiquidatorV300Contract {
1925 public static tryAttach (
2026 cm : CreditSuite ,
2127 ) : GHOLiquidatorV300Contract | undefined {
22- if ( cm . router . version < 300 || cm . router . version > 309 ) {
28+ if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_300 ) ) {
2329 return undefined ;
2430 }
25- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
31+ const curator = mustGetCuratorName ( cm ) ;
2632 const symbol = cm . sdk . tokensMeta . symbol ( cm . underlying ) ;
2733 const flashMinter = FLASH_MINTERS [ cm . provider . networkType ] ?. [ symbol ] ;
2834 if ( ! flashMinter ) {
Original file line number Diff line number Diff line change @@ -6,10 +6,16 @@ import {
66 SiloFLTaker_bytecode ,
77 SiloLiquidator_bytecode ,
88} from "@gearbox-protocol/liquidator-v2-contracts/bytecode" ;
9- import type { CreditSuite , Curator } from "@gearbox-protocol/sdk" ;
9+ import {
10+ type CreditSuite ,
11+ type Curator ,
12+ isVersionRange ,
13+ VERSION_RANGE_300 ,
14+ } from "@gearbox-protocol/sdk" ;
1015import type { Address } from "viem" ;
1116
1217import { SONIC_USDCE_SILO , SONIC_WS_SILO } from "../constants.js" ;
18+ import { mustGetCuratorName } from "../utils.js" ;
1319import PartialLiquidatorV300Contract from "./PartialLiquidatorV300Contract.js" ;
1420
1521export class SiloLiquidatorV300Contract extends PartialLiquidatorV300Contract {
@@ -18,13 +24,13 @@ export class SiloLiquidatorV300Contract extends PartialLiquidatorV300Contract {
1824 public static tryAttach (
1925 cm : CreditSuite ,
2026 ) : SiloLiquidatorV300Contract | undefined {
21- if ( cm . router . version < 300 || cm . router . version > 309 ) {
27+ if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_300 ) ) {
2228 return undefined ;
2329 }
2430 if ( cm . provider . networkType !== "Sonic" ) {
2531 return undefined ;
2632 }
27- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
33+ const curator = mustGetCuratorName ( cm ) ;
2834 const result = new SiloLiquidatorV300Contract ( cm . router . address , curator ) ;
2935 // if (result.config.liquidationMode === "deleverage") {
3036 // return undefined;
Original file line number Diff line number Diff line change @@ -8,10 +8,16 @@ import {
88 AaveLiquidator_bytecode ,
99 AaveUnwinder_bytecode ,
1010} from "@gearbox-protocol/liquidator-contracts/bytecode" ;
11- import type { CreditSuite , Curator } from "@gearbox-protocol/sdk" ;
11+ import {
12+ type CreditSuite ,
13+ type Curator ,
14+ isVersionRange ,
15+ VERSION_RANGE_310 ,
16+ } from "@gearbox-protocol/sdk" ;
1217import { type Address , isAddress } from "viem" ;
1318
1419import { AAVE_V3_LENDING_POOL } from "../constants.js" ;
20+ import { mustGetCuratorName } from "../utils.js" ;
1521import PartialLiquidatorV310Contract from "./PartialLiquidatorV310Contract.js" ;
1622
1723export class AAVELiquidatorV310Contract extends PartialLiquidatorV310Contract {
@@ -20,14 +26,14 @@ export class AAVELiquidatorV310Contract extends PartialLiquidatorV310Contract {
2026 public static tryAttach (
2127 cm : CreditSuite ,
2228 ) : AAVELiquidatorV310Contract | undefined {
23- if ( cm . router . version < 310 || cm . router . version > 319 ) {
29+ if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_310 ) ) {
2430 return undefined ;
2531 }
2632 const aavePool = AAVE_V3_LENDING_POOL [ cm . provider . networkType ] ;
2733 if ( ! aavePool || ! isAddress ( aavePool ) ) {
2834 return undefined ;
2935 }
30- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
36+ const curator = mustGetCuratorName ( cm ) ;
3137 const symbol = cm . sdk . tokensMeta . symbol ( cm . underlying ) ;
3238 switch ( symbol ) {
3339 case "GHO" :
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ import {
1717import type { Address } from "viem" ;
1818
1919import { FLASH_MINTERS } from "../constants.js" ;
20+ import { mustGetCuratorName } from "../utils.js" ;
2021import PartialLiquidatorV310Contract from "./PartialLiquidatorV310Contract.js" ;
2122
2223type GhoLiquidatorToken = "DOLA" | "GHO" | "NECT" ;
@@ -31,7 +32,7 @@ export class GHOLiquidatorV310Contract extends PartialLiquidatorV310Contract {
3132 if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_310 ) ) {
3233 return undefined ;
3334 }
34- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
35+ const curator = mustGetCuratorName ( cm ) ;
3536 const symbol = cm . sdk . tokensMeta . symbol ( cm . underlying ) ;
3637 const flashMinter = FLASH_MINTERS [ cm . provider . networkType ] ?. [ symbol ] ;
3738 if ( ! flashMinter ) {
Original file line number Diff line number Diff line change @@ -8,10 +8,17 @@ import {
88 SiloLiquidator_bytecode ,
99 SiloUnwinder_bytecode ,
1010} from "@gearbox-protocol/liquidator-contracts/bytecode" ;
11- import { type CreditSuite , type Curator , hexEq } from "@gearbox-protocol/sdk" ;
11+ import {
12+ type CreditSuite ,
13+ type Curator ,
14+ hexEq ,
15+ isVersionRange ,
16+ VERSION_RANGE_310 ,
17+ } from "@gearbox-protocol/sdk" ;
1218import type { Address } from "viem" ;
1319
1420import { SONIC_USDCE_SILO , SONIC_WS_SILO } from "../constants.js" ;
21+ import { mustGetCuratorName } from "../utils.js" ;
1522import PartialLiquidatorV310Contract from "./PartialLiquidatorV310Contract.js" ;
1623
1724export class SiloLiquidatorV310Contract extends PartialLiquidatorV310Contract {
@@ -20,13 +27,13 @@ export class SiloLiquidatorV310Contract extends PartialLiquidatorV310Contract {
2027 public static tryAttach (
2128 cm : CreditSuite ,
2229 ) : SiloLiquidatorV310Contract | undefined {
23- if ( cm . router . version < 310 || cm . router . version > 319 ) {
30+ if ( ! isVersionRange ( cm . router . version , VERSION_RANGE_310 ) ) {
2431 return undefined ;
2532 }
2633 if ( cm . provider . networkType !== "Sonic" ) {
2734 return undefined ;
2835 }
29- const curator = cm . name . includes ( "K3" ) ? "K3" : "Chaos Labs" ;
36+ const curator = mustGetCuratorName ( cm ) ;
3037 return new SiloLiquidatorV310Contract ( cm . router . address , curator ) ;
3138 }
3239
You can’t perform that action at this time.
0 commit comments