ppad-bolt2-0.0.1: Peer protocol per BOLT #2
Copyright(c) 2025 Jared Tobin
LicenseMIT
MaintainerJared Tobin <jared@ppad.tech>
Safe HaskellNone
LanguageHaskell2010

Lightning.Protocol.BOLT2.Types

Description

Core types for BOLT #2 peer protocol.

This module provides newtypes for identifiers, amounts, hashes, and keys used in the Lightning Network peer protocol.

Synopsis

Identifiers (re-exported from BOLT1)

newtype ChannelId Source #

A 32-byte channel identifier.

Constructors

ChannelId ByteString 

Instances

Instances details
NFData ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: ChannelId -> () #

Generic ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChannelId = D1 ('MetaData "ChannelId" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ChannelId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChannelId = D1 ('MetaData "ChannelId" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ChannelId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

channelId :: ByteString -> Maybe ChannelId Source #

Construct a ChannelId from a 32-byte ByteString.

Returns Nothing if the input is not exactly 32 bytes.

unChannelId :: ChannelId -> ByteString Source #

Extract the raw bytes from a ChannelId.

Amounts (re-exported from BOLT1)

newtype Satoshi Source #

Amount in satoshis.

Constructors

Satoshi 

Fields

Instances

Instances details
NFData Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: Satoshi -> () #

Enum Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Generic Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Satoshi = D1 ('MetaData "Satoshi" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Satoshi" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSatoshi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

Methods

from :: Satoshi -> Rep Satoshi x #

to :: Rep Satoshi x -> Satoshi #

Num Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Integral Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Real Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Show Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

(==) :: Satoshi -> Satoshi -> Bool #

(/=) :: Satoshi -> Satoshi -> Bool #

Ord Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Satoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Satoshi = D1 ('MetaData "Satoshi" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Satoshi" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSatoshi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

newtype MilliSatoshi Source #

Amount in millisatoshis.

Constructors

MilliSatoshi 

Instances

Instances details
NFData MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: MilliSatoshi -> () #

Enum MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Generic MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep MilliSatoshi = D1 ('MetaData "MilliSatoshi" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "MilliSatoshi" 'PrefixI 'True) (S1 ('MetaSel ('Just "unMilliSatoshi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
Num MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Integral MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Real MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Show MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep MilliSatoshi 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep MilliSatoshi = D1 ('MetaData "MilliSatoshi" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "MilliSatoshi" 'PrefixI 'True) (S1 ('MetaSel ('Just "unMilliSatoshi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

msatToSat :: MilliSatoshi -> Satoshi Source #

Convert MilliSatoshi to Satoshi (rounds down).

Cryptographic types (re-exported from BOLT1)

newtype Signature Source #

A 64-byte compact ECDSA signature.

Constructors

Signature ByteString 

Instances

Instances details
NFData Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: Signature -> () #

Generic Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Signature = D1 ('MetaData "Signature" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Signature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Signature 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Signature = D1 ('MetaData "Signature" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Signature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

signature :: ByteString -> Maybe Signature Source #

Construct a Signature from a 64-byte ByteString.

Returns Nothing if the input is not exactly 64 bytes.

unSignature :: Signature -> ByteString Source #

Extract the raw bytes from a Signature.

newtype Point Source #

A 33-byte compressed secp256k1 public key.

Constructors

Point ByteString 

Instances

Instances details
NFData Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: Point -> () #

Generic Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Point = D1 ('MetaData "Point" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Point" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: Point -> Rep Point x #

to :: Rep Point x -> Point #

Show Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

showsPrec :: Int -> Point -> ShowS #

show :: Point -> String #

showList :: [Point] -> ShowS #

Eq Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

(==) :: Point -> Point -> Bool #

(/=) :: Point -> Point -> Bool #

Ord Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

compare :: Point -> Point -> Ordering #

(<) :: Point -> Point -> Bool #

(<=) :: Point -> Point -> Bool #

(>) :: Point -> Point -> Bool #

(>=) :: Point -> Point -> Bool #

max :: Point -> Point -> Point #

min :: Point -> Point -> Point #

type Rep Point 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep Point = D1 ('MetaData "Point" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "Point" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

point :: ByteString -> Maybe Point Source #

Construct a Point from a 33-byte ByteString.

Returns Nothing if the input is not exactly 33 bytes.

unPoint :: Point -> ByteString Source #

Extract the raw bytes from a Point.

newtype PaymentHash Source #

A 32-byte SHA256 payment hash.

Constructors

PaymentHash ByteString 

Instances

Instances details
NFData PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: PaymentHash -> () #

Generic PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentHash = D1 ('MetaData "PaymentHash" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PaymentHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentHash = D1 ('MetaData "PaymentHash" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PaymentHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

paymentHash :: ByteString -> Maybe PaymentHash Source #

Construct a PaymentHash from a 32-byte ByteString.

Returns Nothing if the input is not exactly 32 bytes.

unPaymentHash :: PaymentHash -> ByteString Source #

Extract the raw bytes from a PaymentHash.

newtype PaymentPreimage Source #

A 32-byte payment preimage.

Instances

Instances details
NFData PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: PaymentPreimage -> () #

Generic PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentPreimage = D1 ('MetaData "PaymentPreimage" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PaymentPreimage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentPreimage 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PaymentPreimage = D1 ('MetaData "PaymentPreimage" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PaymentPreimage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

paymentPreimage :: ByteString -> Maybe PaymentPreimage Source #

Construct a PaymentPreimage from a 32-byte ByteString.

Returns Nothing if the input is not exactly 32 bytes.

newtype PerCommitmentSecret Source #

A 32-byte per-commitment secret.

Instances

Instances details
NFData PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: PerCommitmentSecret -> () #

Generic PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PerCommitmentSecret = D1 ('MetaData "PerCommitmentSecret" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PerCommitmentSecret" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PerCommitmentSecret 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep PerCommitmentSecret = D1 ('MetaData "PerCommitmentSecret" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "PerCommitmentSecret" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

perCommitmentSecret :: ByteString -> Maybe PerCommitmentSecret Source #

Construct a PerCommitmentSecret from a 32-byte ByteString.

Returns Nothing if the input is not exactly 32 bytes.

Chain types (re-exported from BOLT1)

newtype ChainHash Source #

A chain hash (32-byte hash identifying a blockchain).

Constructors

ChainHash ByteString 

Instances

Instances details
NFData ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: ChainHash -> () #

Generic ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChainHash = D1 ('MetaData "ChainHash" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ChainHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ChainHash = D1 ('MetaData "ChainHash" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ChainHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

chainHash :: ByteString -> Maybe ChainHash Source #

Construct a chain hash from a 32-byte bytestring.

Returns Nothing if the input is not exactly 32 bytes.

unChainHash :: ChainHash -> ByteString Source #

Extract the raw bytes from a chain hash.

newtype ShortChannelId Source #

A short channel identifier (8 bytes packed as Word64).

Encodes block height (3 bytes), transaction index (3 bytes), and output index (2 bytes).

Constructors

ShortChannelId Word64 

Instances

Instances details
NFData ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Methods

rnf :: ShortChannelId -> () #

Generic ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Associated Types

type Rep ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ShortChannelId = D1 ('MetaData "ShortChannelId" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ShortChannelId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
Show ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Eq ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

Ord ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT1.Prim

type Rep ShortChannelId = D1 ('MetaData "ShortChannelId" "Lightning.Protocol.BOLT1.Prim" "ppad-bolt1-0.0.1-GZKMoPKBmjXD9cKQTWAWgW" 'True) (C1 ('MetaCons "ShortChannelId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

shortChannelId Source #

Arguments

:: Word32

Block height (24 bits max)

-> Word32

Transaction index (24 bits max)

-> Word16

Output index

-> Maybe ShortChannelId 

Construct a ShortChannelId from components.

Returns Nothing if block height or tx index exceed 24 bits.

scidBlockHeight :: ShortChannelId -> Word32 Source #

Extract the block height from a ShortChannelId.

scidTxIndex :: ShortChannelId -> Word32 Source #

Extract the transaction index from a ShortChannelId.

scidOutputIndex :: ShortChannelId -> Word16 Source #

Extract the output index from a ShortChannelId.

Transaction types

newtype TxId Source #

Transaction ID (32 bytes, little-endian double-SHA256).

Constructors

TxId ByteString 

Instances

Instances details
NFData TxId 
Instance details

Defined in Bitcoin.Prim.Tx

Methods

rnf :: TxId -> () #

Generic TxId 
Instance details

Defined in Bitcoin.Prim.Tx

Associated Types

type Rep TxId 
Instance details

Defined in Bitcoin.Prim.Tx

type Rep TxId = D1 ('MetaData "TxId" "Bitcoin.Prim.Tx" "ppad-tx-0.1.0-IT48EoatyO26YFokfriqJ" 'True) (C1 ('MetaCons "TxId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: TxId -> Rep TxId x #

to :: Rep TxId x -> TxId #

Show TxId 
Instance details

Defined in Bitcoin.Prim.Tx

Methods

showsPrec :: Int -> TxId -> ShowS #

show :: TxId -> String #

showList :: [TxId] -> ShowS #

Eq TxId 
Instance details

Defined in Bitcoin.Prim.Tx

Methods

(==) :: TxId -> TxId -> Bool #

(/=) :: TxId -> TxId -> Bool #

type Rep TxId 
Instance details

Defined in Bitcoin.Prim.Tx

type Rep TxId = D1 ('MetaData "TxId" "Bitcoin.Prim.Tx" "ppad-tx-0.1.0-IT48EoatyO26YFokfriqJ" 'True) (C1 ('MetaCons "TxId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

mkTxId :: ByteString -> Maybe TxId Source #

Construct a TxId from a 32-byte ByteString.

Returns Nothing if the input is not exactly 32 bytes.

  mkTxId (BS.replicate 32 0x00) == Just (TxId ...)
  mkTxId (BS.replicate 31 0x00) == Nothing
  

data OutPoint Source #

Transaction outpoint (txid + output index).

Constructors

OutPoint 

Fields

Instances

Instances details
NFData OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

Methods

rnf :: OutPoint -> () #

Generic OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

Associated Types

type Rep OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

type Rep OutPoint = D1 ('MetaData "OutPoint" "Bitcoin.Prim.Tx" "ppad-tx-0.1.0-IT48EoatyO26YFokfriqJ" 'False) (C1 ('MetaCons "OutPoint" 'PrefixI 'True) (S1 ('MetaSel ('Just "op_txid") 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 TxId) :*: S1 ('MetaSel ('Just "op_vout") 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Word32)))

Methods

from :: OutPoint -> Rep OutPoint x #

to :: Rep OutPoint x -> OutPoint #

Show OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

Eq OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

type Rep OutPoint 
Instance details

Defined in Bitcoin.Prim.Tx

type Rep OutPoint = D1 ('MetaData "OutPoint" "Bitcoin.Prim.Tx" "ppad-tx-0.1.0-IT48EoatyO26YFokfriqJ" 'False) (C1 ('MetaCons "OutPoint" 'PrefixI 'True) (S1 ('MetaSel ('Just "op_txid") 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 TxId) :*: S1 ('MetaSel ('Just "op_vout") 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Word32)))

data ScriptPubKey Source #

A script pubkey (output script).

Instances

Instances details
NFData ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Methods

rnf :: ScriptPubKey -> () #

Generic ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Associated Types

type Rep ScriptPubKey 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep ScriptPubKey = D1 ('MetaData "ScriptPubKey" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "ScriptPubKey" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Eq ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Ord ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep ScriptPubKey Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep ScriptPubKey = D1 ('MetaData "ScriptPubKey" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "ScriptPubKey" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Protocol types

data FeatureBits Source #

Feature bits (variable length).

Instances

Instances details
NFData FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Methods

rnf :: FeatureBits -> () #

Generic FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Associated Types

type Rep FeatureBits 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep FeatureBits = D1 ('MetaData "FeatureBits" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "FeatureBits" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Eq FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Ord FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep FeatureBits = D1 ('MetaData "FeatureBits" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "FeatureBits" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

data OnionPacket Source #

A 1366-byte onion routing packet.

Instances

Instances details
NFData OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Methods

rnf :: OnionPacket -> () #

Generic OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Associated Types

type Rep OnionPacket 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep OnionPacket = D1 ('MetaData "OnionPacket" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "OnionPacket" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Eq OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

Ord OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep OnionPacket Source # 
Instance details

Defined in Lightning.Protocol.BOLT2.Types

type Rep OnionPacket = D1 ('MetaData "OnionPacket" "Lightning.Protocol.BOLT2.Types" "ppad-bolt2-0.0.1-GI0K1t7dKAW7RblYmOAXen" 'True) (C1 ('MetaCons "OnionPacket" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

onionPacket :: ByteString -> Maybe OnionPacket Source #

Construct an OnionPacket from a 1366-byte ByteString.

Returns Nothing if the input is not exactly 1366 bytes.

unOnionPacket :: OnionPacket -> ByteString Source #

Extract the underlying ByteString from an OnionPacket.

Constants

channelIdLen :: Int Source #

Length of a channel_id in bytes (32).

signatureLen :: Int Source #

Length of a signature in bytes (64, compact format).

pointLen :: Int Source #

Length of a compressed secp256k1 public key in bytes (33).

chainHashLen :: Int Source #

Length of a chain hash in bytes (32).

shortChannelIdLen :: Int Source #

Length of a short_channel_id in bytes (8).

paymentHashLen :: Int Source #

Length of a payment hash in bytes (32).

paymentPreimageLen :: Int Source #

Length of a payment preimage in bytes (32).

onionPacketLen :: Int Source #

Length of an onion routing packet in bytes (1366).

perCommitmentSecretLen :: Int Source #

Length of a per-commitment secret in bytes (32).