Code Review

[Code Review] Silo Finance (3)

0xperiagoge 2024. 2. 22. 00:56

청산과정 더 보기 

 

https://github.com/silo-finance/liquidation?tab=readme-ov-file

 

GitHub - silo-finance/liquidation: Liquidation Helper contract + necessary ABIs to perform liquidation

Liquidation Helper contract + necessary ABIs to perform liquidation - silo-finance/liquidation

github.com

 

executeLiquidation 실행시

LiquidationHelper.executeLiquidation() -> SiloV2.flashLiquidate()

-> BaseSilo._userLiquidation() -> BaseSilo._flashUserLiquidation() -> BaseSilo._withdrawAsset 

-> LiquidationHelper.siloLiquidationCallback() -> LiquidationHelper._siloLiquidationCallbackExecution()

-> LiquidationHelper._runInternalScenario() -> LiquidationRepay._repay() -> LiquidationRepay._repayAsset() 

 

SiloRepository에 있는 NewSilo이벤트 캐치해서 silo주소들 모아오기. 

모든 블록 뒤져서 Borrow이벤트 캐치해오기 

arbitrum SiloRepository 0x8658047e48CC09161f4152c79155Dac1d710Ff0a

NewSilo Event Found: Block Number - 65062068
Silo Address: 0x5eDa4Bee7Ba556e65BC4FB9eEd5d74E61bc1f2A9
Asset Address: 0x51fC0f6660482Ea73330E414eFd7808811a57Fa2
Silo Version: 1
NewSilo Event Found: Block Number - 65062094
Silo Address: 0xfc6778a6955e1ceCAc448051de967f9b5Ff4D647
Asset Address: 0x18c11FD286C5EC11c3b683Caa813B77f5163A122
Silo Version: 1
NewSilo Event Found: Block Number - 65062120
Silo Address: 0x950AAEDa8C6E806A8c889B4dBCc0361760b86249
Asset Address: 0x32Eb7902D4134bf98A28b963D26de779AF92A212
Silo Version: 1
...more

 

모든유저는 자신의 지불능력에 대해서 LiquidationHelper.checkSolvency()를 통해서 봐야한다.

LiquidationHelper.checkDebt을 사용해서 체크한다. 만약 빚이 없다면 모니터링 리스트에서 제거한다. 

다시 Borrow이벤트를 캐치한다. 

 

user가 지불 능력이 없다는 것을 확인하면 즉시 tx를 실행하여 flashLiquidate()를 사용해서 청산시킨다. 

LiquidationHelper.executeLiquidation()을 사용하여 청산을 수행할수도 있다. 

 

 

+

악성부채 (Bad Debt)

https://silopedia.silo.finance/risks/bad-debt