Block Conditions
Deposits
user attempting to deposit when the max_deposits for that spot asset would be or has been reached
spot market is in reduce only mode and deposit does not pay off a borrow
Withdraws
user attempting to withdraw with outstanding liabilities when an oracle is invalid
attempting to borrow or withdraw when there are outstanding liabilities and any asset or liability's Oracle the user has is deemed invalid ("invalid" in accordance with
MarginCalcaction)user attempting to increase the number of liabilities above 1 with an isolated tier liability
users can only have one outstanding liability when the liability has the isolated asset tier.
users cannot withdraw assets that would put their total collateral (weighted collateral value) below their initial margin requirement
users cannot withdraw an asset amount that would put that particular asset's protocol liquidity below the rolling limits
these limits differ based on whether the withdraw would open borrow or not
Placing Orders
users cannot place orders that are risk-increasing and would put their initial margin requirement above their total collateral
users cannot place orders that would increase their number of outstanding liabilities above 1 if the liability has the isolated asset tier
[SPOT ONLY] without margin trading enabled on an account, users won't be able to open spot orders than would create borrows on the account
[SPOT ONLY] with margin trading enabled, users won't be able to borrow using the same rolling limits for withdraws
Filling Orders
a user's orders will not fill if it sends them under the margin requirement plus buffer (since they have `InsufficientCollateral`)
within a match, if either user hits this condition, the match won't go through
Settle Perp PnL
when market's oracle is deemed invalid
when user account value is below the maintenance margin requirement
when AMM repeg cost exceeds budget
Last updated