Table of Contents

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

reasons IReadOnlyList<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; }

Property Value

IReadOnlyList<string>