Withdraw collateral
This sequence of actions demonstrates how the Flash Trade system handles the withdrawal of collateral. It includes the preparation for the withdrawal, the withdrawal itself, and the verification of the withdrawal.
Preparation:
CollalteralManager
emits aWithdrawReport
event, signaling that it is prepared for the withdrawal of collateral.The Resolver sends an unlocking transaction by calling the
reportWithdraw
method of theCollalteralManager
contract in the receive chain to prepare a withdrawal.CollalteralManager
increases the amount of locked collateral by the order amount. Locked collateral is the amount of collateral that is currently locked and cannot be used for other orders.
Withdrawal:
The Resolver instructs the
CollateralManager
to withdraw collateral, calling methodwithdraw
and providingreportProof
.CollateralManager
checks to make sure the amount being withdrawn does not exceed the amount of locked collateral. If it does, the withdrawal is rejected.CollateralManager
, with the help of Light Clients, verifies the proof of theWithdraw
event provided withreportProof
. If the proof is falsified, the withdrawal is rejected.CollateralManager
decreases the total amount of collateral to reflect the withdrawal and updates its own state to reflect the new total amount.CollateralManager
emits aWithdraw
event, signaling that the withdrawal of collateral has occurred.
Last updated