You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 10, 2025. It is now read-only.
Presently, the solver binary does not listen for swap cancellations, it just fetches the 'unfulfilled' swaps on every block.
Swaps that are staged for cancellation remain in the 'unfulfilled' state until their cooldown period expires and the requester withdraws their funds.
This creates a time window where the cooldown period has expired and the requester has not yet withdrawn where the swap is effectively agreed 'cancelled' but the solver can still fulfill it. Depending on the verifier implementation, they may reasonably refuse to reimburse the solver for this.
In practice swaps are nearly always filled instantly, and I think the current dcipher implementation will reimburse the solver regardless, but it's worth fixing.
Presently, the solver binary does not listen for swap cancellations, it just fetches the 'unfulfilled' swaps on every block.
Swaps that are staged for cancellation remain in the 'unfulfilled' state until their cooldown period expires and the requester withdraws their funds.
This creates a time window where the cooldown period has expired and the requester has not yet withdrawn where the swap is effectively agreed 'cancelled' but the solver can still fulfill it. Depending on the verifier implementation, they may reasonably refuse to reimburse the solver for this.
In practice swaps are nearly always filled instantly, and I think the current dcipher implementation will reimburse the solver regardless, but it's worth fixing.