Class RfqQuote<TProfile>
- Namespace
- NArk.ArkadeIntents.Rfq
- Assembly
- NArk.ArkadeIntents.dll
The solver's quote. Its binding fields — SolverPubkey,
RefundLocktime, ValidUntil, FromAmount and
ToAmount — are the values a client may trust; everything in
Profile is compare-only or informational, with one exception named there
(an HTLC send quote's refund_without_receiver_delay, which the client builds into its
script because it is the one number the client cannot derive).
public sealed class RfqQuote<TProfile>
Type Parameters
TProfileThe corridor's quote-profile shape.
- Inheritance
-
RfqQuote<TProfile>
- Inherited Members
Remarks
The client derives the settlement contract from its own data and compares. That is what makes a wrong or malicious solver able to produce only terms the client declines, never a contract that traps funds.
Properties
CarrierSats
The dust sats an Arkade asset deposit rides on, when the quote publishes them.
[JsonConverter(typeof(AtomicAmountConverter))]
public BigInteger? CarrierSats { get; init; }
Property Value
Remarks
Not a fee, and already netted into the two amounts above: returned inside ToAtomicAmount when the payout leg is sats (the client fronted the carrier on its own deposit) and charged out of FromAtomicAmount when the payout leg is an asset (the solver fronts it at output 0).
What it changes is what a client actually sends: an asset deposit carries FromAtomicAmount of the asset plus this many sats. Absent means zero, and only the Arkade-to-Arkade class publishes it at all.
FromAmount
What the client pays, in atomic units of the from-leg.
[JsonIgnore]
public long FromAmount { get; init; }
Property Value
FromAtomicAmount
The from-leg amount without narrowing to the sats API's Int64 range.
[JsonPropertyName("from_amount")]
[JsonConverter(typeof(AtomicAmountConverter))]
public BigInteger FromAtomicAmount { get; init; }
Property Value
MaxFromAmount
Optional upper bound on the onchain receive deposit, in atomic units.
[JsonConverter(typeof(AtomicAmountConverter))]
public BigInteger? MaxFromAmount { get; init; }
Property Value
MinFromAmount
Optional lower bound on the onchain receive deposit, in atomic units.
[JsonConverter(typeof(AtomicAmountConverter))]
public BigInteger? MinFromAmount { get; init; }
Property Value
Pair
The pair quoted.
public string? Pair { get; init; }
Property Value
Profile
Compare-only corridor-specific fields.
public TProfile? Profile { get; init; }
Property Value
- TProfile
RefundLocktime
Unix seconds at which the client's refund path opens. HTLC-class profiles only — the atomic class has nothing to refund.
public long RefundLocktime { get; init; }
Property Value
RfqId
The correlation id this quote answers.
public string? RfqId { get; init; }
Property Value
SolverPubkey
The solver's x-only settlement key (hex).
public required string SolverPubkey { get; init; }
Property Value
ToAmount
What the client receives, in atomic units of the to-leg. The solver's fee is the spread.
[JsonIgnore]
public long ToAmount { get; init; }
Property Value
ToAtomicAmount
The to-leg amount without narrowing to the sats API's Int64 range.
[JsonPropertyName("to_amount")]
[JsonConverter(typeof(AtomicAmountConverter))]
public BigInteger ToAtomicAmount { get; init; }
Property Value
Type
Envelope discriminator.
public string? Type { get; init; }
Property Value
V
Envelope version.
public int V { get; init; }
Property Value
ValidUntil
Unix seconds until which the terms bind, provided funding is observed in time.
public long ValidUntil { get; init; }