Skip to content

Commit 6d70f2e

Browse files
committed
fix: auto-register credit managers in v310 partial liquidator contracts
1 parent 27a634e commit 6d70f2e

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

src/services/liquidate/partial/AbstractPartialLiquidatorContract.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ export abstract class AbstractPartialLiquidatorContract
7272
this.logger = DI.create(DI.Logger, this.name.replaceAll(" ", ""));
7373
}
7474

75-
public addCreditManager(cm: CreditSuite): void {
75+
public queueCreditManagerRegistration(cm: CreditSuite): void {
76+
this.#pendingCreditManagers.push(cm);
7677
this.logger.debug(
77-
`adding credit manager ${cm.creditManager.name} (${cm.creditManager.address})`,
78+
`queued credit manager ${cm.creditManager.name} (${cm.creditManager.address})`,
7879
);
79-
this.#pendingCreditManagers.push(cm);
8080
}
8181

8282
public async syncState(): Promise<void> {

src/services/liquidate/partial/PartialContractsDeployer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ export class PartialContractsDeployer extends SDKConstruct {
8080
liquidatorForCM =
8181
this.#uniqueContracts[liquidatorForCM.name] ?? liquidatorForCM;
8282
this.#uniqueContracts[liquidatorForCM.name] = liquidatorForCM;
83-
this.#uniqueContracts[liquidatorForCM.name].addCreditManager(cm);
83+
this.#uniqueContracts[
84+
liquidatorForCM.name
85+
].queueCreditManagerRegistration(cm);
8486
this.#liquidatorForCM.upsert(cm.creditManager.address, liquidatorForCM);
8587
this.logger?.debug(
8688
`will use partial liquidator contract for ${cm.creditManager.name}: ${liquidatorForCM.name}`,

src/services/liquidate/partial/types.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ export interface IPartialLiquidatorContract {
2828
name: string;
2929
version: number;
3030
envVariables: Record<string, string>;
31-
addCreditManager: (cm: CreditSuite) => void;
31+
/**
32+
* Queues credit manager that uses this partial lqiuidation/deleverage contract for registration
33+
* Registraction will be performed during next syncState
34+
* @param cm
35+
*/
36+
queueCreditManagerRegistration: (cm: CreditSuite) => void;
3237
/**
3338
* Performs all actions necessary to make the contract ready for use
3439
* This includes deploying contracts if necessary, setting router, registering credit managers, etc.

src/services/liquidate/partial/v310/PartialLiquidatorV310Contract.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ export default abstract class PartialLiquidatorV310Contract extends AbstractPart
3939
this.deployer = new Create2Deployer(this.sdk, this.client.wallet);
4040
}
4141

42+
public override queueCreditManagerRegistration(cm: CreditSuite): void {
43+
// For v310, credit managers are registered automatically, unless they have degen NFT
44+
if (cm.creditFacade.degenNFT === ADDRESS_0X0) {
45+
return;
46+
}
47+
super.queueCreditManagerRegistration(cm);
48+
}
49+
4250
/**
4351
* Registers router, partial liquidation bot and credit manager addresses in liquidator contract if necessary
4452
*/

0 commit comments

Comments
 (0)