Sometimes there are orders that when trying to be filled, just disappear (I call them ghost orders).
Ghost Orders can be created by creating an order and then withdrawing your funds from your account. The order will still be up. But as soon as someone is trying to fill the order it just disappears.
Question: Why is this allowed? Like this order books can be easily manipulated.
Question: Is there a way to detect a Ghost Order in advance? When getting the orderbook via API, a normal order and Ghost Order look exactly the same.
The thing is, the orders are stored inside the matcher. The matcher doesn't go checking each active order anymore each time. So what happens, after the order is placed it stays there, the user sends out funds, which the matcher doesn't knows ( matcher data is not stored on chain). Because the matcher doesn't know this himself, the order stays active. But then you try to buy this order, unfortunately, the matcher trys to validate the order again, and then it sees that the order isn't valid anymore and it drops it before you even get the chance to buy.