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

Lightning.Protocol.BOLT7.Types

Description

Core types for BOLT #7 routing gossip.

Synopsis

Identifiers (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.

mainnetChainHash :: ChainHash Source #

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

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.

scidWord64 :: ShortChannelId -> Word64 Source #

Extract the packed Word64 from a ShortChannelId.

scidFromBytes :: ByteString -> Maybe ShortChannelId Source #

Parse ShortChannelId from 8 big-endian bytes.

scidToBytes :: ShortChannelId -> ByteString Source #

Encode ShortChannelId as 8 big-endian bytes.

formatScid :: ShortChannelId -> String Source #

Format short channel ID as human-readable string.

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.

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.

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).