Trade State Machine
The different states the system can be in and their transitions
Feather was designed with robustness in mind. When you create a trade, it goes through a series of execution states that ensure that your trade will succeed even in the case of anomalies:
We guarantee that once your input deposit is accepted, you will definitely receive your output funds. It's possible for transactions to fail or get stuck for a variety of reasons. If this happens, Feather ensures that the transaction is safely cancelled and then persistently retried until it succeeds.
Trades expire (ExecutionState: "Expired") if no deposit arrives within 2 hours of creation. An expired trade is simply abandoned. If a deposit arrives after expiry but within a grace period, Feather will still honor it.
We continuously scan for incoming payments to active deposit addresses. Depending on the chain there are sometimes delays between on-chain events and our state machine catching up. However it will always catch up to the correct state within a few minutes.