Class RelayUnavailableException
- Namespace
- NArk.ArkadeIntents.Rfq
- Assembly
- NArk.ArkadeIntents.dll
Thrown when every relay is gone, so no reply could have reached us on any of them.
public sealed class RelayUnavailableException : Exception, ISerializable
- Inheritance
-
RelayUnavailableException
- Implements
- Inherited Members
Remarks
Distinct from a timeout on purpose, and the distinction is the whole reason this type exists. Both look like "no answer", and they mean opposite things: a timeout says the solver did not respond, while this says we were never in a position to hear it. Without the difference a client waits out the full timeout and then blames a counterparty for a failure on its own side of the wire — which is a bug report filed against the wrong party, and the reference deployment lost days to exactly that.
Constructors
RelayUnavailableException(IReadOnlyList<string>)
Thrown when every relay is gone, so no reply could have reached us on any of them.
public RelayUnavailableException(IReadOnlyList<string> reasons)
Parameters
reasonsIReadOnlyList<string>
Remarks
Distinct from a timeout on purpose, and the distinction is the whole reason this type exists. Both look like "no answer", and they mean opposite things: a timeout says the solver did not respond, while this says we were never in a position to hear it. Without the difference a client waits out the full timeout and then blames a counterparty for a failure on its own side of the wire — which is a bug report filed against the wrong party, and the reference deployment lost days to exactly that.
Properties
Reasons
Why each relay was unusable, in the order they were tried.
public IReadOnlyList<string> Reasons { get; }