OptionalfeeOptionalonOptionalpollOptionalsignalAbort to stop execution.
Iteration then rejects with signal.reason. Calling abort()
with no argument yields an error whose name is "AbortError";
a custom reason is forwarded as-is, matching fetch and
AbortSignal.prototype.throwIfAborted.
Already-broadcast transactions are not recalled; the executor is idempotent, so a later run resumes from the chain.
Fired per VTXO once every step serving its branch is onchain, and again once its sweep confirms — the two moments an exit becomes observable. Two fires rather than one is what makes an observer reading a lagging indexer recoverable here: by the sweep the exit has been onchain for at least the CSV delay.
Best-effort: a rejection never reaches the exit, which is the whole point of a keyless disaster-recovery path.
UnilateralExit.executewires it from a wallet; passing it here keeps the bare executor provider-only.