Table of Contents

Class OpenChannel2Payload

Namespace
NLightning.Bolts.BOLT2.Payloads
Assembly
NLightning.Bolts.dll

Represents the payload for the open_channel2 message.

public class OpenChannel2Payload : IMessagePayload
Inheritance
OpenChannel2Payload
Implements
Inherited Members

Remarks

Initializes a new instance of the OpenChannel2Payload class. This class depends on the initialized singleton class ConfigManager.

Constructors

OpenChannel2Payload(ChannelId, uint, uint, ulong, PubKey, PubKey, PubKey, PubKey, PubKey, PubKey, PubKey, ChannelFlags)

public OpenChannel2Payload(ChannelId temporaryChannelId, uint fundingFeeRatePerKw, uint commitmentFeeRatePerKw, ulong fundingSatoshis, PubKey fundingPubKey, PubKey revocationBasepoint, PubKey paymentBasepoint, PubKey delayedPaymentBasepoint, PubKey htlcBasepoint, PubKey firstPerCommitmentPoint, PubKey secondPerCommitmentPoint, ChannelFlags channelFlags)

Parameters

temporaryChannelId ChannelId
fundingFeeRatePerKw uint
commitmentFeeRatePerKw uint
fundingSatoshis ulong
fundingPubKey PubKey
revocationBasepoint PubKey
paymentBasepoint PubKey
delayedPaymentBasepoint PubKey
htlcBasepoint PubKey
firstPerCommitmentPoint PubKey
secondPerCommitmentPoint PubKey
channelFlags ChannelFlags

Properties

ChainHash

The chain_hash value denotes the exact blockchain that the opened channel will reside within.

public ChainHash ChainHash { get; }

Property Value

ChainHash

ChannelFlags

Only the least-significant bit of channel_flags is currently defined: announce_channel. This indicates whether the initiator of the funding flow wishes to advertise this channel publicly to the network

public ChannelFlags ChannelFlags { get; set; }

Property Value

ChannelFlags

CommitmentFeeRatePerKw

commitment_feerate_perkw indicates the fee rate that will be paid for the commitment transaction in satoshi per 1000-weight, as described in BOLT-3, Appendix F

public uint CommitmentFeeRatePerKw { get; set; }

Property Value

uint

DelayedPaymentBasepoint

delayed_payment_basepoint is used to regenerate the scripts required for the penalty transaction

public PubKey DelayedPaymentBasepoint { get; set; }

Property Value

PubKey

DustLimitSatoshis

dust_limit_satoshis is the threshold below which outputs should not be generated for this node's commitment or HTLC transactions

public ulong DustLimitSatoshis { get; }

Property Value

ulong

FirstPerCommitmentPoint

first_per_commitment_point is the per-commitment point used for the first commitment transaction

public PubKey FirstPerCommitmentPoint { get; set; }

Property Value

PubKey

FundingFeeRatePerKw

funding_feerate_perkw indicates the fee rate that the opening node will pay for the funding transaction in satoshi per 1000-weight, as described in BOLT-3, Appendix F

public uint FundingFeeRatePerKw { get; set; }

Property Value

uint

FundingPubKey

funding_pubkey is the public key in the 2-of-2 multisig script of the funding transaction output.

public PubKey FundingPubKey { get; set; }

Property Value

PubKey

FundingSatoshis

funding_satoshis is the amount the sender is putting into the channel.

public ulong FundingSatoshis { get; set; }

Property Value

ulong

HtlcBasepoint

htlc_basepoint is used to produce HTLC signatures for the protocol

public PubKey HtlcBasepoint { get; set; }

Property Value

PubKey

HtlcMinimumMsat

htlc_minimum_msat indicates the smallest value HTLC this node will accept.

public ulong HtlcMinimumMsat { get; }

Property Value

ulong

Locktime

locktime is the locktime for the funding transaction.

public uint Locktime { get; }

Property Value

uint

MaxAcceptedHtlcs

max_accepted_htlcs limits the number of outstanding HTLCs the remote node can offer.

public ushort MaxAcceptedHtlcs { get; }

Property Value

ushort

MaxHtlcValueInFlightMsat

max_htlc_value_in_flight_msat is a cap on total value of outstanding HTLCs offered by the remote node, which allows the local node to limit its exposure to HTLCs

public ulong MaxHtlcValueInFlightMsat { get; }

Property Value

ulong

PaymentBasepoint

payment_basepoint is used to produce payment signatures for the protocol

public PubKey PaymentBasepoint { get; set; }

Property Value

PubKey

RevocationBasepoint

revocation_basepoint is used to regenerate the scripts required for the penalty transaction

public PubKey RevocationBasepoint { get; set; }

Property Value

PubKey

SecondPerCommitmentPoint

second_per_commitment_point is the per-commitment point used for the first commitment transaction

public PubKey SecondPerCommitmentPoint { get; set; }

Property Value

PubKey

TemporaryChannelId

The temporary_channel_id is used to identify this channel on a per-peer basis until the funding transaction is established, at which point it is replaced by the channel_id, which is derived from the funding transaction.

public ChannelId TemporaryChannelId { get; set; }

Property Value

ChannelId

ToSelfDelay

to_self_delay is how long (in blocks) the other node will have to wait in case of breakdown before redeeming its own funds.

public ushort ToSelfDelay { get; }

Property Value

ushort

Methods

DeserializeAsync(Stream)

Deserializes the payload from a stream.

public static Task<OpenChannel2Payload> DeserializeAsync(Stream stream)

Parameters

stream Stream

The stream to deserialize from.

Returns

Task<OpenChannel2Payload>

The deserialized payload.

Exceptions

PayloadSerializationException

Error deserializing Payload

SerializeAsync(Stream)

Serializes the message payload to a stream.

public Task SerializeAsync(Stream stream)

Parameters

stream Stream

The stream to serialize to.

Returns

Task

A task that represents the asynchronous operation.