ppad-bolt7-0.0.1: Routing gossip per BOLT #7
Copyright(c) 2025 Jared Tobin
LicenseMIT
MaintainerJared Tobin <jared@ppad.tech>
Safe HaskellSafe-Inferred
LanguageHaskell2010

Lightning.Protocol.BOLT7.Types

Description

Core types for BOLT #7 routing gossip.

Synopsis

Identifiers

data ChainHash Source #

Chain hash identifying the blockchain (32 bytes).

Instances

Instances details
NFData ChainHash Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: ChainHash -> () #

Generic ChainHash Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep ChainHash 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChainHash = D1 ('MetaData "ChainHash" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ChainHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "getChainHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ChainHash Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq ChainHash Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChainHash Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChainHash = D1 ('MetaData "ChainHash" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ChainHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "getChainHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

chainHash :: ByteString -> Maybe ChainHash Source #

Smart constructor for ChainHash. Returns Nothing if not 32 bytes.

mainnetChainHash :: ChainHash Source #

Bitcoin mainnet chain hash (genesis block hash, little-endian).

This is the double-SHA256 of the mainnet genesis block header, reversed to little-endian byte order as used in the protocol.

data ShortChannelId Source #

Short channel ID (8 bytes): block height (3) + tx index (3) + output (2).

Instances

Instances details
NFData ShortChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: ShortChannelId -> () #

Generic ShortChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep ShortChannelId 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ShortChannelId = D1 ('MetaData "ShortChannelId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ShortChannelId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getShortChannelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ShortChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq ShortChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ShortChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ShortChannelId = D1 ('MetaData "ShortChannelId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ShortChannelId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getShortChannelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

shortChannelId :: ByteString -> Maybe ShortChannelId Source #

Smart constructor for ShortChannelId. Returns Nothing if not 8 bytes.

mkShortChannelId Source #

Arguments

:: Word32

Block height (24 bits)

-> Word32

Transaction index (24 bits)

-> Word16

Output index

-> ShortChannelId 

Construct ShortChannelId from components.

Block height and tx index are truncated to 24 bits.

>>> mkShortChannelId 539268 845 1
ShortChannelId {getShortChannelId = "\NUL\131\132\NUL\ETX-\NUL\SOH"}

scidBlockHeight :: ShortChannelId -> Word32 Source #

Extract block height from short channel ID (first 3 bytes, big-endian).

scidTxIndex :: ShortChannelId -> Word32 Source #

Extract transaction index from short channel ID (bytes 3-5, big-endian).

scidOutputIndex :: ShortChannelId -> Word16 Source #

Extract output index from short channel ID (last 2 bytes, big-endian).

formatScid :: ShortChannelId -> String Source #

Format short channel ID as human-readable string.

Uses the standard "block x tx x output" notation.

>>> formatScid (mkShortChannelId 539268 845 1)
"539268x845x1"

data ChannelId Source #

Channel ID (32 bytes).

Instances

Instances details
NFData ChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: ChannelId -> () #

Generic ChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep ChannelId 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelId = D1 ('MetaData "ChannelId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ChannelId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getChannelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show ChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq ChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelId = D1 ('MetaData "ChannelId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "ChannelId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getChannelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

channelId :: ByteString -> Maybe ChannelId Source #

Smart constructor for ChannelId. Returns Nothing if not 32 bytes.

Cryptographic types

data Signature Source #

Signature (64 bytes).

Instances

Instances details
NFData Signature Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: Signature -> () #

Generic Signature Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep Signature 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Signature = D1 ('MetaData "Signature" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Signature" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show Signature Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq Signature Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Signature Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Signature = D1 ('MetaData "Signature" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Signature" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

signature :: ByteString -> Maybe Signature Source #

Smart constructor for Signature. Returns Nothing if not 64 bytes.

data Point Source #

Compressed public key (33 bytes).

Instances

Instances details
NFData Point Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: Point -> () #

Generic Point Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep Point 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Point = D1 ('MetaData "Point" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Point" 'PrefixI 'True) (S1 ('MetaSel ('Just "getPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: Point -> Rep Point x #

to :: Rep Point x -> Point #

Show Point Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

showsPrec :: Int -> Point -> ShowS #

show :: Point -> String #

showList :: [Point] -> ShowS #

Eq Point Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

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

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

type Rep Point Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Point = D1 ('MetaData "Point" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Point" 'PrefixI 'True) (S1 ('MetaSel ('Just "getPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

point :: ByteString -> Maybe Point Source #

Smart constructor for Point. Returns Nothing if not 33 bytes.

data NodeId Source #

Node ID (33 bytes, same as compressed public key).

Has Ord instance for lexicographic comparison (required by spec for channel announcements where node_id_1 < node_id_2).

Instances

Instances details
NFData NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: NodeId -> () #

Generic NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep NodeId 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep NodeId = D1 ('MetaData "NodeId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "NodeId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNodeId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: NodeId -> Rep NodeId x #

to :: Rep NodeId x -> NodeId #

Show NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

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

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

Ord NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep NodeId Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep NodeId = D1 ('MetaData "NodeId" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "NodeId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNodeId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

nodeId :: ByteString -> Maybe NodeId Source #

Smart constructor for NodeId. Returns Nothing if not 33 bytes.

Node metadata

data RgbColor Source #

RGB color (3 bytes).

Instances

Instances details
NFData RgbColor Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: RgbColor -> () #

Generic RgbColor Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep RgbColor 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep RgbColor = D1 ('MetaData "RgbColor" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "RgbColor" 'PrefixI 'True) (S1 ('MetaSel ('Just "getRgbColor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: RgbColor -> Rep RgbColor x #

to :: Rep RgbColor x -> RgbColor #

Show RgbColor Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq RgbColor Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep RgbColor Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep RgbColor = D1 ('MetaData "RgbColor" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "RgbColor" 'PrefixI 'True) (S1 ('MetaSel ('Just "getRgbColor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

rgbColor :: ByteString -> Maybe RgbColor Source #

Smart constructor for RgbColor. Returns Nothing if not 3 bytes.

data Alias Source #

Node alias (32 bytes, UTF-8 padded with zero bytes).

Instances

Instances details
NFData Alias Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: Alias -> () #

Generic Alias Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep Alias 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Alias = D1 ('MetaData "Alias" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Alias" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlias") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: Alias -> Rep Alias x #

to :: Rep Alias x -> Alias #

Show Alias Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

showsPrec :: Int -> Alias -> ShowS #

show :: Alias -> String #

showList :: [Alias] -> ShowS #

Eq Alias Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

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

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

type Rep Alias Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep Alias = D1 ('MetaData "Alias" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "Alias" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAlias") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

alias :: ByteString -> Maybe Alias Source #

Smart constructor for Alias. Returns Nothing if not 32 bytes.

type Timestamp = Word32 Source #

Timestamp (Unix epoch seconds).

data FeatureBits Source #

Feature bits (variable length).

Instances

Instances details
NFData FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: FeatureBits -> () #

Generic FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep FeatureBits 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeatureBits = D1 ('MetaData "FeatureBits" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeatureBits" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeatureBits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeatureBits Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeatureBits = D1 ('MetaData "FeatureBits" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeatureBits" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeatureBits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

featureBits :: ByteString -> FeatureBits Source #

Smart constructor for FeatureBits (any length).

Address types

data Address Source #

Network address with port.

Constructors

AddrIPv4 !IPv4Addr !Word16

IPv4 address + port

AddrIPv6 !IPv6Addr !Word16

IPv6 address + port

AddrTorV3 !TorV3Addr !Word16

Tor v3 address + port

AddrDNS !ByteString !Word16

DNS hostname + port

Instances

Instances details
NFData Address Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: Address -> () #

Generic Address Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

from :: Address -> Rep Address x #

to :: Rep Address x -> Address #

Show Address Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq Address Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

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

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

type Rep Address Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

data IPv4Addr Source #

IPv4 address (4 bytes).

Instances

Instances details
NFData IPv4Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: IPv4Addr -> () #

Generic IPv4Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep IPv4Addr 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv4Addr = D1 ('MetaData "IPv4Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "IPv4Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getIPv4Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: IPv4Addr -> Rep IPv4Addr x #

to :: Rep IPv4Addr x -> IPv4Addr #

Show IPv4Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq IPv4Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv4Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv4Addr = D1 ('MetaData "IPv4Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "IPv4Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getIPv4Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

ipv4Addr :: ByteString -> Maybe IPv4Addr Source #

Smart constructor for IPv4Addr. Returns Nothing if not 4 bytes.

data IPv6Addr Source #

IPv6 address (16 bytes).

Instances

Instances details
NFData IPv6Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: IPv6Addr -> () #

Generic IPv6Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep IPv6Addr 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv6Addr = D1 ('MetaData "IPv6Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "IPv6Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getIPv6Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

Methods

from :: IPv6Addr -> Rep IPv6Addr x #

to :: Rep IPv6Addr x -> IPv6Addr #

Show IPv6Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq IPv6Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv6Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep IPv6Addr = D1 ('MetaData "IPv6Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "IPv6Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getIPv6Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

ipv6Addr :: ByteString -> Maybe IPv6Addr Source #

Smart constructor for IPv6Addr. Returns Nothing if not 16 bytes.

data TorV3Addr Source #

Tor v3 onion address (35 bytes: 32 pubkey + 2 checksum + 1 version).

Instances

Instances details
NFData TorV3Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: TorV3Addr -> () #

Generic TorV3Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep TorV3Addr 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep TorV3Addr = D1 ('MetaData "TorV3Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "TorV3Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTorV3Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))
Show TorV3Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq TorV3Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep TorV3Addr Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep TorV3Addr = D1 ('MetaData "TorV3Addr" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "TorV3Addr" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTorV3Addr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)))

torV3Addr :: ByteString -> Maybe TorV3Addr Source #

Smart constructor for TorV3Addr. Returns Nothing if not 35 bytes.

Channel update flags

data MessageFlags Source #

Message flags for channel_update.

Bit 0: htlc_maximum_msat field is present.

Constructors

MessageFlags 

Fields

Instances

Instances details
NFData MessageFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: MessageFlags -> () #

Generic MessageFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep MessageFlags 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep MessageFlags = D1 ('MetaData "MessageFlags" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'False) (C1 ('MetaCons "MessageFlags" 'PrefixI 'True) (S1 ('MetaSel ('Just "mfHtlcMaxPresent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))
Show MessageFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq MessageFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep MessageFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep MessageFlags = D1 ('MetaData "MessageFlags" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'False) (C1 ('MetaCons "MessageFlags" 'PrefixI 'True) (S1 ('MetaSel ('Just "mfHtlcMaxPresent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))

encodeMessageFlags :: MessageFlags -> Word8 Source #

Encode MessageFlags to Word8.

decodeMessageFlags :: Word8 -> MessageFlags Source #

Decode Word8 to MessageFlags.

data ChannelFlags Source #

Channel flags for channel_update.

Bit 0: direction (0 = node_id_1 is origin, 1 = node_id_2 is origin). Bit 1: disabled (1 = channel disabled).

Constructors

ChannelFlags 

Fields

Instances

Instances details
NFData ChannelFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: ChannelFlags -> () #

Generic ChannelFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep ChannelFlags 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelFlags = D1 ('MetaData "ChannelFlags" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'False) (C1 ('MetaCons "ChannelFlags" 'PrefixI 'True) (S1 ('MetaSel ('Just "cfDirection") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "cfDisabled") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))
Show ChannelFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq ChannelFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelFlags Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep ChannelFlags = D1 ('MetaData "ChannelFlags" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'False) (C1 ('MetaCons "ChannelFlags" 'PrefixI 'True) (S1 ('MetaSel ('Just "cfDirection") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "cfDisabled") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))

encodeChannelFlags :: ChannelFlags -> Word8 Source #

Encode ChannelFlags to Word8.

decodeChannelFlags :: Word8 -> ChannelFlags Source #

Decode Word8 to ChannelFlags.

Routing parameters

newtype CltvExpiryDelta Source #

CLTV expiry delta.

Constructors

CltvExpiryDelta 

Instances

Instances details
NFData CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: CltvExpiryDelta -> () #

Generic CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep CltvExpiryDelta 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep CltvExpiryDelta = D1 ('MetaData "CltvExpiryDelta" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "CltvExpiryDelta" 'PrefixI 'True) (S1 ('MetaSel ('Just "getCltvExpiryDelta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Show CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Ord CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep CltvExpiryDelta Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep CltvExpiryDelta = D1 ('MetaData "CltvExpiryDelta" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "CltvExpiryDelta" 'PrefixI 'True) (S1 ('MetaSel ('Just "getCltvExpiryDelta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

newtype FeeBaseMsat Source #

Base fee in millisatoshis.

Constructors

FeeBaseMsat 

Instances

Instances details
NFData FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: FeeBaseMsat -> () #

Generic FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep FeeBaseMsat 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeBaseMsat = D1 ('MetaData "FeeBaseMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeeBaseMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeeBaseMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))
Show FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Ord FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeBaseMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeBaseMsat = D1 ('MetaData "FeeBaseMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeeBaseMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeeBaseMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

newtype FeeProportionalMillionths Source #

Proportional fee in millionths.

Instances

Instances details
NFData FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Generic FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep FeeProportionalMillionths 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeProportionalMillionths = D1 ('MetaData "FeeProportionalMillionths" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeeProportionalMillionths" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeeProportionalMillionths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))
Show FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Ord FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeProportionalMillionths Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep FeeProportionalMillionths = D1 ('MetaData "FeeProportionalMillionths" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "FeeProportionalMillionths" 'PrefixI 'True) (S1 ('MetaSel ('Just "getFeeProportionalMillionths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

newtype HtlcMinimumMsat Source #

Minimum HTLC value in millisatoshis.

Constructors

HtlcMinimumMsat 

Instances

Instances details
NFData HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: HtlcMinimumMsat -> () #

Generic HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep HtlcMinimumMsat 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMinimumMsat = D1 ('MetaData "HtlcMinimumMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "HtlcMinimumMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHtlcMinimumMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
Show HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Ord HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMinimumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMinimumMsat = D1 ('MetaData "HtlcMinimumMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "HtlcMinimumMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHtlcMinimumMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

newtype HtlcMaximumMsat Source #

Maximum HTLC value in millisatoshis.

Constructors

HtlcMaximumMsat 

Instances

Instances details
NFData HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Methods

rnf :: HtlcMaximumMsat -> () #

Generic HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Associated Types

type Rep HtlcMaximumMsat 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMaximumMsat = D1 ('MetaData "HtlcMaximumMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "HtlcMaximumMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHtlcMaximumMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
Show HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Eq HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

Ord HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMaximumMsat Source # 
Instance details

Defined in Lightning.Protocol.BOLT7.Types

type Rep HtlcMaximumMsat = D1 ('MetaData "HtlcMaximumMsat" "Lightning.Protocol.BOLT7.Types" "ppad-bolt7-0.0.1-9AmpjHUse7iEtxOkiaMheY" 'True) (C1 ('MetaCons "HtlcMaximumMsat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHtlcMaximumMsat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

Constants

chainHashLen :: Int Source #

Length of a chain hash (32 bytes).

shortChannelIdLen :: Int Source #

Length of a short channel ID (8 bytes).

channelIdLen :: Int Source #

Length of a channel ID (32 bytes).

signatureLen :: Int Source #

Length of a signature (64 bytes).

pointLen :: Int Source #

Length of a compressed public key (33 bytes).

nodeIdLen :: Int Source #

Length of a node ID (33 bytes, same as compressed public key).

rgbColorLen :: Int Source #

Length of RGB color (3 bytes).

aliasLen :: Int Source #

Length of node alias (32 bytes).

ipv4AddrLen :: Int Source #

Length of IPv4 address (4 bytes).

ipv6AddrLen :: Int Source #

Length of IPv6 address (16 bytes).

torV3AddrLen :: Int Source #

Length of Tor v3 address (35 bytes).