Table of Contents

Class VHTLCv2StrictClaim

Namespace
NArk.Arkade.Contracts
Assembly
NArk.Arkade.dll

The opt-in bound that makes a non-interactive claim pay at least the quoted amounts, enforced in script rather than at the consumer's own admission layer.

public sealed record VHTLCv2StrictClaim : IEquatable<VHTLCv2StrictClaim>
Inheritance
VHTLCv2StrictClaim
Implements
Inherited Members

Remarks

ADDITIVE, NEVER A REPLACEMENT. The covenant's default bound is conservation (out >= in), and it stays. On its own, out >= quoted leaves everything ABOVE the quote unconstrained, so an overfunded lockup's surplus could be routed anywhere by whoever assembles the spend — trading an underfunding hole for a skimming one.

What it costs: the address becomes a function of the quote, because these amounts compile into the leaf, hence the covenant key, hence the pkScript — a re-quote is a different address and cannot be applied to a lockup already funded. And an underfunded lockup becomes unclaimable, its only exit the refund path, which waits out the locktime.

Constructors

VHTLCv2StrictClaim(long, long?)

The opt-in bound that makes a non-interactive claim pay at least the quoted amounts, enforced in script rather than at the consumer's own admission layer.

public VHTLCv2StrictClaim(long Amount, long? AssetAmount = null)

Parameters

Amount long

Sats the claim must pay. Positive.

AssetAmount long?

Asset base units the claim must pay. Required if and only if the contract names a VHTLCv2Asset: bounding only the sats would pin the CARRIER and say nothing about the asset that is the actual amount — half-enforcement that reads like enforcement.

Remarks

ADDITIVE, NEVER A REPLACEMENT. The covenant's default bound is conservation (out >= in), and it stays. On its own, out >= quoted leaves everything ABOVE the quote unconstrained, so an overfunded lockup's surplus could be routed anywhere by whoever assembles the spend — trading an underfunding hole for a skimming one.

What it costs: the address becomes a function of the quote, because these amounts compile into the leaf, hence the covenant key, hence the pkScript — a re-quote is a different address and cannot be applied to a lockup already funded. And an underfunded lockup becomes unclaimable, its only exit the refund path, which waits out the locktime.

Properties

Amount

Sats the claim must pay. Positive.

public long Amount { get; init; }

Property Value

long

AssetAmount

Asset base units the claim must pay. Required if and only if the contract names a VHTLCv2Asset: bounding only the sats would pin the CARRIER and say nothing about the asset that is the actual amount — half-enforcement that reads like enforcement.

public long? AssetAmount { get; init; }

Property Value

long?