packages feed

lnd-client-0.1.0.1: src/Proto/Lnrpc/Ln0.hs

{- This file was auto-generated from lnrpc/ln0.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies, DeriveGeneric#-}
{-# OPTIONS_GHC -Wno-unused-imports#-}
{-# OPTIONS_GHC -Wno-duplicate-exports#-}
{-# OPTIONS_GHC -Wno-dodgy-exports#-}
module Proto.Lnrpc.Ln0 (
        AMPRecord(), Amount(), ChanInfoRequest(), ChanPointShim(),
        Channel(), ChannelBalanceRequest(), ChannelBalanceResponse(),
        ChannelCloseSummary(), ChannelCloseSummary'ClosureType(..),
        ChannelCloseSummary'ClosureType(),
        ChannelCloseSummary'ClosureType'UnrecognizedValue,
        ChannelConstraints(), ChannelEdge(), ChannelEdgeUpdate(),
        ChannelEventSubscription(), ChannelEventUpdate(),
        ChannelEventUpdate'Channel(..), _ChannelEventUpdate'OpenChannel,
        _ChannelEventUpdate'ClosedChannel,
        _ChannelEventUpdate'ActiveChannel,
        _ChannelEventUpdate'InactiveChannel,
        _ChannelEventUpdate'PendingOpenChannel,
        _ChannelEventUpdate'FullyResolvedChannel,
        ChannelEventUpdate'UpdateType(..), ChannelEventUpdate'UpdateType(),
        ChannelEventUpdate'UpdateType'UnrecognizedValue, ChannelGraph(),
        ChannelGraphRequest(), ChannelPoint(),
        ChannelPoint'FundingTxid(..), _ChannelPoint'FundingTxidBytes,
        _ChannelPoint'FundingTxidStr, ClosedChannelUpdate(),
        CommitmentType(..), CommitmentType(),
        CommitmentType'UnrecognizedValue, EdgeLocator(), Feature(),
        FeatureBit(..), FeatureBit(), FeatureBit'UnrecognizedValue,
        FeeLimit(), FeeLimit'Limit(..), _FeeLimit'Fixed,
        _FeeLimit'FixedMsat, _FeeLimit'Percent, FloatMetric(),
        FundingPsbtFinalize(), FundingPsbtVerify(), FundingShim(),
        FundingShim'Shim(..), _FundingShim'ChanPointShim,
        _FundingShim'PsbtShim, FundingShimCancel(), FundingStateStepResp(),
        FundingTransitionMsg(), FundingTransitionMsg'Trigger(..),
        _FundingTransitionMsg'ShimRegister,
        _FundingTransitionMsg'ShimCancel, _FundingTransitionMsg'PsbtVerify,
        _FundingTransitionMsg'PsbtFinalize, GraphTopologySubscription(),
        GraphTopologyUpdate(), HTLC(), Hop(), Hop'CustomRecordsEntry(),
        HopHint(), Initiator(..), Initiator(), Initiator'UnrecognizedValue,
        KeyDescriptor(), KeyLocator(), LightningNode(),
        LightningNode'FeaturesEntry(), MPPRecord(), NetworkInfo(),
        NetworkInfoRequest(), NodeAddress(), NodeInfo(), NodeInfoRequest(),
        NodeMetricType(..), NodeMetricType(),
        NodeMetricType'UnrecognizedValue, NodeMetricsRequest(),
        NodeMetricsResponse(),
        NodeMetricsResponse'BetweennessCentralityEntry(), NodePair(),
        NodeUpdate(), NodeUpdate'FeaturesEntry(), OutPoint(),
        PendingChannelsRequest(), PendingChannelsResponse(),
        PendingChannelsResponse'ClosedChannel(),
        PendingChannelsResponse'Commitments(),
        PendingChannelsResponse'ForceClosedChannel(),
        PendingChannelsResponse'ForceClosedChannel'AnchorState(..),
        PendingChannelsResponse'ForceClosedChannel'AnchorState(),
        PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue,
        PendingChannelsResponse'PendingChannel(),
        PendingChannelsResponse'PendingOpenChannel(),
        PendingChannelsResponse'WaitingCloseChannel(), PendingHTLC(),
        PendingUpdate(), PsbtShim(), QueryRoutesRequest(),
        QueryRoutesRequest'DestCustomRecordsEntry(), QueryRoutesResponse(),
        Resolution(), ResolutionOutcome(..), ResolutionOutcome(),
        ResolutionOutcome'UnrecognizedValue, ResolutionType(..),
        ResolutionType(), ResolutionType'UnrecognizedValue, Route(),
        RouteHint(), RoutingPolicy(), StopRequest(), StopResponse(),
        WalletAccountBalance(), WalletBalanceRequest(),
        WalletBalanceResponse(),
        WalletBalanceResponse'AccountBalanceEntry()
    ) where
import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism
import qualified Text.PrettyPrint.GenericPretty.Instance
import qualified GHC.Generics
import qualified Text.PrettyPrint.GenericPretty
import qualified Data.ProtoLens.Runtime.Prelude as Prelude
import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int
import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid
import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word
import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum
import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types
import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2
import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked
import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text
import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map
import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString
import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8
import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding
import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector
import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic
import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed
import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.rootShare' @:: Lens' AMPRecord Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.setId' @:: Lens' AMPRecord Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.childIndex' @:: Lens' AMPRecord Data.Word.Word32@ -}
data AMPRecord
  = AMPRecord'_constructor {_AMPRecord'rootShare :: !Data.ByteString.ByteString,
                            _AMPRecord'setId :: !Data.ByteString.ByteString,
                            _AMPRecord'childIndex :: !Data.Word.Word32,
                            _AMPRecord'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show AMPRecord where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out AMPRecord
instance Data.ProtoLens.Field.HasField AMPRecord "rootShare" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMPRecord'rootShare
           (\ x__ y__ -> x__ {_AMPRecord'rootShare = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMPRecord "setId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMPRecord'setId (\ x__ y__ -> x__ {_AMPRecord'setId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMPRecord "childIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMPRecord'childIndex
           (\ x__ y__ -> x__ {_AMPRecord'childIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message AMPRecord where
  messageName _ = Data.Text.pack "lnrpc.AMPRecord"
  packedMessageDescriptor _
    = "\n\
      \\tAMPRecord\DC2\GS\n\
      \\n\
      \root_share\CAN\SOH \SOH(\fR\trootShare\DC2\NAK\n\
      \\ACKset_id\CAN\STX \SOH(\fR\ENQsetId\DC2\US\n\
      \\vchild_index\CAN\ETX \SOH(\rR\n\
      \childIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rootShare__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "root_share"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rootShare")) ::
              Data.ProtoLens.FieldDescriptor AMPRecord
        setId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "set_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"setId")) ::
              Data.ProtoLens.FieldDescriptor AMPRecord
        childIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "child_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"childIndex")) ::
              Data.ProtoLens.FieldDescriptor AMPRecord
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rootShare__field_descriptor),
           (Data.ProtoLens.Tag 2, setId__field_descriptor),
           (Data.ProtoLens.Tag 3, childIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _AMPRecord'_unknownFields
        (\ x__ y__ -> x__ {_AMPRecord'_unknownFields = y__})
  defMessage
    = AMPRecord'_constructor
        {_AMPRecord'rootShare = Data.ProtoLens.fieldDefault,
         _AMPRecord'setId = Data.ProtoLens.fieldDefault,
         _AMPRecord'childIndex = Data.ProtoLens.fieldDefault,
         _AMPRecord'_unknownFields = []}
  parseMessage
    = let
        loop :: AMPRecord -> Data.ProtoLens.Encoding.Bytes.Parser AMPRecord
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "root_share"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rootShare") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "set_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"setId") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "child_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"childIndex") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "AMPRecord"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"rootShare") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"setId") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"childIndex") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData AMPRecord where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_AMPRecord'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_AMPRecord'rootShare x__)
                (Control.DeepSeq.deepseq
                   (_AMPRecord'setId x__)
                   (Control.DeepSeq.deepseq (_AMPRecord'childIndex x__) ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.sat' @:: Lens' Amount Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.msat' @:: Lens' Amount Data.Word.Word64@ -}
data Amount
  = Amount'_constructor {_Amount'sat :: !Data.Word.Word64,
                         _Amount'msat :: !Data.Word.Word64,
                         _Amount'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Amount where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Amount
instance Data.ProtoLens.Field.HasField Amount "sat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Amount'sat (\ x__ y__ -> x__ {_Amount'sat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Amount "msat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Amount'msat (\ x__ y__ -> x__ {_Amount'msat = y__}))
        Prelude.id
instance Data.ProtoLens.Message Amount where
  messageName _ = Data.Text.pack "lnrpc.Amount"
  packedMessageDescriptor _
    = "\n\
      \\ACKAmount\DC2\DLE\n\
      \\ETXsat\CAN\SOH \SOH(\EOTR\ETXsat\DC2\DC2\n\
      \\EOTmsat\CAN\STX \SOH(\EOTR\EOTmsat"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        sat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"sat")) ::
              Data.ProtoLens.FieldDescriptor Amount
        msat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"msat")) ::
              Data.ProtoLens.FieldDescriptor Amount
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, sat__field_descriptor),
           (Data.ProtoLens.Tag 2, msat__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Amount'_unknownFields
        (\ x__ y__ -> x__ {_Amount'_unknownFields = y__})
  defMessage
    = Amount'_constructor
        {_Amount'sat = Data.ProtoLens.fieldDefault,
         _Amount'msat = Data.ProtoLens.fieldDefault,
         _Amount'_unknownFields = []}
  parseMessage
    = let
        loop :: Amount -> Data.ProtoLens.Encoding.Bytes.Parser Amount
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "sat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"sat") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "msat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"msat") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "Amount"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"sat") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"msat") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData Amount where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Amount'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Amount'sat x__) (Control.DeepSeq.deepseq (_Amount'msat x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' ChanInfoRequest Data.Word.Word64@ -}
data ChanInfoRequest
  = ChanInfoRequest'_constructor {_ChanInfoRequest'chanId :: !Data.Word.Word64,
                                  _ChanInfoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChanInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChanInfoRequest
instance Data.ProtoLens.Field.HasField ChanInfoRequest "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanInfoRequest'chanId
           (\ x__ y__ -> x__ {_ChanInfoRequest'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChanInfoRequest where
  messageName _ = Data.Text.pack "lnrpc.ChanInfoRequest"
  packedMessageDescriptor _
    = "\n\
      \\SIChanInfoRequest\DC2\ESC\n\
      \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor ChanInfoRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanId__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChanInfoRequest'_unknownFields
        (\ x__ y__ -> x__ {_ChanInfoRequest'_unknownFields = y__})
  defMessage
    = ChanInfoRequest'_constructor
        {_ChanInfoRequest'chanId = Data.ProtoLens.fieldDefault,
         _ChanInfoRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChanInfoRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ChanInfoRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChanInfoRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ChanInfoRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChanInfoRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ChanInfoRequest'chanId x__) ())
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.amt' @:: Lens' ChanPointShim Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.chanPoint' @:: Lens' ChanPointShim ChannelPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'chanPoint' @:: Lens' ChanPointShim (Prelude.Maybe ChannelPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.localKey' @:: Lens' ChanPointShim KeyDescriptor@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'localKey' @:: Lens' ChanPointShim (Prelude.Maybe KeyDescriptor)@
         * 'Proto.Lnrpc.Ln0_Fields.remoteKey' @:: Lens' ChanPointShim Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.pendingChanId' @:: Lens' ChanPointShim Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.thawHeight' @:: Lens' ChanPointShim Data.Word.Word32@ -}
data ChanPointShim
  = ChanPointShim'_constructor {_ChanPointShim'amt :: !Data.Int.Int64,
                                _ChanPointShim'chanPoint :: !(Prelude.Maybe ChannelPoint),
                                _ChanPointShim'localKey :: !(Prelude.Maybe KeyDescriptor),
                                _ChanPointShim'remoteKey :: !Data.ByteString.ByteString,
                                _ChanPointShim'pendingChanId :: !Data.ByteString.ByteString,
                                _ChanPointShim'thawHeight :: !Data.Word.Word32,
                                _ChanPointShim'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChanPointShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChanPointShim
instance Data.ProtoLens.Field.HasField ChanPointShim "amt" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'amt (\ x__ y__ -> x__ {_ChanPointShim'amt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanPointShim "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'chanPoint
           (\ x__ y__ -> x__ {_ChanPointShim'chanPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChanPointShim "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'chanPoint
           (\ x__ y__ -> x__ {_ChanPointShim'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanPointShim "localKey" KeyDescriptor where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'localKey
           (\ x__ y__ -> x__ {_ChanPointShim'localKey = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChanPointShim "maybe'localKey" (Prelude.Maybe KeyDescriptor) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'localKey
           (\ x__ y__ -> x__ {_ChanPointShim'localKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanPointShim "remoteKey" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'remoteKey
           (\ x__ y__ -> x__ {_ChanPointShim'remoteKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanPointShim "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'pendingChanId
           (\ x__ y__ -> x__ {_ChanPointShim'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanPointShim "thawHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanPointShim'thawHeight
           (\ x__ y__ -> x__ {_ChanPointShim'thawHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChanPointShim where
  messageName _ = Data.Text.pack "lnrpc.ChanPointShim"
  packedMessageDescriptor _
    = "\n\
      \\rChanPointShim\DC2\DLE\n\
      \\ETXamt\CAN\SOH \SOH(\ETXR\ETXamt\DC22\n\
      \\n\
      \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC21\n\
      \\tlocal_key\CAN\ETX \SOH(\v2\DC4.lnrpc.KeyDescriptorR\blocalKey\DC2\GS\n\
      \\n\
      \remote_key\CAN\EOT \SOH(\fR\tremoteKey\DC2&\n\
      \\SIpending_chan_id\CAN\ENQ \SOH(\fR\rpendingChanId\DC2\US\n\
      \\vthaw_height\CAN\ACK \SOH(\rR\n\
      \thawHeight"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        amt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amt")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
        chanPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanPoint")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
        localKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_key"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor KeyDescriptor)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'localKey")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
        remoteKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteKey")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
        pendingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingChanId")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
        thawHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "thaw_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"thawHeight")) ::
              Data.ProtoLens.FieldDescriptor ChanPointShim
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, amt__field_descriptor),
           (Data.ProtoLens.Tag 2, chanPoint__field_descriptor),
           (Data.ProtoLens.Tag 3, localKey__field_descriptor),
           (Data.ProtoLens.Tag 4, remoteKey__field_descriptor),
           (Data.ProtoLens.Tag 5, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 6, thawHeight__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChanPointShim'_unknownFields
        (\ x__ y__ -> x__ {_ChanPointShim'_unknownFields = y__})
  defMessage
    = ChanPointShim'_constructor
        {_ChanPointShim'amt = Data.ProtoLens.fieldDefault,
         _ChanPointShim'chanPoint = Prelude.Nothing,
         _ChanPointShim'localKey = Prelude.Nothing,
         _ChanPointShim'remoteKey = Data.ProtoLens.fieldDefault,
         _ChanPointShim'pendingChanId = Data.ProtoLens.fieldDefault,
         _ChanPointShim'thawHeight = Data.ProtoLens.fieldDefault,
         _ChanPointShim'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChanPointShim -> Data.ProtoLens.Encoding.Bytes.Parser ChanPointShim
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amt") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "chan_point"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPoint") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "local_key"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"localKey") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "remote_key"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"remoteKey") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "pending_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingChanId") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "thaw_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"thawHeight") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChanPointShim"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amt") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view
                       (Data.ProtoLens.Field.field @"maybe'chanPoint") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                ((Data.Monoid.<>)
                   (case
                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'localKey") _x
                    of
                      Prelude.Nothing -> Data.Monoid.mempty
                      (Prelude.Just _v)
                        -> (Data.Monoid.<>)
                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                             ((Prelude..)
                                (\ bs
                                   -> (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                           (Prelude.fromIntegral (Data.ByteString.length bs)))
                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                Data.ProtoLens.encodeMessage _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"remoteKey") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                               ((\ bs
                                   -> (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                           (Prelude.fromIntegral (Data.ByteString.length bs)))
                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                  _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"pendingChanId") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((\ bs
                                      -> (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view (Data.ProtoLens.Field.field @"thawHeight") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData ChanPointShim where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChanPointShim'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChanPointShim'amt x__)
                (Control.DeepSeq.deepseq
                   (_ChanPointShim'chanPoint x__)
                   (Control.DeepSeq.deepseq
                      (_ChanPointShim'localKey x__)
                      (Control.DeepSeq.deepseq
                         (_ChanPointShim'remoteKey x__)
                         (Control.DeepSeq.deepseq
                            (_ChanPointShim'pendingChanId x__)
                            (Control.DeepSeq.deepseq (_ChanPointShim'thawHeight x__) ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.active' @:: Lens' Channel Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.remotePubkey' @:: Lens' Channel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.channelPoint' @:: Lens' Channel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.localBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.remoteBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.commitFee' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.commitWeight' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.feePerKw' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.unsettledBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.totalSatoshisSent' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.totalSatoshisReceived' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.numUpdates' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.pendingHtlcs' @:: Lens' Channel [HTLC]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'pendingHtlcs' @:: Lens' Channel (Data.Vector.Vector HTLC)@
         * 'Proto.Lnrpc.Ln0_Fields.csvDelay' @:: Lens' Channel Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.private' @:: Lens' Channel Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.initiator' @:: Lens' Channel Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.chanStatusFlags' @:: Lens' Channel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.localChanReserveSat' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.remoteChanReserveSat' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.staticRemoteKey' @:: Lens' Channel Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.commitmentType' @:: Lens' Channel CommitmentType@
         * 'Proto.Lnrpc.Ln0_Fields.lifetime' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.uptime' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.closeAddress' @:: Lens' Channel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.pushAmountSat' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.thawHeight' @:: Lens' Channel Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.localConstraints' @:: Lens' Channel ChannelConstraints@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'localConstraints' @:: Lens' Channel (Prelude.Maybe ChannelConstraints)@
         * 'Proto.Lnrpc.Ln0_Fields.remoteConstraints' @:: Lens' Channel ChannelConstraints@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'remoteConstraints' @:: Lens' Channel (Prelude.Maybe ChannelConstraints)@ -}
data Channel
  = Channel'_constructor {_Channel'active :: !Prelude.Bool,
                          _Channel'remotePubkey :: !Data.Text.Text,
                          _Channel'channelPoint :: !Data.Text.Text,
                          _Channel'chanId :: !Data.Word.Word64,
                          _Channel'capacity :: !Data.Int.Int64,
                          _Channel'localBalance :: !Data.Int.Int64,
                          _Channel'remoteBalance :: !Data.Int.Int64,
                          _Channel'commitFee :: !Data.Int.Int64,
                          _Channel'commitWeight :: !Data.Int.Int64,
                          _Channel'feePerKw :: !Data.Int.Int64,
                          _Channel'unsettledBalance :: !Data.Int.Int64,
                          _Channel'totalSatoshisSent :: !Data.Int.Int64,
                          _Channel'totalSatoshisReceived :: !Data.Int.Int64,
                          _Channel'numUpdates :: !Data.Word.Word64,
                          _Channel'pendingHtlcs :: !(Data.Vector.Vector HTLC),
                          _Channel'csvDelay :: !Data.Word.Word32,
                          _Channel'private :: !Prelude.Bool,
                          _Channel'initiator :: !Prelude.Bool,
                          _Channel'chanStatusFlags :: !Data.Text.Text,
                          _Channel'localChanReserveSat :: !Data.Int.Int64,
                          _Channel'remoteChanReserveSat :: !Data.Int.Int64,
                          _Channel'staticRemoteKey :: !Prelude.Bool,
                          _Channel'commitmentType :: !CommitmentType,
                          _Channel'lifetime :: !Data.Int.Int64,
                          _Channel'uptime :: !Data.Int.Int64,
                          _Channel'closeAddress :: !Data.Text.Text,
                          _Channel'pushAmountSat :: !Data.Word.Word64,
                          _Channel'thawHeight :: !Data.Word.Word32,
                          _Channel'localConstraints :: !(Prelude.Maybe ChannelConstraints),
                          _Channel'remoteConstraints :: !(Prelude.Maybe ChannelConstraints),
                          _Channel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Channel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Channel
instance Data.ProtoLens.Field.HasField Channel "active" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'active (\ x__ y__ -> x__ {_Channel'active = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "remotePubkey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'remotePubkey
           (\ x__ y__ -> x__ {_Channel'remotePubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "channelPoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'channelPoint
           (\ x__ y__ -> x__ {_Channel'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'chanId (\ x__ y__ -> x__ {_Channel'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'capacity (\ x__ y__ -> x__ {_Channel'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "localBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'localBalance
           (\ x__ y__ -> x__ {_Channel'localBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "remoteBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'remoteBalance
           (\ x__ y__ -> x__ {_Channel'remoteBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "commitFee" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'commitFee (\ x__ y__ -> x__ {_Channel'commitFee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "commitWeight" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'commitWeight
           (\ x__ y__ -> x__ {_Channel'commitWeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "feePerKw" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'feePerKw (\ x__ y__ -> x__ {_Channel'feePerKw = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "unsettledBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'unsettledBalance
           (\ x__ y__ -> x__ {_Channel'unsettledBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "totalSatoshisSent" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'totalSatoshisSent
           (\ x__ y__ -> x__ {_Channel'totalSatoshisSent = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "totalSatoshisReceived" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'totalSatoshisReceived
           (\ x__ y__ -> x__ {_Channel'totalSatoshisReceived = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "numUpdates" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'numUpdates (\ x__ y__ -> x__ {_Channel'numUpdates = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "pendingHtlcs" [HTLC] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'pendingHtlcs
           (\ x__ y__ -> x__ {_Channel'pendingHtlcs = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Channel "vec'pendingHtlcs" (Data.Vector.Vector HTLC) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'pendingHtlcs
           (\ x__ y__ -> x__ {_Channel'pendingHtlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "csvDelay" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'csvDelay (\ x__ y__ -> x__ {_Channel'csvDelay = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "private" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'private (\ x__ y__ -> x__ {_Channel'private = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "initiator" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'initiator (\ x__ y__ -> x__ {_Channel'initiator = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "chanStatusFlags" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'chanStatusFlags
           (\ x__ y__ -> x__ {_Channel'chanStatusFlags = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "localChanReserveSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'localChanReserveSat
           (\ x__ y__ -> x__ {_Channel'localChanReserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "remoteChanReserveSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'remoteChanReserveSat
           (\ x__ y__ -> x__ {_Channel'remoteChanReserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "staticRemoteKey" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'staticRemoteKey
           (\ x__ y__ -> x__ {_Channel'staticRemoteKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "commitmentType" CommitmentType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'commitmentType
           (\ x__ y__ -> x__ {_Channel'commitmentType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "lifetime" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'lifetime (\ x__ y__ -> x__ {_Channel'lifetime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "uptime" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'uptime (\ x__ y__ -> x__ {_Channel'uptime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "closeAddress" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'closeAddress
           (\ x__ y__ -> x__ {_Channel'closeAddress = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "pushAmountSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'pushAmountSat
           (\ x__ y__ -> x__ {_Channel'pushAmountSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "thawHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'thawHeight (\ x__ y__ -> x__ {_Channel'thawHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "localConstraints" ChannelConstraints where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'localConstraints
           (\ x__ y__ -> x__ {_Channel'localConstraints = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Channel "maybe'localConstraints" (Prelude.Maybe ChannelConstraints) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'localConstraints
           (\ x__ y__ -> x__ {_Channel'localConstraints = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Channel "remoteConstraints" ChannelConstraints where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'remoteConstraints
           (\ x__ y__ -> x__ {_Channel'remoteConstraints = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Channel "maybe'remoteConstraints" (Prelude.Maybe ChannelConstraints) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Channel'remoteConstraints
           (\ x__ y__ -> x__ {_Channel'remoteConstraints = y__}))
        Prelude.id
instance Data.ProtoLens.Message Channel where
  messageName _ = Data.Text.pack "lnrpc.Channel"
  packedMessageDescriptor _
    = "\n\
      \\aChannel\DC2\SYN\n\
      \\ACKactive\CAN\SOH \SOH(\bR\ACKactive\DC2#\n\
      \\rremote_pubkey\CAN\STX \SOH(\tR\fremotePubkey\DC2#\n\
      \\rchannel_point\CAN\ETX \SOH(\tR\fchannelPoint\DC2\ESC\n\
      \\achan_id\CAN\EOT \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\SUB\n\
      \\bcapacity\CAN\ENQ \SOH(\ETXR\bcapacity\DC2#\n\
      \\rlocal_balance\CAN\ACK \SOH(\ETXR\flocalBalance\DC2%\n\
      \\SOremote_balance\CAN\a \SOH(\ETXR\rremoteBalance\DC2\GS\n\
      \\n\
      \commit_fee\CAN\b \SOH(\ETXR\tcommitFee\DC2#\n\
      \\rcommit_weight\CAN\t \SOH(\ETXR\fcommitWeight\DC2\FS\n\
      \\n\
      \fee_per_kw\CAN\n\
      \ \SOH(\ETXR\bfeePerKw\DC2+\n\
      \\DC1unsettled_balance\CAN\v \SOH(\ETXR\DLEunsettledBalance\DC2.\n\
      \\DC3total_satoshis_sent\CAN\f \SOH(\ETXR\DC1totalSatoshisSent\DC26\n\
      \\ETBtotal_satoshis_received\CAN\r \SOH(\ETXR\NAKtotalSatoshisReceived\DC2\US\n\
      \\vnum_updates\CAN\SO \SOH(\EOTR\n\
      \numUpdates\DC20\n\
      \\rpending_htlcs\CAN\SI \ETX(\v2\v.lnrpc.HTLCR\fpendingHtlcs\DC2\US\n\
      \\tcsv_delay\CAN\DLE \SOH(\rR\bcsvDelayB\STX\CAN\SOH\DC2\CAN\n\
      \\aprivate\CAN\DC1 \SOH(\bR\aprivate\DC2\FS\n\
      \\tinitiator\CAN\DC2 \SOH(\bR\tinitiator\DC2*\n\
      \\DC1chan_status_flags\CAN\DC3 \SOH(\tR\SIchanStatusFlags\DC27\n\
      \\SYNlocal_chan_reserve_sat\CAN\DC4 \SOH(\ETXR\DC3localChanReserveSatB\STX\CAN\SOH\DC29\n\
      \\ETBremote_chan_reserve_sat\CAN\NAK \SOH(\ETXR\DC4remoteChanReserveSatB\STX\CAN\SOH\DC2.\n\
      \\DC1static_remote_key\CAN\SYN \SOH(\bR\SIstaticRemoteKeyB\STX\CAN\SOH\DC2>\n\
      \\SIcommitment_type\CAN\SUB \SOH(\SO2\NAK.lnrpc.CommitmentTypeR\SOcommitmentType\DC2\SUB\n\
      \\blifetime\CAN\ETB \SOH(\ETXR\blifetime\DC2\SYN\n\
      \\ACKuptime\CAN\CAN \SOH(\ETXR\ACKuptime\DC2#\n\
      \\rclose_address\CAN\EM \SOH(\tR\fcloseAddress\DC2&\n\
      \\SIpush_amount_sat\CAN\ESC \SOH(\EOTR\rpushAmountSat\DC2\US\n\
      \\vthaw_height\CAN\FS \SOH(\rR\n\
      \thawHeight\DC2F\n\
      \\DC1local_constraints\CAN\GS \SOH(\v2\EM.lnrpc.ChannelConstraintsR\DLElocalConstraints\DC2H\n\
      \\DC2remote_constraints\CAN\RS \SOH(\v2\EM.lnrpc.ChannelConstraintsR\DC1remoteConstraints"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        active__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "active"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"active")) ::
              Data.ProtoLens.FieldDescriptor Channel
        remotePubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remotePubkey")) ::
              Data.ProtoLens.FieldDescriptor Channel
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelPoint")) ::
              Data.ProtoLens.FieldDescriptor Channel
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor Channel
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor Channel
        localBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localBalance")) ::
              Data.ProtoLens.FieldDescriptor Channel
        remoteBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteBalance")) ::
              Data.ProtoLens.FieldDescriptor Channel
        commitFee__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commit_fee"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitFee")) ::
              Data.ProtoLens.FieldDescriptor Channel
        commitWeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commit_weight"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitWeight")) ::
              Data.ProtoLens.FieldDescriptor Channel
        feePerKw__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_per_kw"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feePerKw")) ::
              Data.ProtoLens.FieldDescriptor Channel
        unsettledBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "unsettled_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"unsettledBalance")) ::
              Data.ProtoLens.FieldDescriptor Channel
        totalSatoshisSent__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_satoshis_sent"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalSatoshisSent")) ::
              Data.ProtoLens.FieldDescriptor Channel
        totalSatoshisReceived__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_satoshis_received"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalSatoshisReceived")) ::
              Data.ProtoLens.FieldDescriptor Channel
        numUpdates__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_updates"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numUpdates")) ::
              Data.ProtoLens.FieldDescriptor Channel
        pendingHtlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_htlcs"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor HTLC)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"pendingHtlcs")) ::
              Data.ProtoLens.FieldDescriptor Channel
        csvDelay__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "csv_delay"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"csvDelay")) ::
              Data.ProtoLens.FieldDescriptor Channel
        private__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "private"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"private")) ::
              Data.ProtoLens.FieldDescriptor Channel
        initiator__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "initiator"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"initiator")) ::
              Data.ProtoLens.FieldDescriptor Channel
        chanStatusFlags__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_status_flags"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanStatusFlags")) ::
              Data.ProtoLens.FieldDescriptor Channel
        localChanReserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_chan_reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localChanReserveSat")) ::
              Data.ProtoLens.FieldDescriptor Channel
        remoteChanReserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_chan_reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteChanReserveSat")) ::
              Data.ProtoLens.FieldDescriptor Channel
        staticRemoteKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "static_remote_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"staticRemoteKey")) ::
              Data.ProtoLens.FieldDescriptor Channel
        commitmentType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commitment_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor CommitmentType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitmentType")) ::
              Data.ProtoLens.FieldDescriptor Channel
        lifetime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "lifetime"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lifetime")) ::
              Data.ProtoLens.FieldDescriptor Channel
        uptime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "uptime"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"uptime")) ::
              Data.ProtoLens.FieldDescriptor Channel
        closeAddress__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "close_address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closeAddress")) ::
              Data.ProtoLens.FieldDescriptor Channel
        pushAmountSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "push_amount_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pushAmountSat")) ::
              Data.ProtoLens.FieldDescriptor Channel
        thawHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "thaw_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"thawHeight")) ::
              Data.ProtoLens.FieldDescriptor Channel
        localConstraints__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_constraints"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelConstraints)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'localConstraints")) ::
              Data.ProtoLens.FieldDescriptor Channel
        remoteConstraints__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_constraints"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelConstraints)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'remoteConstraints")) ::
              Data.ProtoLens.FieldDescriptor Channel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, active__field_descriptor),
           (Data.ProtoLens.Tag 2, remotePubkey__field_descriptor),
           (Data.ProtoLens.Tag 3, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 4, chanId__field_descriptor),
           (Data.ProtoLens.Tag 5, capacity__field_descriptor),
           (Data.ProtoLens.Tag 6, localBalance__field_descriptor),
           (Data.ProtoLens.Tag 7, remoteBalance__field_descriptor),
           (Data.ProtoLens.Tag 8, commitFee__field_descriptor),
           (Data.ProtoLens.Tag 9, commitWeight__field_descriptor),
           (Data.ProtoLens.Tag 10, feePerKw__field_descriptor),
           (Data.ProtoLens.Tag 11, unsettledBalance__field_descriptor),
           (Data.ProtoLens.Tag 12, totalSatoshisSent__field_descriptor),
           (Data.ProtoLens.Tag 13, totalSatoshisReceived__field_descriptor),
           (Data.ProtoLens.Tag 14, numUpdates__field_descriptor),
           (Data.ProtoLens.Tag 15, pendingHtlcs__field_descriptor),
           (Data.ProtoLens.Tag 16, csvDelay__field_descriptor),
           (Data.ProtoLens.Tag 17, private__field_descriptor),
           (Data.ProtoLens.Tag 18, initiator__field_descriptor),
           (Data.ProtoLens.Tag 19, chanStatusFlags__field_descriptor),
           (Data.ProtoLens.Tag 20, localChanReserveSat__field_descriptor),
           (Data.ProtoLens.Tag 21, remoteChanReserveSat__field_descriptor),
           (Data.ProtoLens.Tag 22, staticRemoteKey__field_descriptor),
           (Data.ProtoLens.Tag 26, commitmentType__field_descriptor),
           (Data.ProtoLens.Tag 23, lifetime__field_descriptor),
           (Data.ProtoLens.Tag 24, uptime__field_descriptor),
           (Data.ProtoLens.Tag 25, closeAddress__field_descriptor),
           (Data.ProtoLens.Tag 27, pushAmountSat__field_descriptor),
           (Data.ProtoLens.Tag 28, thawHeight__field_descriptor),
           (Data.ProtoLens.Tag 29, localConstraints__field_descriptor),
           (Data.ProtoLens.Tag 30, remoteConstraints__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Channel'_unknownFields
        (\ x__ y__ -> x__ {_Channel'_unknownFields = y__})
  defMessage
    = Channel'_constructor
        {_Channel'active = Data.ProtoLens.fieldDefault,
         _Channel'remotePubkey = Data.ProtoLens.fieldDefault,
         _Channel'channelPoint = Data.ProtoLens.fieldDefault,
         _Channel'chanId = Data.ProtoLens.fieldDefault,
         _Channel'capacity = Data.ProtoLens.fieldDefault,
         _Channel'localBalance = Data.ProtoLens.fieldDefault,
         _Channel'remoteBalance = Data.ProtoLens.fieldDefault,
         _Channel'commitFee = Data.ProtoLens.fieldDefault,
         _Channel'commitWeight = Data.ProtoLens.fieldDefault,
         _Channel'feePerKw = Data.ProtoLens.fieldDefault,
         _Channel'unsettledBalance = Data.ProtoLens.fieldDefault,
         _Channel'totalSatoshisSent = Data.ProtoLens.fieldDefault,
         _Channel'totalSatoshisReceived = Data.ProtoLens.fieldDefault,
         _Channel'numUpdates = Data.ProtoLens.fieldDefault,
         _Channel'pendingHtlcs = Data.Vector.Generic.empty,
         _Channel'csvDelay = Data.ProtoLens.fieldDefault,
         _Channel'private = Data.ProtoLens.fieldDefault,
         _Channel'initiator = Data.ProtoLens.fieldDefault,
         _Channel'chanStatusFlags = Data.ProtoLens.fieldDefault,
         _Channel'localChanReserveSat = Data.ProtoLens.fieldDefault,
         _Channel'remoteChanReserveSat = Data.ProtoLens.fieldDefault,
         _Channel'staticRemoteKey = Data.ProtoLens.fieldDefault,
         _Channel'commitmentType = Data.ProtoLens.fieldDefault,
         _Channel'lifetime = Data.ProtoLens.fieldDefault,
         _Channel'uptime = Data.ProtoLens.fieldDefault,
         _Channel'closeAddress = Data.ProtoLens.fieldDefault,
         _Channel'pushAmountSat = Data.ProtoLens.fieldDefault,
         _Channel'thawHeight = Data.ProtoLens.fieldDefault,
         _Channel'localConstraints = Prelude.Nothing,
         _Channel'remoteConstraints = Prelude.Nothing,
         _Channel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Channel
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld HTLC
             -> Data.ProtoLens.Encoding.Bytes.Parser Channel
        loop x mutable'pendingHtlcs
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'pendingHtlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'pendingHtlcs)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'pendingHtlcs")
                              frozen'pendingHtlcs x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "active"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"active") y x)
                                  mutable'pendingHtlcs
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "remote_pubkey"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remotePubkey") y x)
                                  mutable'pendingHtlcs
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "channel_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") y x)
                                  mutable'pendingHtlcs
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                                  mutable'pendingHtlcs
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                                  mutable'pendingHtlcs
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localBalance") y x)
                                  mutable'pendingHtlcs
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteBalance") y x)
                                  mutable'pendingHtlcs
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "commit_fee"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"commitFee") y x)
                                  mutable'pendingHtlcs
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "commit_weight"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"commitWeight") y x)
                                  mutable'pendingHtlcs
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_per_kw"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feePerKw") y x)
                                  mutable'pendingHtlcs
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "unsettled_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"unsettledBalance") y x)
                                  mutable'pendingHtlcs
                        96
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_satoshis_sent"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalSatoshisSent") y x)
                                  mutable'pendingHtlcs
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_satoshis_received"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalSatoshisReceived") y x)
                                  mutable'pendingHtlcs
                        112
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "num_updates"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numUpdates") y x)
                                  mutable'pendingHtlcs
                        122
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "pending_htlcs"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'pendingHtlcs y)
                                loop x v
                        128
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "csv_delay"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"csvDelay") y x)
                                  mutable'pendingHtlcs
                        136
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "private"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"private") y x)
                                  mutable'pendingHtlcs
                        144
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "initiator"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"initiator") y x)
                                  mutable'pendingHtlcs
                        154
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "chan_status_flags"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"chanStatusFlags") y x)
                                  mutable'pendingHtlcs
                        160
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_chan_reserve_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localChanReserveSat") y x)
                                  mutable'pendingHtlcs
                        168
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_chan_reserve_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteChanReserveSat") y x)
                                  mutable'pendingHtlcs
                        176
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "static_remote_key"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"staticRemoteKey") y x)
                                  mutable'pendingHtlcs
                        208
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "commitment_type"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"commitmentType") y x)
                                  mutable'pendingHtlcs
                        184
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "lifetime"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lifetime") y x)
                                  mutable'pendingHtlcs
                        192
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "uptime"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"uptime") y x)
                                  mutable'pendingHtlcs
                        202
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "close_address"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closeAddress") y x)
                                  mutable'pendingHtlcs
                        216
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "push_amount_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pushAmountSat") y x)
                                  mutable'pendingHtlcs
                        224
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "thaw_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"thawHeight") y x)
                                  mutable'pendingHtlcs
                        234
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "local_constraints"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localConstraints") y x)
                                  mutable'pendingHtlcs
                        242
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "remote_constraints"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteConstraints") y x)
                                  mutable'pendingHtlcs
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'pendingHtlcs
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'pendingHtlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'pendingHtlcs)
          "Channel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"active") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"remotePubkey") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"channelPoint") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((Prelude..)
                               (\ bs
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               Data.Text.Encoding.encodeUtf8 _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view (Data.ProtoLens.Field.field @"localBalance") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"remoteBalance") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putVarInt
                                           Prelude.fromIntegral _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"commitFee") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 64)
                                           ((Prelude..)
                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                              Prelude.fromIntegral _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"commitWeight") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"feePerKw") _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                                 ((Prelude..)
                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
                                                    Prelude.fromIntegral _v))
                                        ((Data.Monoid.<>)
                                           (let
                                              _v
                                                = Lens.Family2.view
                                                    (Data.ProtoLens.Field.field @"unsettledBalance")
                                                    _x
                                            in
                                              if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                  Data.Monoid.mempty
                                              else
                                                  (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 88)
                                                    ((Prelude..)
                                                       Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       Prelude.fromIntegral _v))
                                           ((Data.Monoid.<>)
                                              (let
                                                 _v
                                                   = Lens.Family2.view
                                                       (Data.ProtoLens.Field.field
                                                          @"totalSatoshisSent")
                                                       _x
                                               in
                                                 if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                     Data.Monoid.mempty
                                                 else
                                                     (Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 96)
                                                       ((Prelude..)
                                                          Data.ProtoLens.Encoding.Bytes.putVarInt
                                                          Prelude.fromIntegral _v))
                                              ((Data.Monoid.<>)
                                                 (let
                                                    _v
                                                      = Lens.Family2.view
                                                          (Data.ProtoLens.Field.field
                                                             @"totalSatoshisReceived")
                                                          _x
                                                  in
                                                    if (Prelude.==)
                                                         _v Data.ProtoLens.fieldDefault then
                                                        Data.Monoid.mempty
                                                    else
                                                        (Data.Monoid.<>)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             104)
                                                          ((Prelude..)
                                                             Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             Prelude.fromIntegral _v))
                                                 ((Data.Monoid.<>)
                                                    (let
                                                       _v
                                                         = Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"numUpdates")
                                                             _x
                                                     in
                                                       if (Prelude.==)
                                                            _v Data.ProtoLens.fieldDefault then
                                                           Data.Monoid.mempty
                                                       else
                                                           (Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                112)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                _v))
                                                    ((Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                          (\ _v
                                                             -> (Data.Monoid.<>)
                                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                     122)
                                                                  ((Prelude..)
                                                                     (\ bs
                                                                        -> (Data.Monoid.<>)
                                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                (Prelude.fromIntegral
                                                                                   (Data.ByteString.length
                                                                                      bs)))
                                                                             (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                bs))
                                                                     Data.ProtoLens.encodeMessage
                                                                     _v))
                                                          (Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"vec'pendingHtlcs")
                                                             _x))
                                                       ((Data.Monoid.<>)
                                                          (let
                                                             _v
                                                               = Lens.Family2.view
                                                                   (Data.ProtoLens.Field.field
                                                                      @"csvDelay")
                                                                   _x
                                                           in
                                                             if (Prelude.==)
                                                                  _v
                                                                  Data.ProtoLens.fieldDefault then
                                                                 Data.Monoid.mempty
                                                             else
                                                                 (Data.Monoid.<>)
                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                      128)
                                                                   ((Prelude..)
                                                                      Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                      Prelude.fromIntegral _v))
                                                          ((Data.Monoid.<>)
                                                             (let
                                                                _v
                                                                  = Lens.Family2.view
                                                                      (Data.ProtoLens.Field.field
                                                                         @"private")
                                                                      _x
                                                              in
                                                                if (Prelude.==)
                                                                     _v
                                                                     Data.ProtoLens.fieldDefault then
                                                                    Data.Monoid.mempty
                                                                else
                                                                    (Data.Monoid.<>)
                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                         136)
                                                                      ((Prelude..)
                                                                         Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                         (\ b -> if b then 1 else 0)
                                                                         _v))
                                                             ((Data.Monoid.<>)
                                                                (let
                                                                   _v
                                                                     = Lens.Family2.view
                                                                         (Data.ProtoLens.Field.field
                                                                            @"initiator")
                                                                         _x
                                                                 in
                                                                   if (Prelude.==)
                                                                        _v
                                                                        Data.ProtoLens.fieldDefault then
                                                                       Data.Monoid.mempty
                                                                   else
                                                                       (Data.Monoid.<>)
                                                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                            144)
                                                                         ((Prelude..)
                                                                            Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                            (\ b
                                                                               -> if b then
                                                                                      1
                                                                                  else
                                                                                      0)
                                                                            _v))
                                                                ((Data.Monoid.<>)
                                                                   (let
                                                                      _v
                                                                        = Lens.Family2.view
                                                                            (Data.ProtoLens.Field.field
                                                                               @"chanStatusFlags")
                                                                            _x
                                                                    in
                                                                      if (Prelude.==)
                                                                           _v
                                                                           Data.ProtoLens.fieldDefault then
                                                                          Data.Monoid.mempty
                                                                      else
                                                                          (Data.Monoid.<>)
                                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                               154)
                                                                            ((Prelude..)
                                                                               (\ bs
                                                                                  -> (Data.Monoid.<>)
                                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                          (Prelude.fromIntegral
                                                                                             (Data.ByteString.length
                                                                                                bs)))
                                                                                       (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                          bs))
                                                                               Data.Text.Encoding.encodeUtf8
                                                                               _v))
                                                                   ((Data.Monoid.<>)
                                                                      (let
                                                                         _v
                                                                           = Lens.Family2.view
                                                                               (Data.ProtoLens.Field.field
                                                                                  @"localChanReserveSat")
                                                                               _x
                                                                       in
                                                                         if (Prelude.==)
                                                                              _v
                                                                              Data.ProtoLens.fieldDefault then
                                                                             Data.Monoid.mempty
                                                                         else
                                                                             (Data.Monoid.<>)
                                                                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                  160)
                                                                               ((Prelude..)
                                                                                  Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                  Prelude.fromIntegral
                                                                                  _v))
                                                                      ((Data.Monoid.<>)
                                                                         (let
                                                                            _v
                                                                              = Lens.Family2.view
                                                                                  (Data.ProtoLens.Field.field
                                                                                     @"remoteChanReserveSat")
                                                                                  _x
                                                                          in
                                                                            if (Prelude.==)
                                                                                 _v
                                                                                 Data.ProtoLens.fieldDefault then
                                                                                Data.Monoid.mempty
                                                                            else
                                                                                (Data.Monoid.<>)
                                                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                     168)
                                                                                  ((Prelude..)
                                                                                     Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                     Prelude.fromIntegral
                                                                                     _v))
                                                                         ((Data.Monoid.<>)
                                                                            (let
                                                                               _v
                                                                                 = Lens.Family2.view
                                                                                     (Data.ProtoLens.Field.field
                                                                                        @"staticRemoteKey")
                                                                                     _x
                                                                             in
                                                                               if (Prelude.==)
                                                                                    _v
                                                                                    Data.ProtoLens.fieldDefault then
                                                                                   Data.Monoid.mempty
                                                                               else
                                                                                   (Data.Monoid.<>)
                                                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                        176)
                                                                                     ((Prelude..)
                                                                                        Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                        (\ b
                                                                                           -> if b then
                                                                                                  1
                                                                                              else
                                                                                                  0)
                                                                                        _v))
                                                                            ((Data.Monoid.<>)
                                                                               (let
                                                                                  _v
                                                                                    = Lens.Family2.view
                                                                                        (Data.ProtoLens.Field.field
                                                                                           @"commitmentType")
                                                                                        _x
                                                                                in
                                                                                  if (Prelude.==)
                                                                                       _v
                                                                                       Data.ProtoLens.fieldDefault then
                                                                                      Data.Monoid.mempty
                                                                                  else
                                                                                      (Data.Monoid.<>)
                                                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                           208)
                                                                                        ((Prelude..)
                                                                                           ((Prelude..)
                                                                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                              Prelude.fromIntegral)
                                                                                           Prelude.fromEnum
                                                                                           _v))
                                                                               ((Data.Monoid.<>)
                                                                                  (let
                                                                                     _v
                                                                                       = Lens.Family2.view
                                                                                           (Data.ProtoLens.Field.field
                                                                                              @"lifetime")
                                                                                           _x
                                                                                   in
                                                                                     if (Prelude.==)
                                                                                          _v
                                                                                          Data.ProtoLens.fieldDefault then
                                                                                         Data.Monoid.mempty
                                                                                     else
                                                                                         (Data.Monoid.<>)
                                                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                              184)
                                                                                           ((Prelude..)
                                                                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                              Prelude.fromIntegral
                                                                                              _v))
                                                                                  ((Data.Monoid.<>)
                                                                                     (let
                                                                                        _v
                                                                                          = Lens.Family2.view
                                                                                              (Data.ProtoLens.Field.field
                                                                                                 @"uptime")
                                                                                              _x
                                                                                      in
                                                                                        if (Prelude.==)
                                                                                             _v
                                                                                             Data.ProtoLens.fieldDefault then
                                                                                            Data.Monoid.mempty
                                                                                        else
                                                                                            (Data.Monoid.<>)
                                                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                 192)
                                                                                              ((Prelude..)
                                                                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                 Prelude.fromIntegral
                                                                                                 _v))
                                                                                     ((Data.Monoid.<>)
                                                                                        (let
                                                                                           _v
                                                                                             = Lens.Family2.view
                                                                                                 (Data.ProtoLens.Field.field
                                                                                                    @"closeAddress")
                                                                                                 _x
                                                                                         in
                                                                                           if (Prelude.==)
                                                                                                _v
                                                                                                Data.ProtoLens.fieldDefault then
                                                                                               Data.Monoid.mempty
                                                                                           else
                                                                                               (Data.Monoid.<>)
                                                                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                    202)
                                                                                                 ((Prelude..)
                                                                                                    (\ bs
                                                                                                       -> (Data.Monoid.<>)
                                                                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                               (Prelude.fromIntegral
                                                                                                                  (Data.ByteString.length
                                                                                                                     bs)))
                                                                                                            (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                                               bs))
                                                                                                    Data.Text.Encoding.encodeUtf8
                                                                                                    _v))
                                                                                        ((Data.Monoid.<>)
                                                                                           (let
                                                                                              _v
                                                                                                = Lens.Family2.view
                                                                                                    (Data.ProtoLens.Field.field
                                                                                                       @"pushAmountSat")
                                                                                                    _x
                                                                                            in
                                                                                              if (Prelude.==)
                                                                                                   _v
                                                                                                   Data.ProtoLens.fieldDefault then
                                                                                                  Data.Monoid.mempty
                                                                                              else
                                                                                                  (Data.Monoid.<>)
                                                                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                       216)
                                                                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                       _v))
                                                                                           ((Data.Monoid.<>)
                                                                                              (let
                                                                                                 _v
                                                                                                   = Lens.Family2.view
                                                                                                       (Data.ProtoLens.Field.field
                                                                                                          @"thawHeight")
                                                                                                       _x
                                                                                               in
                                                                                                 if (Prelude.==)
                                                                                                      _v
                                                                                                      Data.ProtoLens.fieldDefault then
                                                                                                     Data.Monoid.mempty
                                                                                                 else
                                                                                                     (Data.Monoid.<>)
                                                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                          224)
                                                                                                       ((Prelude..)
                                                                                                          Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                          Prelude.fromIntegral
                                                                                                          _v))
                                                                                              ((Data.Monoid.<>)
                                                                                                 (case
                                                                                                      Lens.Family2.view
                                                                                                        (Data.ProtoLens.Field.field
                                                                                                           @"maybe'localConstraints")
                                                                                                        _x
                                                                                                  of
                                                                                                    Prelude.Nothing
                                                                                                      -> Data.Monoid.mempty
                                                                                                    (Prelude.Just _v)
                                                                                                      -> (Data.Monoid.<>)
                                                                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                              234)
                                                                                                           ((Prelude..)
                                                                                                              (\ bs
                                                                                                                 -> (Data.Monoid.<>)
                                                                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                                         (Prelude.fromIntegral
                                                                                                                            (Data.ByteString.length
                                                                                                                               bs)))
                                                                                                                      (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                                                         bs))
                                                                                                              Data.ProtoLens.encodeMessage
                                                                                                              _v))
                                                                                                 ((Data.Monoid.<>)
                                                                                                    (case
                                                                                                         Lens.Family2.view
                                                                                                           (Data.ProtoLens.Field.field
                                                                                                              @"maybe'remoteConstraints")
                                                                                                           _x
                                                                                                     of
                                                                                                       Prelude.Nothing
                                                                                                         -> Data.Monoid.mempty
                                                                                                       (Prelude.Just _v)
                                                                                                         -> (Data.Monoid.<>)
                                                                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                                 242)
                                                                                                              ((Prelude..)
                                                                                                                 (\ bs
                                                                                                                    -> (Data.Monoid.<>)
                                                                                                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                                            (Prelude.fromIntegral
                                                                                                                               (Data.ByteString.length
                                                                                                                                  bs)))
                                                                                                                         (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                                                            bs))
                                                                                                                 Data.ProtoLens.encodeMessage
                                                                                                                 _v))
                                                                                                    (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                                                                                       (Lens.Family2.view
                                                                                                          Data.ProtoLens.unknownFields
                                                                                                          _x)))))))))))))))))))))))))))))))
instance Control.DeepSeq.NFData Channel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Channel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Channel'active x__)
                (Control.DeepSeq.deepseq
                   (_Channel'remotePubkey x__)
                   (Control.DeepSeq.deepseq
                      (_Channel'channelPoint x__)
                      (Control.DeepSeq.deepseq
                         (_Channel'chanId x__)
                         (Control.DeepSeq.deepseq
                            (_Channel'capacity x__)
                            (Control.DeepSeq.deepseq
                               (_Channel'localBalance x__)
                               (Control.DeepSeq.deepseq
                                  (_Channel'remoteBalance x__)
                                  (Control.DeepSeq.deepseq
                                     (_Channel'commitFee x__)
                                     (Control.DeepSeq.deepseq
                                        (_Channel'commitWeight x__)
                                        (Control.DeepSeq.deepseq
                                           (_Channel'feePerKw x__)
                                           (Control.DeepSeq.deepseq
                                              (_Channel'unsettledBalance x__)
                                              (Control.DeepSeq.deepseq
                                                 (_Channel'totalSatoshisSent x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_Channel'totalSatoshisReceived x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_Channel'numUpdates x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_Channel'pendingHtlcs x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_Channel'csvDelay x__)
                                                             (Control.DeepSeq.deepseq
                                                                (_Channel'private x__)
                                                                (Control.DeepSeq.deepseq
                                                                   (_Channel'initiator x__)
                                                                   (Control.DeepSeq.deepseq
                                                                      (_Channel'chanStatusFlags x__)
                                                                      (Control.DeepSeq.deepseq
                                                                         (_Channel'localChanReserveSat
                                                                            x__)
                                                                         (Control.DeepSeq.deepseq
                                                                            (_Channel'remoteChanReserveSat
                                                                               x__)
                                                                            (Control.DeepSeq.deepseq
                                                                               (_Channel'staticRemoteKey
                                                                                  x__)
                                                                               (Control.DeepSeq.deepseq
                                                                                  (_Channel'commitmentType
                                                                                     x__)
                                                                                  (Control.DeepSeq.deepseq
                                                                                     (_Channel'lifetime
                                                                                        x__)
                                                                                     (Control.DeepSeq.deepseq
                                                                                        (_Channel'uptime
                                                                                           x__)
                                                                                        (Control.DeepSeq.deepseq
                                                                                           (_Channel'closeAddress
                                                                                              x__)
                                                                                           (Control.DeepSeq.deepseq
                                                                                              (_Channel'pushAmountSat
                                                                                                 x__)
                                                                                              (Control.DeepSeq.deepseq
                                                                                                 (_Channel'thawHeight
                                                                                                    x__)
                                                                                                 (Control.DeepSeq.deepseq
                                                                                                    (_Channel'localConstraints
                                                                                                       x__)
                                                                                                    (Control.DeepSeq.deepseq
                                                                                                       (_Channel'remoteConstraints
                                                                                                          x__)
                                                                                                       ()))))))))))))))))))))))))))))))
{- | Fields :
      -}
data ChannelBalanceRequest
  = ChannelBalanceRequest'_constructor {_ChannelBalanceRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelBalanceRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelBalanceRequest
instance Data.ProtoLens.Message ChannelBalanceRequest where
  messageName _ = Data.Text.pack "lnrpc.ChannelBalanceRequest"
  packedMessageDescriptor _
    = "\n\
      \\NAKChannelBalanceRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelBalanceRequest'_unknownFields
        (\ x__ y__ -> x__ {_ChannelBalanceRequest'_unknownFields = y__})
  defMessage
    = ChannelBalanceRequest'_constructor
        {_ChannelBalanceRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelBalanceRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelBalanceRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelBalanceRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ChannelBalanceRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelBalanceRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.balance' @:: Lens' ChannelBalanceResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.pendingOpenBalance' @:: Lens' ChannelBalanceResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.localBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'localBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.Lnrpc.Ln0_Fields.remoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'remoteBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.Lnrpc.Ln0_Fields.unsettledLocalBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'unsettledLocalBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.Lnrpc.Ln0_Fields.unsettledRemoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'unsettledRemoteBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.Lnrpc.Ln0_Fields.pendingOpenLocalBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'pendingOpenLocalBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.Lnrpc.Ln0_Fields.pendingOpenRemoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'pendingOpenRemoteBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@ -}
data ChannelBalanceResponse
  = ChannelBalanceResponse'_constructor {_ChannelBalanceResponse'balance :: !Data.Int.Int64,
                                         _ChannelBalanceResponse'pendingOpenBalance :: !Data.Int.Int64,
                                         _ChannelBalanceResponse'localBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'remoteBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'unsettledLocalBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'unsettledRemoteBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'pendingOpenLocalBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'pendingOpenRemoteBalance :: !(Prelude.Maybe Amount),
                                         _ChannelBalanceResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelBalanceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelBalanceResponse
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "balance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'balance
           (\ x__ y__ -> x__ {_ChannelBalanceResponse'balance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "pendingOpenBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'pendingOpenBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'pendingOpenBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "localBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'localBalance
           (\ x__ y__ -> x__ {_ChannelBalanceResponse'localBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'localBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'localBalance
           (\ x__ y__ -> x__ {_ChannelBalanceResponse'localBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "remoteBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'remoteBalance
           (\ x__ y__ -> x__ {_ChannelBalanceResponse'remoteBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'remoteBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'remoteBalance
           (\ x__ y__ -> x__ {_ChannelBalanceResponse'remoteBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "unsettledLocalBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'unsettledLocalBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'unsettledLocalBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'unsettledLocalBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'unsettledLocalBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'unsettledLocalBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "unsettledRemoteBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'unsettledRemoteBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'unsettledRemoteBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'unsettledRemoteBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'unsettledRemoteBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'unsettledRemoteBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "pendingOpenLocalBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'pendingOpenLocalBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'pendingOpenLocalBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'pendingOpenLocalBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'pendingOpenLocalBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'pendingOpenLocalBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "pendingOpenRemoteBalance" Amount where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'pendingOpenRemoteBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'pendingOpenRemoteBalance = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBalanceResponse "maybe'pendingOpenRemoteBalance" (Prelude.Maybe Amount) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBalanceResponse'pendingOpenRemoteBalance
           (\ x__ y__
              -> x__ {_ChannelBalanceResponse'pendingOpenRemoteBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelBalanceResponse where
  messageName _ = Data.Text.pack "lnrpc.ChannelBalanceResponse"
  packedMessageDescriptor _
    = "\n\
      \\SYNChannelBalanceResponse\DC2\FS\n\
      \\abalance\CAN\SOH \SOH(\ETXR\abalanceB\STX\CAN\SOH\DC24\n\
      \\DC4pending_open_balance\CAN\STX \SOH(\ETXR\DC2pendingOpenBalanceB\STX\CAN\SOH\DC22\n\
      \\rlocal_balance\CAN\ETX \SOH(\v2\r.lnrpc.AmountR\flocalBalance\DC24\n\
      \\SOremote_balance\CAN\EOT \SOH(\v2\r.lnrpc.AmountR\rremoteBalance\DC2E\n\
      \\ETBunsettled_local_balance\CAN\ENQ \SOH(\v2\r.lnrpc.AmountR\NAKunsettledLocalBalance\DC2G\n\
      \\CANunsettled_remote_balance\CAN\ACK \SOH(\v2\r.lnrpc.AmountR\SYNunsettledRemoteBalance\DC2J\n\
      \\SUBpending_open_local_balance\CAN\a \SOH(\v2\r.lnrpc.AmountR\ETBpendingOpenLocalBalance\DC2L\n\
      \\ESCpending_open_remote_balance\CAN\b \SOH(\v2\r.lnrpc.AmountR\CANpendingOpenRemoteBalance"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        balance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"balance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        pendingOpenBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_open_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingOpenBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        localBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'localBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        remoteBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'remoteBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        unsettledLocalBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "unsettled_local_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'unsettledLocalBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        unsettledRemoteBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "unsettled_remote_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'unsettledRemoteBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        pendingOpenLocalBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_open_local_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'pendingOpenLocalBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
        pendingOpenRemoteBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_open_remote_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Amount)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'pendingOpenRemoteBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelBalanceResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, balance__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingOpenBalance__field_descriptor),
           (Data.ProtoLens.Tag 3, localBalance__field_descriptor),
           (Data.ProtoLens.Tag 4, remoteBalance__field_descriptor),
           (Data.ProtoLens.Tag 5, unsettledLocalBalance__field_descriptor),
           (Data.ProtoLens.Tag 6, unsettledRemoteBalance__field_descriptor),
           (Data.ProtoLens.Tag 7, pendingOpenLocalBalance__field_descriptor),
           (Data.ProtoLens.Tag 8, pendingOpenRemoteBalance__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelBalanceResponse'_unknownFields
        (\ x__ y__ -> x__ {_ChannelBalanceResponse'_unknownFields = y__})
  defMessage
    = ChannelBalanceResponse'_constructor
        {_ChannelBalanceResponse'balance = Data.ProtoLens.fieldDefault,
         _ChannelBalanceResponse'pendingOpenBalance = Data.ProtoLens.fieldDefault,
         _ChannelBalanceResponse'localBalance = Prelude.Nothing,
         _ChannelBalanceResponse'remoteBalance = Prelude.Nothing,
         _ChannelBalanceResponse'unsettledLocalBalance = Prelude.Nothing,
         _ChannelBalanceResponse'unsettledRemoteBalance = Prelude.Nothing,
         _ChannelBalanceResponse'pendingOpenLocalBalance = Prelude.Nothing,
         _ChannelBalanceResponse'pendingOpenRemoteBalance = Prelude.Nothing,
         _ChannelBalanceResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelBalanceResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelBalanceResponse
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "balance"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"balance") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "pending_open_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingOpenBalance") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "local_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localBalance") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "remote_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteBalance") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "unsettled_local_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"unsettledLocalBalance") y x)
                        50
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "unsettled_remote_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"unsettledRemoteBalance") y x)
                        58
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "pending_open_local_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingOpenLocalBalance") y x)
                        66
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "pending_open_remote_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingOpenRemoteBalance") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelBalanceResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"balance") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"pendingOpenBalance") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (case
                        Lens.Family2.view
                          (Data.ProtoLens.Field.field @"maybe'localBalance") _x
                    of
                      Prelude.Nothing -> Data.Monoid.mempty
                      (Prelude.Just _v)
                        -> (Data.Monoid.<>)
                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                             ((Prelude..)
                                (\ bs
                                   -> (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                           (Prelude.fromIntegral (Data.ByteString.length bs)))
                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                Data.ProtoLens.encodeMessage _v))
                   ((Data.Monoid.<>)
                      (case
                           Lens.Family2.view
                             (Data.ProtoLens.Field.field @"maybe'remoteBalance") _x
                       of
                         Prelude.Nothing -> Data.Monoid.mempty
                         (Prelude.Just _v)
                           -> (Data.Monoid.<>)
                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                ((Prelude..)
                                   (\ bs
                                      -> (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                   Data.ProtoLens.encodeMessage _v))
                      ((Data.Monoid.<>)
                         (case
                              Lens.Family2.view
                                (Data.ProtoLens.Field.field @"maybe'unsettledLocalBalance") _x
                          of
                            Prelude.Nothing -> Data.Monoid.mempty
                            (Prelude.Just _v)
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                   ((Prelude..)
                                      (\ bs
                                         -> (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))
                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                      Data.ProtoLens.encodeMessage _v))
                         ((Data.Monoid.<>)
                            (case
                                 Lens.Family2.view
                                   (Data.ProtoLens.Field.field @"maybe'unsettledRemoteBalance") _x
                             of
                               Prelude.Nothing -> Data.Monoid.mempty
                               (Prelude.Just _v)
                                 -> (Data.Monoid.<>)
                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                                      ((Prelude..)
                                         (\ bs
                                            -> (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                    (Prelude.fromIntegral
                                                       (Data.ByteString.length bs)))
                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                         Data.ProtoLens.encodeMessage _v))
                            ((Data.Monoid.<>)
                               (case
                                    Lens.Family2.view
                                      (Data.ProtoLens.Field.field @"maybe'pendingOpenLocalBalance")
                                      _x
                                of
                                  Prelude.Nothing -> Data.Monoid.mempty
                                  (Prelude.Just _v)
                                    -> (Data.Monoid.<>)
                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
                                         ((Prelude..)
                                            (\ bs
                                               -> (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       (Prelude.fromIntegral
                                                          (Data.ByteString.length bs)))
                                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                            Data.ProtoLens.encodeMessage _v))
                               ((Data.Monoid.<>)
                                  (case
                                       Lens.Family2.view
                                         (Data.ProtoLens.Field.field
                                            @"maybe'pendingOpenRemoteBalance")
                                         _x
                                   of
                                     Prelude.Nothing -> Data.Monoid.mempty
                                     (Prelude.Just _v)
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
                                            ((Prelude..)
                                               (\ bs
                                                  -> (Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                          (Prelude.fromIntegral
                                                             (Data.ByteString.length bs)))
                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                               Data.ProtoLens.encodeMessage _v))
                                  (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                     (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))
instance Control.DeepSeq.NFData ChannelBalanceResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelBalanceResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelBalanceResponse'balance x__)
                (Control.DeepSeq.deepseq
                   (_ChannelBalanceResponse'pendingOpenBalance x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelBalanceResponse'localBalance x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelBalanceResponse'remoteBalance x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelBalanceResponse'unsettledLocalBalance x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelBalanceResponse'unsettledRemoteBalance x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelBalanceResponse'pendingOpenLocalBalance x__)
                                  (Control.DeepSeq.deepseq
                                     (_ChannelBalanceResponse'pendingOpenRemoteBalance x__)
                                     ()))))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channelPoint' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' ChannelCloseSummary Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.chainHash' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.closingTxHash' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.remotePubkey' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.closeHeight' @:: Lens' ChannelCloseSummary Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.settledBalance' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.timeLockedBalance' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.closeType' @:: Lens' ChannelCloseSummary ChannelCloseSummary'ClosureType@
         * 'Proto.Lnrpc.Ln0_Fields.openInitiator' @:: Lens' ChannelCloseSummary Initiator@
         * 'Proto.Lnrpc.Ln0_Fields.closeInitiator' @:: Lens' ChannelCloseSummary Initiator@
         * 'Proto.Lnrpc.Ln0_Fields.resolutions' @:: Lens' ChannelCloseSummary [Resolution]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'resolutions' @:: Lens' ChannelCloseSummary (Data.Vector.Vector Resolution)@ -}
data ChannelCloseSummary
  = ChannelCloseSummary'_constructor {_ChannelCloseSummary'channelPoint :: !Data.Text.Text,
                                      _ChannelCloseSummary'chanId :: !Data.Word.Word64,
                                      _ChannelCloseSummary'chainHash :: !Data.Text.Text,
                                      _ChannelCloseSummary'closingTxHash :: !Data.Text.Text,
                                      _ChannelCloseSummary'remotePubkey :: !Data.Text.Text,
                                      _ChannelCloseSummary'capacity :: !Data.Int.Int64,
                                      _ChannelCloseSummary'closeHeight :: !Data.Word.Word32,
                                      _ChannelCloseSummary'settledBalance :: !Data.Int.Int64,
                                      _ChannelCloseSummary'timeLockedBalance :: !Data.Int.Int64,
                                      _ChannelCloseSummary'closeType :: !ChannelCloseSummary'ClosureType,
                                      _ChannelCloseSummary'openInitiator :: !Initiator,
                                      _ChannelCloseSummary'closeInitiator :: !Initiator,
                                      _ChannelCloseSummary'resolutions :: !(Data.Vector.Vector Resolution),
                                      _ChannelCloseSummary'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelCloseSummary where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelCloseSummary
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "channelPoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'channelPoint
           (\ x__ y__ -> x__ {_ChannelCloseSummary'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'chanId
           (\ x__ y__ -> x__ {_ChannelCloseSummary'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "chainHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'chainHash
           (\ x__ y__ -> x__ {_ChannelCloseSummary'chainHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "closingTxHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'closingTxHash
           (\ x__ y__ -> x__ {_ChannelCloseSummary'closingTxHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "remotePubkey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'remotePubkey
           (\ x__ y__ -> x__ {_ChannelCloseSummary'remotePubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'capacity
           (\ x__ y__ -> x__ {_ChannelCloseSummary'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "closeHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'closeHeight
           (\ x__ y__ -> x__ {_ChannelCloseSummary'closeHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "settledBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'settledBalance
           (\ x__ y__ -> x__ {_ChannelCloseSummary'settledBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "timeLockedBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'timeLockedBalance
           (\ x__ y__ -> x__ {_ChannelCloseSummary'timeLockedBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "closeType" ChannelCloseSummary'ClosureType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'closeType
           (\ x__ y__ -> x__ {_ChannelCloseSummary'closeType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "openInitiator" Initiator where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'openInitiator
           (\ x__ y__ -> x__ {_ChannelCloseSummary'openInitiator = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "closeInitiator" Initiator where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'closeInitiator
           (\ x__ y__ -> x__ {_ChannelCloseSummary'closeInitiator = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "resolutions" [Resolution] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'resolutions
           (\ x__ y__ -> x__ {_ChannelCloseSummary'resolutions = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ChannelCloseSummary "vec'resolutions" (Data.Vector.Vector Resolution) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseSummary'resolutions
           (\ x__ y__ -> x__ {_ChannelCloseSummary'resolutions = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelCloseSummary where
  messageName _ = Data.Text.pack "lnrpc.ChannelCloseSummary"
  packedMessageDescriptor _
    = "\n\
      \\DC3ChannelCloseSummary\DC2#\n\
      \\rchannel_point\CAN\SOH \SOH(\tR\fchannelPoint\DC2\ESC\n\
      \\achan_id\CAN\STX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\GS\n\
      \\n\
      \chain_hash\CAN\ETX \SOH(\tR\tchainHash\DC2&\n\
      \\SIclosing_tx_hash\CAN\EOT \SOH(\tR\rclosingTxHash\DC2#\n\
      \\rremote_pubkey\CAN\ENQ \SOH(\tR\fremotePubkey\DC2\SUB\n\
      \\bcapacity\CAN\ACK \SOH(\ETXR\bcapacity\DC2!\n\
      \\fclose_height\CAN\a \SOH(\rR\vcloseHeight\DC2'\n\
      \\SIsettled_balance\CAN\b \SOH(\ETXR\SOsettledBalance\DC2.\n\
      \\DC3time_locked_balance\CAN\t \SOH(\ETXR\DC1timeLockedBalance\DC2E\n\
      \\n\
      \close_type\CAN\n\
      \ \SOH(\SO2&.lnrpc.ChannelCloseSummary.ClosureTypeR\tcloseType\DC27\n\
      \\SOopen_initiator\CAN\v \SOH(\SO2\DLE.lnrpc.InitiatorR\ropenInitiator\DC29\n\
      \\SIclose_initiator\CAN\f \SOH(\SO2\DLE.lnrpc.InitiatorR\SOcloseInitiator\DC23\n\
      \\vresolutions\CAN\r \ETX(\v2\DC1.lnrpc.ResolutionR\vresolutions\"\138\SOH\n\
      \\vClosureType\DC2\NAK\n\
      \\DC1COOPERATIVE_CLOSE\DLE\NUL\DC2\NAK\n\
      \\DC1LOCAL_FORCE_CLOSE\DLE\SOH\DC2\SYN\n\
      \\DC2REMOTE_FORCE_CLOSE\DLE\STX\DC2\DLE\n\
      \\fBREACH_CLOSE\DLE\ETX\DC2\DC4\n\
      \\DLEFUNDING_CANCELED\DLE\EOT\DC2\r\n\
      \\tABANDONED\DLE\ENQ"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelPoint")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        chainHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chain_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chainHash")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        closingTxHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closing_tx_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closingTxHash")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        remotePubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remotePubkey")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        closeHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "close_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closeHeight")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        settledBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "settled_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"settledBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        timeLockedBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "time_locked_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timeLockedBalance")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        closeType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "close_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelCloseSummary'ClosureType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closeType")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        openInitiator__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "open_initiator"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Initiator)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"openInitiator")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        closeInitiator__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "close_initiator"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Initiator)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closeInitiator")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
        resolutions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "resolutions"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Resolution)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"resolutions")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseSummary
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 2, chanId__field_descriptor),
           (Data.ProtoLens.Tag 3, chainHash__field_descriptor),
           (Data.ProtoLens.Tag 4, closingTxHash__field_descriptor),
           (Data.ProtoLens.Tag 5, remotePubkey__field_descriptor),
           (Data.ProtoLens.Tag 6, capacity__field_descriptor),
           (Data.ProtoLens.Tag 7, closeHeight__field_descriptor),
           (Data.ProtoLens.Tag 8, settledBalance__field_descriptor),
           (Data.ProtoLens.Tag 9, timeLockedBalance__field_descriptor),
           (Data.ProtoLens.Tag 10, closeType__field_descriptor),
           (Data.ProtoLens.Tag 11, openInitiator__field_descriptor),
           (Data.ProtoLens.Tag 12, closeInitiator__field_descriptor),
           (Data.ProtoLens.Tag 13, resolutions__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelCloseSummary'_unknownFields
        (\ x__ y__ -> x__ {_ChannelCloseSummary'_unknownFields = y__})
  defMessage
    = ChannelCloseSummary'_constructor
        {_ChannelCloseSummary'channelPoint = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'chanId = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'chainHash = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'closingTxHash = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'remotePubkey = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'capacity = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'closeHeight = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'settledBalance = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'timeLockedBalance = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'closeType = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'openInitiator = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'closeInitiator = Data.ProtoLens.fieldDefault,
         _ChannelCloseSummary'resolutions = Data.Vector.Generic.empty,
         _ChannelCloseSummary'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelCloseSummary
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Resolution
             -> Data.ProtoLens.Encoding.Bytes.Parser ChannelCloseSummary
        loop x mutable'resolutions
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'resolutions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'resolutions)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'resolutions") frozen'resolutions
                              x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "channel_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") y x)
                                  mutable'resolutions
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                                  mutable'resolutions
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "chain_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chainHash") y x)
                                  mutable'resolutions
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "closing_tx_hash"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closingTxHash") y x)
                                  mutable'resolutions
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "remote_pubkey"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remotePubkey") y x)
                                  mutable'resolutions
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                                  mutable'resolutions
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "close_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"closeHeight") y x)
                                  mutable'resolutions
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "settled_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"settledBalance") y x)
                                  mutable'resolutions
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "time_locked_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"timeLockedBalance") y x)
                                  mutable'resolutions
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "close_type"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"closeType") y x)
                                  mutable'resolutions
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "open_initiator"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"openInitiator") y x)
                                  mutable'resolutions
                        96
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "close_initiator"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closeInitiator") y x)
                                  mutable'resolutions
                        106
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "resolutions"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'resolutions y)
                                loop x v
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'resolutions
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'resolutions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'resolutions)
          "ChannelCloseSummary"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"channelPoint") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chainHash") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((Prelude..)
                               (\ bs
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               Data.Text.Encoding.encodeUtf8 _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"closingTxHash") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                               ((Prelude..)
                                  (\ bs
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                             (Prelude.fromIntegral (Data.ByteString.length bs)))
                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                  Data.Text.Encoding.encodeUtf8 _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view (Data.ProtoLens.Field.field @"remotePubkey") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         ((Data.Monoid.<>)
                            (let
                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"closeHeight") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putVarInt
                                           Prelude.fromIntegral _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"settledBalance") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 64)
                                           ((Prelude..)
                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                              Prelude.fromIntegral _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"timeLockedBalance") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"closeType") _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                                 ((Prelude..)
                                                    ((Prelude..)
                                                       Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       Prelude.fromIntegral)
                                                    Prelude.fromEnum _v))
                                        ((Data.Monoid.<>)
                                           (let
                                              _v
                                                = Lens.Family2.view
                                                    (Data.ProtoLens.Field.field @"openInitiator") _x
                                            in
                                              if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                  Data.Monoid.mempty
                                              else
                                                  (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 88)
                                                    ((Prelude..)
                                                       ((Prelude..)
                                                          Data.ProtoLens.Encoding.Bytes.putVarInt
                                                          Prelude.fromIntegral)
                                                       Prelude.fromEnum _v))
                                           ((Data.Monoid.<>)
                                              (let
                                                 _v
                                                   = Lens.Family2.view
                                                       (Data.ProtoLens.Field.field
                                                          @"closeInitiator")
                                                       _x
                                               in
                                                 if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                     Data.Monoid.mempty
                                                 else
                                                     (Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 96)
                                                       ((Prelude..)
                                                          ((Prelude..)
                                                             Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             Prelude.fromIntegral)
                                                          Prelude.fromEnum _v))
                                              ((Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                    (\ _v
                                                       -> (Data.Monoid.<>)
                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                               106)
                                                            ((Prelude..)
                                                               (\ bs
                                                                  -> (Data.Monoid.<>)
                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                          (Prelude.fromIntegral
                                                                             (Data.ByteString.length
                                                                                bs)))
                                                                       (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                          bs))
                                                               Data.ProtoLens.encodeMessage _v))
                                                    (Lens.Family2.view
                                                       (Data.ProtoLens.Field.field
                                                          @"vec'resolutions")
                                                       _x))
                                                 (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                                    (Lens.Family2.view
                                                       Data.ProtoLens.unknownFields _x))))))))))))))
instance Control.DeepSeq.NFData ChannelCloseSummary where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelCloseSummary'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelCloseSummary'channelPoint x__)
                (Control.DeepSeq.deepseq
                   (_ChannelCloseSummary'chanId x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelCloseSummary'chainHash x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelCloseSummary'closingTxHash x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelCloseSummary'remotePubkey x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelCloseSummary'capacity x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelCloseSummary'closeHeight x__)
                                  (Control.DeepSeq.deepseq
                                     (_ChannelCloseSummary'settledBalance x__)
                                     (Control.DeepSeq.deepseq
                                        (_ChannelCloseSummary'timeLockedBalance x__)
                                        (Control.DeepSeq.deepseq
                                           (_ChannelCloseSummary'closeType x__)
                                           (Control.DeepSeq.deepseq
                                              (_ChannelCloseSummary'openInitiator x__)
                                              (Control.DeepSeq.deepseq
                                                 (_ChannelCloseSummary'closeInitiator x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_ChannelCloseSummary'resolutions x__)
                                                    ())))))))))))))
newtype ChannelCloseSummary'ClosureType'UnrecognizedValue
  = ChannelCloseSummary'ClosureType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ChannelCloseSummary'ClosureType'UnrecognizedValue
data ChannelCloseSummary'ClosureType
  = ChannelCloseSummary'COOPERATIVE_CLOSE |
    ChannelCloseSummary'LOCAL_FORCE_CLOSE |
    ChannelCloseSummary'REMOTE_FORCE_CLOSE |
    ChannelCloseSummary'BREACH_CLOSE |
    ChannelCloseSummary'FUNDING_CANCELED |
    ChannelCloseSummary'ABANDONED |
    ChannelCloseSummary'ClosureType'Unrecognized !ChannelCloseSummary'ClosureType'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum ChannelCloseSummary'ClosureType where
  maybeToEnum 0 = Prelude.Just ChannelCloseSummary'COOPERATIVE_CLOSE
  maybeToEnum 1 = Prelude.Just ChannelCloseSummary'LOCAL_FORCE_CLOSE
  maybeToEnum 2 = Prelude.Just ChannelCloseSummary'REMOTE_FORCE_CLOSE
  maybeToEnum 3 = Prelude.Just ChannelCloseSummary'BREACH_CLOSE
  maybeToEnum 4 = Prelude.Just ChannelCloseSummary'FUNDING_CANCELED
  maybeToEnum 5 = Prelude.Just ChannelCloseSummary'ABANDONED
  maybeToEnum k
    = Prelude.Just
        (ChannelCloseSummary'ClosureType'Unrecognized
           (ChannelCloseSummary'ClosureType'UnrecognizedValue
              (Prelude.fromIntegral k)))
  showEnum ChannelCloseSummary'COOPERATIVE_CLOSE
    = "COOPERATIVE_CLOSE"
  showEnum ChannelCloseSummary'LOCAL_FORCE_CLOSE
    = "LOCAL_FORCE_CLOSE"
  showEnum ChannelCloseSummary'REMOTE_FORCE_CLOSE
    = "REMOTE_FORCE_CLOSE"
  showEnum ChannelCloseSummary'BREACH_CLOSE = "BREACH_CLOSE"
  showEnum ChannelCloseSummary'FUNDING_CANCELED = "FUNDING_CANCELED"
  showEnum ChannelCloseSummary'ABANDONED = "ABANDONED"
  showEnum
    (ChannelCloseSummary'ClosureType'Unrecognized (ChannelCloseSummary'ClosureType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "COOPERATIVE_CLOSE"
    = Prelude.Just ChannelCloseSummary'COOPERATIVE_CLOSE
    | (Prelude.==) k "LOCAL_FORCE_CLOSE"
    = Prelude.Just ChannelCloseSummary'LOCAL_FORCE_CLOSE
    | (Prelude.==) k "REMOTE_FORCE_CLOSE"
    = Prelude.Just ChannelCloseSummary'REMOTE_FORCE_CLOSE
    | (Prelude.==) k "BREACH_CLOSE"
    = Prelude.Just ChannelCloseSummary'BREACH_CLOSE
    | (Prelude.==) k "FUNDING_CANCELED"
    = Prelude.Just ChannelCloseSummary'FUNDING_CANCELED
    | (Prelude.==) k "ABANDONED"
    = Prelude.Just ChannelCloseSummary'ABANDONED
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded ChannelCloseSummary'ClosureType where
  minBound = ChannelCloseSummary'COOPERATIVE_CLOSE
  maxBound = ChannelCloseSummary'ABANDONED
instance Prelude.Enum ChannelCloseSummary'ClosureType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum ClosureType: " (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum ChannelCloseSummary'COOPERATIVE_CLOSE = 0
  fromEnum ChannelCloseSummary'LOCAL_FORCE_CLOSE = 1
  fromEnum ChannelCloseSummary'REMOTE_FORCE_CLOSE = 2
  fromEnum ChannelCloseSummary'BREACH_CLOSE = 3
  fromEnum ChannelCloseSummary'FUNDING_CANCELED = 4
  fromEnum ChannelCloseSummary'ABANDONED = 5
  fromEnum
    (ChannelCloseSummary'ClosureType'Unrecognized (ChannelCloseSummary'ClosureType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ ChannelCloseSummary'ABANDONED
    = Prelude.error
        "ChannelCloseSummary'ClosureType.succ: bad argument ChannelCloseSummary'ABANDONED. This value would be out of bounds."
  succ ChannelCloseSummary'COOPERATIVE_CLOSE
    = ChannelCloseSummary'LOCAL_FORCE_CLOSE
  succ ChannelCloseSummary'LOCAL_FORCE_CLOSE
    = ChannelCloseSummary'REMOTE_FORCE_CLOSE
  succ ChannelCloseSummary'REMOTE_FORCE_CLOSE
    = ChannelCloseSummary'BREACH_CLOSE
  succ ChannelCloseSummary'BREACH_CLOSE
    = ChannelCloseSummary'FUNDING_CANCELED
  succ ChannelCloseSummary'FUNDING_CANCELED
    = ChannelCloseSummary'ABANDONED
  succ (ChannelCloseSummary'ClosureType'Unrecognized _)
    = Prelude.error
        "ChannelCloseSummary'ClosureType.succ: bad argument: unrecognized value"
  pred ChannelCloseSummary'COOPERATIVE_CLOSE
    = Prelude.error
        "ChannelCloseSummary'ClosureType.pred: bad argument ChannelCloseSummary'COOPERATIVE_CLOSE. This value would be out of bounds."
  pred ChannelCloseSummary'LOCAL_FORCE_CLOSE
    = ChannelCloseSummary'COOPERATIVE_CLOSE
  pred ChannelCloseSummary'REMOTE_FORCE_CLOSE
    = ChannelCloseSummary'LOCAL_FORCE_CLOSE
  pred ChannelCloseSummary'BREACH_CLOSE
    = ChannelCloseSummary'REMOTE_FORCE_CLOSE
  pred ChannelCloseSummary'FUNDING_CANCELED
    = ChannelCloseSummary'BREACH_CLOSE
  pred ChannelCloseSummary'ABANDONED
    = ChannelCloseSummary'FUNDING_CANCELED
  pred (ChannelCloseSummary'ClosureType'Unrecognized _)
    = Prelude.error
        "ChannelCloseSummary'ClosureType.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault ChannelCloseSummary'ClosureType where
  fieldDefault = ChannelCloseSummary'COOPERATIVE_CLOSE
instance Control.DeepSeq.NFData ChannelCloseSummary'ClosureType where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out ChannelCloseSummary'ClosureType
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.csvDelay' @:: Lens' ChannelConstraints Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.chanReserveSat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.dustLimitSat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.maxPendingAmtMsat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.minHtlcMsat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.maxAcceptedHtlcs' @:: Lens' ChannelConstraints Data.Word.Word32@ -}
data ChannelConstraints
  = ChannelConstraints'_constructor {_ChannelConstraints'csvDelay :: !Data.Word.Word32,
                                     _ChannelConstraints'chanReserveSat :: !Data.Word.Word64,
                                     _ChannelConstraints'dustLimitSat :: !Data.Word.Word64,
                                     _ChannelConstraints'maxPendingAmtMsat :: !Data.Word.Word64,
                                     _ChannelConstraints'minHtlcMsat :: !Data.Word.Word64,
                                     _ChannelConstraints'maxAcceptedHtlcs :: !Data.Word.Word32,
                                     _ChannelConstraints'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelConstraints where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelConstraints
instance Data.ProtoLens.Field.HasField ChannelConstraints "csvDelay" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'csvDelay
           (\ x__ y__ -> x__ {_ChannelConstraints'csvDelay = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelConstraints "chanReserveSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'chanReserveSat
           (\ x__ y__ -> x__ {_ChannelConstraints'chanReserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelConstraints "dustLimitSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'dustLimitSat
           (\ x__ y__ -> x__ {_ChannelConstraints'dustLimitSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelConstraints "maxPendingAmtMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'maxPendingAmtMsat
           (\ x__ y__ -> x__ {_ChannelConstraints'maxPendingAmtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelConstraints "minHtlcMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'minHtlcMsat
           (\ x__ y__ -> x__ {_ChannelConstraints'minHtlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelConstraints "maxAcceptedHtlcs" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelConstraints'maxAcceptedHtlcs
           (\ x__ y__ -> x__ {_ChannelConstraints'maxAcceptedHtlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelConstraints where
  messageName _ = Data.Text.pack "lnrpc.ChannelConstraints"
  packedMessageDescriptor _
    = "\n\
      \\DC2ChannelConstraints\DC2\ESC\n\
      \\tcsv_delay\CAN\SOH \SOH(\rR\bcsvDelay\DC2(\n\
      \\DLEchan_reserve_sat\CAN\STX \SOH(\EOTR\SOchanReserveSat\DC2$\n\
      \\SOdust_limit_sat\CAN\ETX \SOH(\EOTR\fdustLimitSat\DC2/\n\
      \\DC4max_pending_amt_msat\CAN\EOT \SOH(\EOTR\DC1maxPendingAmtMsat\DC2\"\n\
      \\rmin_htlc_msat\CAN\ENQ \SOH(\EOTR\vminHtlcMsat\DC2,\n\
      \\DC2max_accepted_htlcs\CAN\ACK \SOH(\rR\DLEmaxAcceptedHtlcs"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        csvDelay__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "csv_delay"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"csvDelay")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
        chanReserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanReserveSat")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
        dustLimitSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dust_limit_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"dustLimitSat")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
        maxPendingAmtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_pending_amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxPendingAmtMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
        minHtlcMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minHtlcMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
        maxAcceptedHtlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_accepted_htlcs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxAcceptedHtlcs")) ::
              Data.ProtoLens.FieldDescriptor ChannelConstraints
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, csvDelay__field_descriptor),
           (Data.ProtoLens.Tag 2, chanReserveSat__field_descriptor),
           (Data.ProtoLens.Tag 3, dustLimitSat__field_descriptor),
           (Data.ProtoLens.Tag 4, maxPendingAmtMsat__field_descriptor),
           (Data.ProtoLens.Tag 5, minHtlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 6, maxAcceptedHtlcs__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelConstraints'_unknownFields
        (\ x__ y__ -> x__ {_ChannelConstraints'_unknownFields = y__})
  defMessage
    = ChannelConstraints'_constructor
        {_ChannelConstraints'csvDelay = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'chanReserveSat = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'dustLimitSat = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'maxPendingAmtMsat = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'minHtlcMsat = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'maxAcceptedHtlcs = Data.ProtoLens.fieldDefault,
         _ChannelConstraints'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelConstraints
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelConstraints
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "csv_delay"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"csvDelay") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_reserve_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"chanReserveSat") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "dust_limit_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"dustLimitSat") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "max_pending_amt_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxPendingAmtMsat") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "min_htlc_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlcMsat") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_accepted_htlcs"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxAcceptedHtlcs") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelConstraints"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"csvDelay") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"chanReserveSat") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"dustLimitSat") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"maxPendingAmtMsat") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view (Data.ProtoLens.Field.field @"minHtlcMsat") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"maxAcceptedHtlcs") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData ChannelConstraints where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelConstraints'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelConstraints'csvDelay x__)
                (Control.DeepSeq.deepseq
                   (_ChannelConstraints'chanReserveSat x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelConstraints'dustLimitSat x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelConstraints'maxPendingAmtMsat x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelConstraints'minHtlcMsat x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelConstraints'maxAcceptedHtlcs x__) ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channelId' @:: Lens' ChannelEdge Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.chanPoint' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.lastUpdate' @:: Lens' ChannelEdge Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.node1Pub' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.node2Pub' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' ChannelEdge Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.node1Policy' @:: Lens' ChannelEdge RoutingPolicy@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'node1Policy' @:: Lens' ChannelEdge (Prelude.Maybe RoutingPolicy)@
         * 'Proto.Lnrpc.Ln0_Fields.node2Policy' @:: Lens' ChannelEdge RoutingPolicy@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'node2Policy' @:: Lens' ChannelEdge (Prelude.Maybe RoutingPolicy)@ -}
data ChannelEdge
  = ChannelEdge'_constructor {_ChannelEdge'channelId :: !Data.Word.Word64,
                              _ChannelEdge'chanPoint :: !Data.Text.Text,
                              _ChannelEdge'lastUpdate :: !Data.Word.Word32,
                              _ChannelEdge'node1Pub :: !Data.Text.Text,
                              _ChannelEdge'node2Pub :: !Data.Text.Text,
                              _ChannelEdge'capacity :: !Data.Int.Int64,
                              _ChannelEdge'node1Policy :: !(Prelude.Maybe RoutingPolicy),
                              _ChannelEdge'node2Policy :: !(Prelude.Maybe RoutingPolicy),
                              _ChannelEdge'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelEdge where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelEdge
instance Data.ProtoLens.Field.HasField ChannelEdge "channelId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'channelId
           (\ x__ y__ -> x__ {_ChannelEdge'channelId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "chanPoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'chanPoint
           (\ x__ y__ -> x__ {_ChannelEdge'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "lastUpdate" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'lastUpdate
           (\ x__ y__ -> x__ {_ChannelEdge'lastUpdate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "node1Pub" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node1Pub
           (\ x__ y__ -> x__ {_ChannelEdge'node1Pub = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "node2Pub" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node2Pub
           (\ x__ y__ -> x__ {_ChannelEdge'node2Pub = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'capacity
           (\ x__ y__ -> x__ {_ChannelEdge'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "node1Policy" RoutingPolicy where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node1Policy
           (\ x__ y__ -> x__ {_ChannelEdge'node1Policy = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelEdge "maybe'node1Policy" (Prelude.Maybe RoutingPolicy) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node1Policy
           (\ x__ y__ -> x__ {_ChannelEdge'node1Policy = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdge "node2Policy" RoutingPolicy where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node2Policy
           (\ x__ y__ -> x__ {_ChannelEdge'node2Policy = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelEdge "maybe'node2Policy" (Prelude.Maybe RoutingPolicy) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdge'node2Policy
           (\ x__ y__ -> x__ {_ChannelEdge'node2Policy = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelEdge where
  messageName _ = Data.Text.pack "lnrpc.ChannelEdge"
  packedMessageDescriptor _
    = "\n\
      \\vChannelEdge\DC2!\n\
      \\n\
      \channel_id\CAN\SOH \SOH(\EOTR\tchannelIdB\STX0\SOH\DC2\GS\n\
      \\n\
      \chan_point\CAN\STX \SOH(\tR\tchanPoint\DC2#\n\
      \\vlast_update\CAN\ETX \SOH(\rR\n\
      \lastUpdateB\STX\CAN\SOH\DC2\ESC\n\
      \\tnode1_pub\CAN\EOT \SOH(\tR\bnode1Pub\DC2\ESC\n\
      \\tnode2_pub\CAN\ENQ \SOH(\tR\bnode2Pub\DC2\SUB\n\
      \\bcapacity\CAN\ACK \SOH(\ETXR\bcapacity\DC27\n\
      \\fnode1_policy\CAN\a \SOH(\v2\DC4.lnrpc.RoutingPolicyR\vnode1Policy\DC27\n\
      \\fnode2_policy\CAN\b \SOH(\v2\DC4.lnrpc.RoutingPolicyR\vnode2Policy"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelId")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        chanPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_point"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanPoint")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        lastUpdate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_update"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastUpdate")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        node1Pub__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node1_pub"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"node1Pub")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        node2Pub__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node2_pub"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"node2Pub")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        node1Policy__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node1_policy"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor RoutingPolicy)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'node1Policy")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
        node2Policy__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node2_policy"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor RoutingPolicy)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'node2Policy")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdge
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelId__field_descriptor),
           (Data.ProtoLens.Tag 2, chanPoint__field_descriptor),
           (Data.ProtoLens.Tag 3, lastUpdate__field_descriptor),
           (Data.ProtoLens.Tag 4, node1Pub__field_descriptor),
           (Data.ProtoLens.Tag 5, node2Pub__field_descriptor),
           (Data.ProtoLens.Tag 6, capacity__field_descriptor),
           (Data.ProtoLens.Tag 7, node1Policy__field_descriptor),
           (Data.ProtoLens.Tag 8, node2Policy__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelEdge'_unknownFields
        (\ x__ y__ -> x__ {_ChannelEdge'_unknownFields = y__})
  defMessage
    = ChannelEdge'_constructor
        {_ChannelEdge'channelId = Data.ProtoLens.fieldDefault,
         _ChannelEdge'chanPoint = Data.ProtoLens.fieldDefault,
         _ChannelEdge'lastUpdate = Data.ProtoLens.fieldDefault,
         _ChannelEdge'node1Pub = Data.ProtoLens.fieldDefault,
         _ChannelEdge'node2Pub = Data.ProtoLens.fieldDefault,
         _ChannelEdge'capacity = Data.ProtoLens.fieldDefault,
         _ChannelEdge'node1Policy = Prelude.Nothing,
         _ChannelEdge'node2Policy = Prelude.Nothing,
         _ChannelEdge'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelEdge -> Data.ProtoLens.Encoding.Bytes.Parser ChannelEdge
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "channel_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"channelId") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "chan_point"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPoint") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "last_update"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lastUpdate") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "node1_pub"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"node1Pub") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "node2_pub"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"node2Pub") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                        58
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "node1_policy"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"node1Policy") y x)
                        66
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "node2_policy"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"node2Policy") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelEdge"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"channelId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanPoint") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"lastUpdate") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"node1Pub") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                               ((Prelude..)
                                  (\ bs
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                             (Prelude.fromIntegral (Data.ByteString.length bs)))
                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                  Data.Text.Encoding.encodeUtf8 _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"node2Pub") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         ((Data.Monoid.<>)
                            (let
                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (case
                                    Lens.Family2.view
                                      (Data.ProtoLens.Field.field @"maybe'node1Policy") _x
                                of
                                  Prelude.Nothing -> Data.Monoid.mempty
                                  (Prelude.Just _v)
                                    -> (Data.Monoid.<>)
                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
                                         ((Prelude..)
                                            (\ bs
                                               -> (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       (Prelude.fromIntegral
                                                          (Data.ByteString.length bs)))
                                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                            Data.ProtoLens.encodeMessage _v))
                               ((Data.Monoid.<>)
                                  (case
                                       Lens.Family2.view
                                         (Data.ProtoLens.Field.field @"maybe'node2Policy") _x
                                   of
                                     Prelude.Nothing -> Data.Monoid.mempty
                                     (Prelude.Just _v)
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
                                            ((Prelude..)
                                               (\ bs
                                                  -> (Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                          (Prelude.fromIntegral
                                                             (Data.ByteString.length bs)))
                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                               Data.ProtoLens.encodeMessage _v))
                                  (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                     (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))
instance Control.DeepSeq.NFData ChannelEdge where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelEdge'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelEdge'channelId x__)
                (Control.DeepSeq.deepseq
                   (_ChannelEdge'chanPoint x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelEdge'lastUpdate x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelEdge'node1Pub x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelEdge'node2Pub x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelEdge'capacity x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelEdge'node1Policy x__)
                                  (Control.DeepSeq.deepseq (_ChannelEdge'node2Policy x__) ()))))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' ChannelEdgeUpdate Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.chanPoint' @:: Lens' ChannelEdgeUpdate ChannelPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'chanPoint' @:: Lens' ChannelEdgeUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' ChannelEdgeUpdate Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.routingPolicy' @:: Lens' ChannelEdgeUpdate RoutingPolicy@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'routingPolicy' @:: Lens' ChannelEdgeUpdate (Prelude.Maybe RoutingPolicy)@
         * 'Proto.Lnrpc.Ln0_Fields.advertisingNode' @:: Lens' ChannelEdgeUpdate Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.connectingNode' @:: Lens' ChannelEdgeUpdate Data.Text.Text@ -}
data ChannelEdgeUpdate
  = ChannelEdgeUpdate'_constructor {_ChannelEdgeUpdate'chanId :: !Data.Word.Word64,
                                    _ChannelEdgeUpdate'chanPoint :: !(Prelude.Maybe ChannelPoint),
                                    _ChannelEdgeUpdate'capacity :: !Data.Int.Int64,
                                    _ChannelEdgeUpdate'routingPolicy :: !(Prelude.Maybe RoutingPolicy),
                                    _ChannelEdgeUpdate'advertisingNode :: !Data.Text.Text,
                                    _ChannelEdgeUpdate'connectingNode :: !Data.Text.Text,
                                    _ChannelEdgeUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelEdgeUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelEdgeUpdate
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'chanId
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'chanPoint
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'chanPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'chanPoint
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'capacity
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "routingPolicy" RoutingPolicy where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'routingPolicy
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'routingPolicy = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "maybe'routingPolicy" (Prelude.Maybe RoutingPolicy) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'routingPolicy
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'routingPolicy = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "advertisingNode" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'advertisingNode
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'advertisingNode = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEdgeUpdate "connectingNode" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEdgeUpdate'connectingNode
           (\ x__ y__ -> x__ {_ChannelEdgeUpdate'connectingNode = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelEdgeUpdate where
  messageName _ = Data.Text.pack "lnrpc.ChannelEdgeUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC1ChannelEdgeUpdate\DC2\ESC\n\
      \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC22\n\
      \\n\
      \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC2\SUB\n\
      \\bcapacity\CAN\ETX \SOH(\ETXR\bcapacity\DC2;\n\
      \\SOrouting_policy\CAN\EOT \SOH(\v2\DC4.lnrpc.RoutingPolicyR\rroutingPolicy\DC2)\n\
      \\DLEadvertising_node\CAN\ENQ \SOH(\tR\SIadvertisingNode\DC2'\n\
      \\SIconnecting_node\CAN\ACK \SOH(\tR\SOconnectingNode"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
        chanPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanPoint")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
        routingPolicy__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "routing_policy"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor RoutingPolicy)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'routingPolicy")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
        advertisingNode__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "advertising_node"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"advertisingNode")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
        connectingNode__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "connecting_node"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"connectingNode")) ::
              Data.ProtoLens.FieldDescriptor ChannelEdgeUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanId__field_descriptor),
           (Data.ProtoLens.Tag 2, chanPoint__field_descriptor),
           (Data.ProtoLens.Tag 3, capacity__field_descriptor),
           (Data.ProtoLens.Tag 4, routingPolicy__field_descriptor),
           (Data.ProtoLens.Tag 5, advertisingNode__field_descriptor),
           (Data.ProtoLens.Tag 6, connectingNode__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelEdgeUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ChannelEdgeUpdate'_unknownFields = y__})
  defMessage
    = ChannelEdgeUpdate'_constructor
        {_ChannelEdgeUpdate'chanId = Data.ProtoLens.fieldDefault,
         _ChannelEdgeUpdate'chanPoint = Prelude.Nothing,
         _ChannelEdgeUpdate'capacity = Data.ProtoLens.fieldDefault,
         _ChannelEdgeUpdate'routingPolicy = Prelude.Nothing,
         _ChannelEdgeUpdate'advertisingNode = Data.ProtoLens.fieldDefault,
         _ChannelEdgeUpdate'connectingNode = Data.ProtoLens.fieldDefault,
         _ChannelEdgeUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelEdgeUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelEdgeUpdate
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "chan_point"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPoint") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "routing_policy"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"routingPolicy") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "advertising_node"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"advertisingNode") y x)
                        50
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "connecting_node"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"connectingNode") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelEdgeUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view
                       (Data.ProtoLens.Field.field @"maybe'chanPoint") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (case
                           Lens.Family2.view
                             (Data.ProtoLens.Field.field @"maybe'routingPolicy") _x
                       of
                         Prelude.Nothing -> Data.Monoid.mempty
                         (Prelude.Just _v)
                           -> (Data.Monoid.<>)
                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                ((Prelude..)
                                   (\ bs
                                      -> (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                   Data.ProtoLens.encodeMessage _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"advertisingNode") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"connectingNode") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                                     ((Prelude..)
                                        (\ bs
                                           -> (Data.Monoid.<>)
                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                   (Prelude.fromIntegral
                                                      (Data.ByteString.length bs)))
                                                (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                        Data.Text.Encoding.encodeUtf8 _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData ChannelEdgeUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelEdgeUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelEdgeUpdate'chanId x__)
                (Control.DeepSeq.deepseq
                   (_ChannelEdgeUpdate'chanPoint x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelEdgeUpdate'capacity x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelEdgeUpdate'routingPolicy x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelEdgeUpdate'advertisingNode x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelEdgeUpdate'connectingNode x__) ()))))))
{- | Fields :
      -}
data ChannelEventSubscription
  = ChannelEventSubscription'_constructor {_ChannelEventSubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelEventSubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelEventSubscription
instance Data.ProtoLens.Message ChannelEventSubscription where
  messageName _ = Data.Text.pack "lnrpc.ChannelEventSubscription"
  packedMessageDescriptor _
    = "\n\
      \\CANChannelEventSubscription"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelEventSubscription'_unknownFields
        (\ x__ y__ -> x__ {_ChannelEventSubscription'_unknownFields = y__})
  defMessage
    = ChannelEventSubscription'_constructor
        {_ChannelEventSubscription'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelEventSubscription
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelEventSubscription
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelEventSubscription"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ChannelEventSubscription where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelEventSubscription'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.type'' @:: Lens' ChannelEventUpdate ChannelEventUpdate'UpdateType@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'channel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelEventUpdate'Channel)@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'openChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe Channel)@
         * 'Proto.Lnrpc.Ln0_Fields.openChannel' @:: Lens' ChannelEventUpdate Channel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'closedChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelCloseSummary)@
         * 'Proto.Lnrpc.Ln0_Fields.closedChannel' @:: Lens' ChannelEventUpdate ChannelCloseSummary@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'activeChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.activeChannel' @:: Lens' ChannelEventUpdate ChannelPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'inactiveChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.inactiveChannel' @:: Lens' ChannelEventUpdate ChannelPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'pendingOpenChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe PendingUpdate)@
         * 'Proto.Lnrpc.Ln0_Fields.pendingOpenChannel' @:: Lens' ChannelEventUpdate PendingUpdate@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fullyResolvedChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.fullyResolvedChannel' @:: Lens' ChannelEventUpdate ChannelPoint@ -}
data ChannelEventUpdate
  = ChannelEventUpdate'_constructor {_ChannelEventUpdate'type' :: !ChannelEventUpdate'UpdateType,
                                     _ChannelEventUpdate'channel :: !(Prelude.Maybe ChannelEventUpdate'Channel),
                                     _ChannelEventUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelEventUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelEventUpdate
data ChannelEventUpdate'Channel
  = ChannelEventUpdate'OpenChannel !Channel |
    ChannelEventUpdate'ClosedChannel !ChannelCloseSummary |
    ChannelEventUpdate'ActiveChannel !ChannelPoint |
    ChannelEventUpdate'InactiveChannel !ChannelPoint |
    ChannelEventUpdate'PendingOpenChannel !PendingUpdate |
    ChannelEventUpdate'FullyResolvedChannel !ChannelPoint
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ChannelEventUpdate'Channel
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "type'" ChannelEventUpdate'UpdateType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'type'
           (\ x__ y__ -> x__ {_ChannelEventUpdate'type' = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'channel" (Prelude.Maybe ChannelEventUpdate'Channel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'openChannel" (Prelude.Maybe Channel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'OpenChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelEventUpdate'OpenChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "openChannel" Channel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'OpenChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelEventUpdate'OpenChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'closedChannel" (Prelude.Maybe ChannelCloseSummary) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'ClosedChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelEventUpdate'ClosedChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "closedChannel" ChannelCloseSummary where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'ClosedChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelEventUpdate'ClosedChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'activeChannel" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'ActiveChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelEventUpdate'ActiveChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "activeChannel" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'ActiveChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelEventUpdate'ActiveChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'inactiveChannel" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'InactiveChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelEventUpdate'InactiveChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "inactiveChannel" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'InactiveChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelEventUpdate'InactiveChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'pendingOpenChannel" (Prelude.Maybe PendingUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'PendingOpenChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__
              -> Prelude.fmap ChannelEventUpdate'PendingOpenChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "pendingOpenChannel" PendingUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'PendingOpenChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__
                 -> Prelude.fmap ChannelEventUpdate'PendingOpenChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "maybe'fullyResolvedChannel" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelEventUpdate'FullyResolvedChannel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__
              -> Prelude.fmap ChannelEventUpdate'FullyResolvedChannel y__))
instance Data.ProtoLens.Field.HasField ChannelEventUpdate "fullyResolvedChannel" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelEventUpdate'channel
           (\ x__ y__ -> x__ {_ChannelEventUpdate'channel = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelEventUpdate'FullyResolvedChannel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__
                 -> Prelude.fmap ChannelEventUpdate'FullyResolvedChannel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message ChannelEventUpdate where
  messageName _ = Data.Text.pack "lnrpc.ChannelEventUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC2ChannelEventUpdate\DC23\n\
      \\fopen_channel\CAN\SOH \SOH(\v2\SO.lnrpc.ChannelH\NULR\vopenChannel\DC2C\n\
      \\SOclosed_channel\CAN\STX \SOH(\v2\SUB.lnrpc.ChannelCloseSummaryH\NULR\rclosedChannel\DC2<\n\
      \\SOactive_channel\CAN\ETX \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\ractiveChannel\DC2@\n\
      \\DLEinactive_channel\CAN\EOT \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\SIinactiveChannel\DC2H\n\
      \\DC4pending_open_channel\CAN\ACK \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\DC2pendingOpenChannel\DC2K\n\
      \\SYNfully_resolved_channel\CAN\a \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\DC4fullyResolvedChannel\DC28\n\
      \\EOTtype\CAN\ENQ \SOH(\SO2$.lnrpc.ChannelEventUpdate.UpdateTypeR\EOTtype\"\146\SOH\n\
      \\n\
      \UpdateType\DC2\DLE\n\
      \\fOPEN_CHANNEL\DLE\NUL\DC2\DC2\n\
      \\SOCLOSED_CHANNEL\DLE\SOH\DC2\DC2\n\
      \\SOACTIVE_CHANNEL\DLE\STX\DC2\DC4\n\
      \\DLEINACTIVE_CHANNEL\DLE\ETX\DC2\CAN\n\
      \\DC4PENDING_OPEN_CHANNEL\DLE\EOT\DC2\SUB\n\
      \\SYNFULLY_RESOLVED_CHANNEL\DLE\ENQB\t\n\
      \\achannel"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        type'__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelEventUpdate'UpdateType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"type'")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        openChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "open_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Channel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'openChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        closedChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closed_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelCloseSummary)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'closedChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        activeChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "active_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'activeChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        inactiveChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "inactive_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'inactiveChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        pendingOpenChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_open_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'pendingOpenChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
        fullyResolvedChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fully_resolved_channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fullyResolvedChannel")) ::
              Data.ProtoLens.FieldDescriptor ChannelEventUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 5, type'__field_descriptor),
           (Data.ProtoLens.Tag 1, openChannel__field_descriptor),
           (Data.ProtoLens.Tag 2, closedChannel__field_descriptor),
           (Data.ProtoLens.Tag 3, activeChannel__field_descriptor),
           (Data.ProtoLens.Tag 4, inactiveChannel__field_descriptor),
           (Data.ProtoLens.Tag 6, pendingOpenChannel__field_descriptor),
           (Data.ProtoLens.Tag 7, fullyResolvedChannel__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelEventUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ChannelEventUpdate'_unknownFields = y__})
  defMessage
    = ChannelEventUpdate'_constructor
        {_ChannelEventUpdate'type' = Data.ProtoLens.fieldDefault,
         _ChannelEventUpdate'channel = Prelude.Nothing,
         _ChannelEventUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelEventUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelEventUpdate
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "type"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") y x)
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "open_channel"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"openChannel") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "closed_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closedChannel") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "active_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"activeChannel") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "inactive_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"inactiveChannel") y x)
                        50
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "pending_open_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingOpenChannel") y x)
                        58
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "fully_resolved_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fullyResolvedChannel") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelEventUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"type'") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                      ((Prelude..)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
                         Prelude.fromEnum _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'channel") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just (ChannelEventUpdate'OpenChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v)
                   (Prelude.Just (ChannelEventUpdate'ClosedChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v)
                   (Prelude.Just (ChannelEventUpdate'ActiveChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v)
                   (Prelude.Just (ChannelEventUpdate'InactiveChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v)
                   (Prelude.Just (ChannelEventUpdate'PendingOpenChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v)
                   (Prelude.Just (ChannelEventUpdate'FullyResolvedChannel v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData ChannelEventUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelEventUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelEventUpdate'type' x__)
                (Control.DeepSeq.deepseq (_ChannelEventUpdate'channel x__) ()))
instance Control.DeepSeq.NFData ChannelEventUpdate'Channel where
  rnf (ChannelEventUpdate'OpenChannel x__) = Control.DeepSeq.rnf x__
  rnf (ChannelEventUpdate'ClosedChannel x__)
    = Control.DeepSeq.rnf x__
  rnf (ChannelEventUpdate'ActiveChannel x__)
    = Control.DeepSeq.rnf x__
  rnf (ChannelEventUpdate'InactiveChannel x__)
    = Control.DeepSeq.rnf x__
  rnf (ChannelEventUpdate'PendingOpenChannel x__)
    = Control.DeepSeq.rnf x__
  rnf (ChannelEventUpdate'FullyResolvedChannel x__)
    = Control.DeepSeq.rnf x__
_ChannelEventUpdate'OpenChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel Channel
_ChannelEventUpdate'OpenChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'OpenChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'OpenChannel p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelEventUpdate'ClosedChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel ChannelCloseSummary
_ChannelEventUpdate'ClosedChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'ClosedChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'ClosedChannel p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelEventUpdate'ActiveChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel ChannelPoint
_ChannelEventUpdate'ActiveChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'ActiveChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'ActiveChannel p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelEventUpdate'InactiveChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel ChannelPoint
_ChannelEventUpdate'InactiveChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'InactiveChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'InactiveChannel p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelEventUpdate'PendingOpenChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel PendingUpdate
_ChannelEventUpdate'PendingOpenChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'PendingOpenChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'PendingOpenChannel p__val)
                -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelEventUpdate'FullyResolvedChannel ::
  Data.ProtoLens.Prism.Prism' ChannelEventUpdate'Channel ChannelPoint
_ChannelEventUpdate'FullyResolvedChannel
  = Data.ProtoLens.Prism.prism'
      ChannelEventUpdate'FullyResolvedChannel
      (\ p__
         -> case p__ of
              (ChannelEventUpdate'FullyResolvedChannel p__val)
                -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
newtype ChannelEventUpdate'UpdateType'UnrecognizedValue
  = ChannelEventUpdate'UpdateType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ChannelEventUpdate'UpdateType'UnrecognizedValue
data ChannelEventUpdate'UpdateType
  = ChannelEventUpdate'OPEN_CHANNEL |
    ChannelEventUpdate'CLOSED_CHANNEL |
    ChannelEventUpdate'ACTIVE_CHANNEL |
    ChannelEventUpdate'INACTIVE_CHANNEL |
    ChannelEventUpdate'PENDING_OPEN_CHANNEL |
    ChannelEventUpdate'FULLY_RESOLVED_CHANNEL |
    ChannelEventUpdate'UpdateType'Unrecognized !ChannelEventUpdate'UpdateType'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum ChannelEventUpdate'UpdateType where
  maybeToEnum 0 = Prelude.Just ChannelEventUpdate'OPEN_CHANNEL
  maybeToEnum 1 = Prelude.Just ChannelEventUpdate'CLOSED_CHANNEL
  maybeToEnum 2 = Prelude.Just ChannelEventUpdate'ACTIVE_CHANNEL
  maybeToEnum 3 = Prelude.Just ChannelEventUpdate'INACTIVE_CHANNEL
  maybeToEnum 4
    = Prelude.Just ChannelEventUpdate'PENDING_OPEN_CHANNEL
  maybeToEnum 5
    = Prelude.Just ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
  maybeToEnum k
    = Prelude.Just
        (ChannelEventUpdate'UpdateType'Unrecognized
           (ChannelEventUpdate'UpdateType'UnrecognizedValue
              (Prelude.fromIntegral k)))
  showEnum ChannelEventUpdate'OPEN_CHANNEL = "OPEN_CHANNEL"
  showEnum ChannelEventUpdate'CLOSED_CHANNEL = "CLOSED_CHANNEL"
  showEnum ChannelEventUpdate'ACTIVE_CHANNEL = "ACTIVE_CHANNEL"
  showEnum ChannelEventUpdate'INACTIVE_CHANNEL = "INACTIVE_CHANNEL"
  showEnum ChannelEventUpdate'PENDING_OPEN_CHANNEL
    = "PENDING_OPEN_CHANNEL"
  showEnum ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
    = "FULLY_RESOLVED_CHANNEL"
  showEnum
    (ChannelEventUpdate'UpdateType'Unrecognized (ChannelEventUpdate'UpdateType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "OPEN_CHANNEL"
    = Prelude.Just ChannelEventUpdate'OPEN_CHANNEL
    | (Prelude.==) k "CLOSED_CHANNEL"
    = Prelude.Just ChannelEventUpdate'CLOSED_CHANNEL
    | (Prelude.==) k "ACTIVE_CHANNEL"
    = Prelude.Just ChannelEventUpdate'ACTIVE_CHANNEL
    | (Prelude.==) k "INACTIVE_CHANNEL"
    = Prelude.Just ChannelEventUpdate'INACTIVE_CHANNEL
    | (Prelude.==) k "PENDING_OPEN_CHANNEL"
    = Prelude.Just ChannelEventUpdate'PENDING_OPEN_CHANNEL
    | (Prelude.==) k "FULLY_RESOLVED_CHANNEL"
    = Prelude.Just ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded ChannelEventUpdate'UpdateType where
  minBound = ChannelEventUpdate'OPEN_CHANNEL
  maxBound = ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
instance Prelude.Enum ChannelEventUpdate'UpdateType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum UpdateType: " (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum ChannelEventUpdate'OPEN_CHANNEL = 0
  fromEnum ChannelEventUpdate'CLOSED_CHANNEL = 1
  fromEnum ChannelEventUpdate'ACTIVE_CHANNEL = 2
  fromEnum ChannelEventUpdate'INACTIVE_CHANNEL = 3
  fromEnum ChannelEventUpdate'PENDING_OPEN_CHANNEL = 4
  fromEnum ChannelEventUpdate'FULLY_RESOLVED_CHANNEL = 5
  fromEnum
    (ChannelEventUpdate'UpdateType'Unrecognized (ChannelEventUpdate'UpdateType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
    = Prelude.error
        "ChannelEventUpdate'UpdateType.succ: bad argument ChannelEventUpdate'FULLY_RESOLVED_CHANNEL. This value would be out of bounds."
  succ ChannelEventUpdate'OPEN_CHANNEL
    = ChannelEventUpdate'CLOSED_CHANNEL
  succ ChannelEventUpdate'CLOSED_CHANNEL
    = ChannelEventUpdate'ACTIVE_CHANNEL
  succ ChannelEventUpdate'ACTIVE_CHANNEL
    = ChannelEventUpdate'INACTIVE_CHANNEL
  succ ChannelEventUpdate'INACTIVE_CHANNEL
    = ChannelEventUpdate'PENDING_OPEN_CHANNEL
  succ ChannelEventUpdate'PENDING_OPEN_CHANNEL
    = ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
  succ (ChannelEventUpdate'UpdateType'Unrecognized _)
    = Prelude.error
        "ChannelEventUpdate'UpdateType.succ: bad argument: unrecognized value"
  pred ChannelEventUpdate'OPEN_CHANNEL
    = Prelude.error
        "ChannelEventUpdate'UpdateType.pred: bad argument ChannelEventUpdate'OPEN_CHANNEL. This value would be out of bounds."
  pred ChannelEventUpdate'CLOSED_CHANNEL
    = ChannelEventUpdate'OPEN_CHANNEL
  pred ChannelEventUpdate'ACTIVE_CHANNEL
    = ChannelEventUpdate'CLOSED_CHANNEL
  pred ChannelEventUpdate'INACTIVE_CHANNEL
    = ChannelEventUpdate'ACTIVE_CHANNEL
  pred ChannelEventUpdate'PENDING_OPEN_CHANNEL
    = ChannelEventUpdate'INACTIVE_CHANNEL
  pred ChannelEventUpdate'FULLY_RESOLVED_CHANNEL
    = ChannelEventUpdate'PENDING_OPEN_CHANNEL
  pred (ChannelEventUpdate'UpdateType'Unrecognized _)
    = Prelude.error
        "ChannelEventUpdate'UpdateType.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault ChannelEventUpdate'UpdateType where
  fieldDefault = ChannelEventUpdate'OPEN_CHANNEL
instance Control.DeepSeq.NFData ChannelEventUpdate'UpdateType where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out ChannelEventUpdate'UpdateType
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.nodes' @:: Lens' ChannelGraph [LightningNode]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'nodes' @:: Lens' ChannelGraph (Data.Vector.Vector LightningNode)@
         * 'Proto.Lnrpc.Ln0_Fields.edges' @:: Lens' ChannelGraph [ChannelEdge]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'edges' @:: Lens' ChannelGraph (Data.Vector.Vector ChannelEdge)@ -}
data ChannelGraph
  = ChannelGraph'_constructor {_ChannelGraph'nodes :: !(Data.Vector.Vector LightningNode),
                               _ChannelGraph'edges :: !(Data.Vector.Vector ChannelEdge),
                               _ChannelGraph'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelGraph where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelGraph
instance Data.ProtoLens.Field.HasField ChannelGraph "nodes" [LightningNode] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelGraph'nodes (\ x__ y__ -> x__ {_ChannelGraph'nodes = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ChannelGraph "vec'nodes" (Data.Vector.Vector LightningNode) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelGraph'nodes (\ x__ y__ -> x__ {_ChannelGraph'nodes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelGraph "edges" [ChannelEdge] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelGraph'edges (\ x__ y__ -> x__ {_ChannelGraph'edges = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ChannelGraph "vec'edges" (Data.Vector.Vector ChannelEdge) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelGraph'edges (\ x__ y__ -> x__ {_ChannelGraph'edges = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelGraph where
  messageName _ = Data.Text.pack "lnrpc.ChannelGraph"
  packedMessageDescriptor _
    = "\n\
      \\fChannelGraph\DC2*\n\
      \\ENQnodes\CAN\SOH \ETX(\v2\DC4.lnrpc.LightningNodeR\ENQnodes\DC2(\n\
      \\ENQedges\CAN\STX \ETX(\v2\DC2.lnrpc.ChannelEdgeR\ENQedges"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        nodes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "nodes"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor LightningNode)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"nodes")) ::
              Data.ProtoLens.FieldDescriptor ChannelGraph
        edges__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "edges"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelEdge)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"edges")) ::
              Data.ProtoLens.FieldDescriptor ChannelGraph
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, nodes__field_descriptor),
           (Data.ProtoLens.Tag 2, edges__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelGraph'_unknownFields
        (\ x__ y__ -> x__ {_ChannelGraph'_unknownFields = y__})
  defMessage
    = ChannelGraph'_constructor
        {_ChannelGraph'nodes = Data.Vector.Generic.empty,
         _ChannelGraph'edges = Data.Vector.Generic.empty,
         _ChannelGraph'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelGraph
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelEdge
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld LightningNode
                -> Data.ProtoLens.Encoding.Bytes.Parser ChannelGraph
        loop x mutable'edges mutable'nodes
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'edges <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'edges)
                      frozen'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'nodes)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'edges") frozen'edges
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'nodes") frozen'nodes x)))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "nodes"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'nodes y)
                                loop x mutable'edges v
                        18
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "edges"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'edges y)
                                loop x v mutable'nodes
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'edges mutable'nodes
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'edges <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              mutable'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'edges mutable'nodes)
          "ChannelGraph"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _v
                   -> (Data.Monoid.<>)
                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                        ((Prelude..)
                           (\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                           Data.ProtoLens.encodeMessage _v))
                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'nodes") _x))
             ((Data.Monoid.<>)
                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                   (\ _v
                      -> (Data.Monoid.<>)
                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                           ((Prelude..)
                              (\ bs
                                 -> (Data.Monoid.<>)
                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                              Data.ProtoLens.encodeMessage _v))
                   (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'edges") _x))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData ChannelGraph where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelGraph'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelGraph'nodes x__)
                (Control.DeepSeq.deepseq (_ChannelGraph'edges x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.includeUnannounced' @:: Lens' ChannelGraphRequest Prelude.Bool@ -}
data ChannelGraphRequest
  = ChannelGraphRequest'_constructor {_ChannelGraphRequest'includeUnannounced :: !Prelude.Bool,
                                      _ChannelGraphRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelGraphRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelGraphRequest
instance Data.ProtoLens.Field.HasField ChannelGraphRequest "includeUnannounced" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelGraphRequest'includeUnannounced
           (\ x__ y__ -> x__ {_ChannelGraphRequest'includeUnannounced = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelGraphRequest where
  messageName _ = Data.Text.pack "lnrpc.ChannelGraphRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3ChannelGraphRequest\DC2/\n\
      \\DC3include_unannounced\CAN\SOH \SOH(\bR\DC2includeUnannounced"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        includeUnannounced__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "include_unannounced"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"includeUnannounced")) ::
              Data.ProtoLens.FieldDescriptor ChannelGraphRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, includeUnannounced__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelGraphRequest'_unknownFields
        (\ x__ y__ -> x__ {_ChannelGraphRequest'_unknownFields = y__})
  defMessage
    = ChannelGraphRequest'_constructor
        {_ChannelGraphRequest'includeUnannounced = Data.ProtoLens.fieldDefault,
         _ChannelGraphRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelGraphRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelGraphRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "include_unannounced"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"includeUnannounced") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelGraphRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"includeUnannounced") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                         _v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ChannelGraphRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelGraphRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelGraphRequest'includeUnannounced x__) ())
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.outputIndex' @:: Lens' ChannelPoint Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fundingTxid' @:: Lens' ChannelPoint (Prelude.Maybe ChannelPoint'FundingTxid)@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fundingTxidBytes' @:: Lens' ChannelPoint (Prelude.Maybe Data.ByteString.ByteString)@
         * 'Proto.Lnrpc.Ln0_Fields.fundingTxidBytes' @:: Lens' ChannelPoint Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fundingTxidStr' @:: Lens' ChannelPoint (Prelude.Maybe Data.Text.Text)@
         * 'Proto.Lnrpc.Ln0_Fields.fundingTxidStr' @:: Lens' ChannelPoint Data.Text.Text@ -}
data ChannelPoint
  = ChannelPoint'_constructor {_ChannelPoint'outputIndex :: !Data.Word.Word32,
                               _ChannelPoint'fundingTxid :: !(Prelude.Maybe ChannelPoint'FundingTxid),
                               _ChannelPoint'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ChannelPoint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ChannelPoint
data ChannelPoint'FundingTxid
  = ChannelPoint'FundingTxidBytes !Data.ByteString.ByteString |
    ChannelPoint'FundingTxidStr !Data.Text.Text
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ChannelPoint'FundingTxid
instance Data.ProtoLens.Field.HasField ChannelPoint "outputIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'outputIndex
           (\ x__ y__ -> x__ {_ChannelPoint'outputIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelPoint "maybe'fundingTxid" (Prelude.Maybe ChannelPoint'FundingTxid) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'fundingTxid
           (\ x__ y__ -> x__ {_ChannelPoint'fundingTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelPoint "maybe'fundingTxidBytes" (Prelude.Maybe Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'fundingTxid
           (\ x__ y__ -> x__ {_ChannelPoint'fundingTxid = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelPoint'FundingTxidBytes x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelPoint'FundingTxidBytes y__))
instance Data.ProtoLens.Field.HasField ChannelPoint "fundingTxidBytes" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'fundingTxid
           (\ x__ y__ -> x__ {_ChannelPoint'fundingTxid = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelPoint'FundingTxidBytes x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelPoint'FundingTxidBytes y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Field.HasField ChannelPoint "maybe'fundingTxidStr" (Prelude.Maybe Data.Text.Text) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'fundingTxid
           (\ x__ y__ -> x__ {_ChannelPoint'fundingTxid = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (ChannelPoint'FundingTxidStr x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap ChannelPoint'FundingTxidStr y__))
instance Data.ProtoLens.Field.HasField ChannelPoint "fundingTxidStr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelPoint'fundingTxid
           (\ x__ y__ -> x__ {_ChannelPoint'fundingTxid = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (ChannelPoint'FundingTxidStr x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap ChannelPoint'FundingTxidStr y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Message ChannelPoint where
  messageName _ = Data.Text.pack "lnrpc.ChannelPoint"
  packedMessageDescriptor _
    = "\n\
      \\fChannelPoint\DC2.\n\
      \\DC2funding_txid_bytes\CAN\SOH \SOH(\fH\NULR\DLEfundingTxidBytes\DC2*\n\
      \\DLEfunding_txid_str\CAN\STX \SOH(\tH\NULR\SOfundingTxidStr\DC2!\n\
      \\foutput_index\CAN\ETX \SOH(\rR\voutputIndexB\SO\n\
      \\ffunding_txid"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        outputIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "output_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"outputIndex")) ::
              Data.ProtoLens.FieldDescriptor ChannelPoint
        fundingTxidBytes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_txid_bytes"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fundingTxidBytes")) ::
              Data.ProtoLens.FieldDescriptor ChannelPoint
        fundingTxidStr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_txid_str"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fundingTxidStr")) ::
              Data.ProtoLens.FieldDescriptor ChannelPoint
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 3, outputIndex__field_descriptor),
           (Data.ProtoLens.Tag 1, fundingTxidBytes__field_descriptor),
           (Data.ProtoLens.Tag 2, fundingTxidStr__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelPoint'_unknownFields
        (\ x__ y__ -> x__ {_ChannelPoint'_unknownFields = y__})
  defMessage
    = ChannelPoint'_constructor
        {_ChannelPoint'outputIndex = Data.ProtoLens.fieldDefault,
         _ChannelPoint'fundingTxid = Prelude.Nothing,
         _ChannelPoint'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelPoint -> Data.ProtoLens.Encoding.Bytes.Parser ChannelPoint
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "output_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outputIndex") y x)
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "funding_txid_bytes"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fundingTxidBytes") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "funding_txid_str"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fundingTxidStr") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ChannelPoint"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"outputIndex") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view
                       (Data.ProtoLens.Field.field @"maybe'fundingTxid") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just (ChannelPoint'FundingTxidBytes v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                          ((\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             v)
                   (Prelude.Just (ChannelPoint'FundingTxidStr v))
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.Text.Encoding.encodeUtf8 v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData ChannelPoint where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelPoint'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelPoint'outputIndex x__)
                (Control.DeepSeq.deepseq (_ChannelPoint'fundingTxid x__) ()))
instance Control.DeepSeq.NFData ChannelPoint'FundingTxid where
  rnf (ChannelPoint'FundingTxidBytes x__) = Control.DeepSeq.rnf x__
  rnf (ChannelPoint'FundingTxidStr x__) = Control.DeepSeq.rnf x__
_ChannelPoint'FundingTxidBytes ::
  Data.ProtoLens.Prism.Prism' ChannelPoint'FundingTxid Data.ByteString.ByteString
_ChannelPoint'FundingTxidBytes
  = Data.ProtoLens.Prism.prism'
      ChannelPoint'FundingTxidBytes
      (\ p__
         -> case p__ of
              (ChannelPoint'FundingTxidBytes p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_ChannelPoint'FundingTxidStr ::
  Data.ProtoLens.Prism.Prism' ChannelPoint'FundingTxid Data.Text.Text
_ChannelPoint'FundingTxidStr
  = Data.ProtoLens.Prism.prism'
      ChannelPoint'FundingTxidStr
      (\ p__
         -> case p__ of
              (ChannelPoint'FundingTxidStr p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' ClosedChannelUpdate Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' ClosedChannelUpdate Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.closedHeight' @:: Lens' ClosedChannelUpdate Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.chanPoint' @:: Lens' ClosedChannelUpdate ChannelPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'chanPoint' @:: Lens' ClosedChannelUpdate (Prelude.Maybe ChannelPoint)@ -}
data ClosedChannelUpdate
  = ClosedChannelUpdate'_constructor {_ClosedChannelUpdate'chanId :: !Data.Word.Word64,
                                      _ClosedChannelUpdate'capacity :: !Data.Int.Int64,
                                      _ClosedChannelUpdate'closedHeight :: !Data.Word.Word32,
                                      _ClosedChannelUpdate'chanPoint :: !(Prelude.Maybe ChannelPoint),
                                      _ClosedChannelUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show ClosedChannelUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out ClosedChannelUpdate
instance Data.ProtoLens.Field.HasField ClosedChannelUpdate "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelUpdate'chanId
           (\ x__ y__ -> x__ {_ClosedChannelUpdate'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelUpdate "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelUpdate'capacity
           (\ x__ y__ -> x__ {_ClosedChannelUpdate'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelUpdate "closedHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelUpdate'closedHeight
           (\ x__ y__ -> x__ {_ClosedChannelUpdate'closedHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelUpdate "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelUpdate'chanPoint
           (\ x__ y__ -> x__ {_ClosedChannelUpdate'chanPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ClosedChannelUpdate "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelUpdate'chanPoint
           (\ x__ y__ -> x__ {_ClosedChannelUpdate'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Message ClosedChannelUpdate where
  messageName _ = Data.Text.pack "lnrpc.ClosedChannelUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC3ClosedChannelUpdate\DC2\ESC\n\
      \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\SUB\n\
      \\bcapacity\CAN\STX \SOH(\ETXR\bcapacity\DC2#\n\
      \\rclosed_height\CAN\ETX \SOH(\rR\fclosedHeight\DC22\n\
      \\n\
      \chan_point\CAN\EOT \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelUpdate
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelUpdate
        closedHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closed_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closedHeight")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelUpdate
        chanPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanPoint")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanId__field_descriptor),
           (Data.ProtoLens.Tag 2, capacity__field_descriptor),
           (Data.ProtoLens.Tag 3, closedHeight__field_descriptor),
           (Data.ProtoLens.Tag 4, chanPoint__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ClosedChannelUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ClosedChannelUpdate'_unknownFields = y__})
  defMessage
    = ClosedChannelUpdate'_constructor
        {_ClosedChannelUpdate'chanId = Data.ProtoLens.fieldDefault,
         _ClosedChannelUpdate'capacity = Data.ProtoLens.fieldDefault,
         _ClosedChannelUpdate'closedHeight = Data.ProtoLens.fieldDefault,
         _ClosedChannelUpdate'chanPoint = Prelude.Nothing,
         _ClosedChannelUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ClosedChannelUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ClosedChannelUpdate
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "closed_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closedHeight") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "chan_point"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPoint") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ClosedChannelUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"closedHeight") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (case
                           Lens.Family2.view
                             (Data.ProtoLens.Field.field @"maybe'chanPoint") _x
                       of
                         Prelude.Nothing -> Data.Monoid.mempty
                         (Prelude.Just _v)
                           -> (Data.Monoid.<>)
                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                ((Prelude..)
                                   (\ bs
                                      -> (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                   Data.ProtoLens.encodeMessage _v))
                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData ClosedChannelUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ClosedChannelUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ClosedChannelUpdate'chanId x__)
                (Control.DeepSeq.deepseq
                   (_ClosedChannelUpdate'capacity x__)
                   (Control.DeepSeq.deepseq
                      (_ClosedChannelUpdate'closedHeight x__)
                      (Control.DeepSeq.deepseq
                         (_ClosedChannelUpdate'chanPoint x__) ()))))
newtype CommitmentType'UnrecognizedValue
  = CommitmentType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out CommitmentType'UnrecognizedValue
data CommitmentType
  = UNKNOWN_COMMITMENT_TYPE |
    LEGACY |
    STATIC_REMOTE_KEY |
    ANCHORS |
    SCRIPT_ENFORCED_LEASE |
    CommitmentType'Unrecognized !CommitmentType'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum CommitmentType where
  maybeToEnum 0 = Prelude.Just UNKNOWN_COMMITMENT_TYPE
  maybeToEnum 1 = Prelude.Just LEGACY
  maybeToEnum 2 = Prelude.Just STATIC_REMOTE_KEY
  maybeToEnum 3 = Prelude.Just ANCHORS
  maybeToEnum 4 = Prelude.Just SCRIPT_ENFORCED_LEASE
  maybeToEnum k
    = Prelude.Just
        (CommitmentType'Unrecognized
           (CommitmentType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum UNKNOWN_COMMITMENT_TYPE = "UNKNOWN_COMMITMENT_TYPE"
  showEnum LEGACY = "LEGACY"
  showEnum STATIC_REMOTE_KEY = "STATIC_REMOTE_KEY"
  showEnum ANCHORS = "ANCHORS"
  showEnum SCRIPT_ENFORCED_LEASE = "SCRIPT_ENFORCED_LEASE"
  showEnum
    (CommitmentType'Unrecognized (CommitmentType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "UNKNOWN_COMMITMENT_TYPE"
    = Prelude.Just UNKNOWN_COMMITMENT_TYPE
    | (Prelude.==) k "LEGACY" = Prelude.Just LEGACY
    | (Prelude.==) k "STATIC_REMOTE_KEY"
    = Prelude.Just STATIC_REMOTE_KEY
    | (Prelude.==) k "ANCHORS" = Prelude.Just ANCHORS
    | (Prelude.==) k "SCRIPT_ENFORCED_LEASE"
    = Prelude.Just SCRIPT_ENFORCED_LEASE
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded CommitmentType where
  minBound = UNKNOWN_COMMITMENT_TYPE
  maxBound = SCRIPT_ENFORCED_LEASE
instance Prelude.Enum CommitmentType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum CommitmentType: "
              (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum UNKNOWN_COMMITMENT_TYPE = 0
  fromEnum LEGACY = 1
  fromEnum STATIC_REMOTE_KEY = 2
  fromEnum ANCHORS = 3
  fromEnum SCRIPT_ENFORCED_LEASE = 4
  fromEnum
    (CommitmentType'Unrecognized (CommitmentType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ SCRIPT_ENFORCED_LEASE
    = Prelude.error
        "CommitmentType.succ: bad argument SCRIPT_ENFORCED_LEASE. This value would be out of bounds."
  succ UNKNOWN_COMMITMENT_TYPE = LEGACY
  succ LEGACY = STATIC_REMOTE_KEY
  succ STATIC_REMOTE_KEY = ANCHORS
  succ ANCHORS = SCRIPT_ENFORCED_LEASE
  succ (CommitmentType'Unrecognized _)
    = Prelude.error
        "CommitmentType.succ: bad argument: unrecognized value"
  pred UNKNOWN_COMMITMENT_TYPE
    = Prelude.error
        "CommitmentType.pred: bad argument UNKNOWN_COMMITMENT_TYPE. This value would be out of bounds."
  pred LEGACY = UNKNOWN_COMMITMENT_TYPE
  pred STATIC_REMOTE_KEY = LEGACY
  pred ANCHORS = STATIC_REMOTE_KEY
  pred SCRIPT_ENFORCED_LEASE = ANCHORS
  pred (CommitmentType'Unrecognized _)
    = Prelude.error
        "CommitmentType.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault CommitmentType where
  fieldDefault = UNKNOWN_COMMITMENT_TYPE
instance Control.DeepSeq.NFData CommitmentType where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out CommitmentType
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channelId' @:: Lens' EdgeLocator Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.directionReverse' @:: Lens' EdgeLocator Prelude.Bool@ -}
data EdgeLocator
  = EdgeLocator'_constructor {_EdgeLocator'channelId :: !Data.Word.Word64,
                              _EdgeLocator'directionReverse :: !Prelude.Bool,
                              _EdgeLocator'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show EdgeLocator where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out EdgeLocator
instance Data.ProtoLens.Field.HasField EdgeLocator "channelId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EdgeLocator'channelId
           (\ x__ y__ -> x__ {_EdgeLocator'channelId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EdgeLocator "directionReverse" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EdgeLocator'directionReverse
           (\ x__ y__ -> x__ {_EdgeLocator'directionReverse = y__}))
        Prelude.id
instance Data.ProtoLens.Message EdgeLocator where
  messageName _ = Data.Text.pack "lnrpc.EdgeLocator"
  packedMessageDescriptor _
    = "\n\
      \\vEdgeLocator\DC2!\n\
      \\n\
      \channel_id\CAN\SOH \SOH(\EOTR\tchannelIdB\STX0\SOH\DC2+\n\
      \\DC1direction_reverse\CAN\STX \SOH(\bR\DLEdirectionReverse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelId")) ::
              Data.ProtoLens.FieldDescriptor EdgeLocator
        directionReverse__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "direction_reverse"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"directionReverse")) ::
              Data.ProtoLens.FieldDescriptor EdgeLocator
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelId__field_descriptor),
           (Data.ProtoLens.Tag 2, directionReverse__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _EdgeLocator'_unknownFields
        (\ x__ y__ -> x__ {_EdgeLocator'_unknownFields = y__})
  defMessage
    = EdgeLocator'_constructor
        {_EdgeLocator'channelId = Data.ProtoLens.fieldDefault,
         _EdgeLocator'directionReverse = Data.ProtoLens.fieldDefault,
         _EdgeLocator'_unknownFields = []}
  parseMessage
    = let
        loop ::
          EdgeLocator -> Data.ProtoLens.Encoding.Bytes.Parser EdgeLocator
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "channel_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"channelId") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "direction_reverse"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"directionReverse") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "EdgeLocator"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"channelId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"directionReverse") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                            _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData EdgeLocator where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_EdgeLocator'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_EdgeLocator'channelId x__)
                (Control.DeepSeq.deepseq (_EdgeLocator'directionReverse x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.name' @:: Lens' Feature Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.isRequired' @:: Lens' Feature Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.isKnown' @:: Lens' Feature Prelude.Bool@ -}
data Feature
  = Feature'_constructor {_Feature'name :: !Data.Text.Text,
                          _Feature'isRequired :: !Prelude.Bool,
                          _Feature'isKnown :: !Prelude.Bool,
                          _Feature'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Feature where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Feature
instance Data.ProtoLens.Field.HasField Feature "name" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Feature'name (\ x__ y__ -> x__ {_Feature'name = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Feature "isRequired" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Feature'isRequired (\ x__ y__ -> x__ {_Feature'isRequired = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Feature "isKnown" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Feature'isKnown (\ x__ y__ -> x__ {_Feature'isKnown = y__}))
        Prelude.id
instance Data.ProtoLens.Message Feature where
  messageName _ = Data.Text.pack "lnrpc.Feature"
  packedMessageDescriptor _
    = "\n\
      \\aFeature\DC2\DC2\n\
      \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\US\n\
      \\vis_required\CAN\ETX \SOH(\bR\n\
      \isRequired\DC2\EM\n\
      \\bis_known\CAN\EOT \SOH(\bR\aisKnown"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        name__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "name"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
              Data.ProtoLens.FieldDescriptor Feature
        isRequired__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "is_required"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"isRequired")) ::
              Data.ProtoLens.FieldDescriptor Feature
        isKnown__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "is_known"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"isKnown")) ::
              Data.ProtoLens.FieldDescriptor Feature
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 2, name__field_descriptor),
           (Data.ProtoLens.Tag 3, isRequired__field_descriptor),
           (Data.ProtoLens.Tag 4, isKnown__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Feature'_unknownFields
        (\ x__ y__ -> x__ {_Feature'_unknownFields = y__})
  defMessage
    = Feature'_constructor
        {_Feature'name = Data.ProtoLens.fieldDefault,
         _Feature'isRequired = Data.ProtoLens.fieldDefault,
         _Feature'isKnown = Data.ProtoLens.fieldDefault,
         _Feature'_unknownFields = []}
  parseMessage
    = let
        loop :: Feature -> Data.ProtoLens.Encoding.Bytes.Parser Feature
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "name"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "is_required"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isRequired") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "is_known"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"isKnown") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "Feature"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"isRequired") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                            _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"isKnown") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                               _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData Feature where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Feature'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Feature'name x__)
                (Control.DeepSeq.deepseq
                   (_Feature'isRequired x__)
                   (Control.DeepSeq.deepseq (_Feature'isKnown x__) ())))
newtype FeatureBit'UnrecognizedValue
  = FeatureBit'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out FeatureBit'UnrecognizedValue
data FeatureBit
  = DATALOSS_PROTECT_REQ |
    DATALOSS_PROTECT_OPT |
    INITIAL_ROUING_SYNC |
    UPFRONT_SHUTDOWN_SCRIPT_REQ |
    UPFRONT_SHUTDOWN_SCRIPT_OPT |
    GOSSIP_QUERIES_REQ |
    GOSSIP_QUERIES_OPT |
    TLV_ONION_REQ |
    TLV_ONION_OPT |
    EXT_GOSSIP_QUERIES_REQ |
    EXT_GOSSIP_QUERIES_OPT |
    STATIC_REMOTE_KEY_REQ |
    STATIC_REMOTE_KEY_OPT |
    PAYMENT_ADDR_REQ |
    PAYMENT_ADDR_OPT |
    MPP_REQ |
    MPP_OPT |
    WUMBO_CHANNELS_REQ |
    WUMBO_CHANNELS_OPT |
    ANCHORS_REQ |
    ANCHORS_OPT |
    ANCHORS_ZERO_FEE_HTLC_REQ |
    ANCHORS_ZERO_FEE_HTLC_OPT |
    AMP_REQ |
    AMP_OPT |
    FeatureBit'Unrecognized !FeatureBit'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum FeatureBit where
  maybeToEnum 0 = Prelude.Just DATALOSS_PROTECT_REQ
  maybeToEnum 1 = Prelude.Just DATALOSS_PROTECT_OPT
  maybeToEnum 3 = Prelude.Just INITIAL_ROUING_SYNC
  maybeToEnum 4 = Prelude.Just UPFRONT_SHUTDOWN_SCRIPT_REQ
  maybeToEnum 5 = Prelude.Just UPFRONT_SHUTDOWN_SCRIPT_OPT
  maybeToEnum 6 = Prelude.Just GOSSIP_QUERIES_REQ
  maybeToEnum 7 = Prelude.Just GOSSIP_QUERIES_OPT
  maybeToEnum 8 = Prelude.Just TLV_ONION_REQ
  maybeToEnum 9 = Prelude.Just TLV_ONION_OPT
  maybeToEnum 10 = Prelude.Just EXT_GOSSIP_QUERIES_REQ
  maybeToEnum 11 = Prelude.Just EXT_GOSSIP_QUERIES_OPT
  maybeToEnum 12 = Prelude.Just STATIC_REMOTE_KEY_REQ
  maybeToEnum 13 = Prelude.Just STATIC_REMOTE_KEY_OPT
  maybeToEnum 14 = Prelude.Just PAYMENT_ADDR_REQ
  maybeToEnum 15 = Prelude.Just PAYMENT_ADDR_OPT
  maybeToEnum 16 = Prelude.Just MPP_REQ
  maybeToEnum 17 = Prelude.Just MPP_OPT
  maybeToEnum 18 = Prelude.Just WUMBO_CHANNELS_REQ
  maybeToEnum 19 = Prelude.Just WUMBO_CHANNELS_OPT
  maybeToEnum 20 = Prelude.Just ANCHORS_REQ
  maybeToEnum 21 = Prelude.Just ANCHORS_OPT
  maybeToEnum 22 = Prelude.Just ANCHORS_ZERO_FEE_HTLC_REQ
  maybeToEnum 23 = Prelude.Just ANCHORS_ZERO_FEE_HTLC_OPT
  maybeToEnum 30 = Prelude.Just AMP_REQ
  maybeToEnum 31 = Prelude.Just AMP_OPT
  maybeToEnum k
    = Prelude.Just
        (FeatureBit'Unrecognized
           (FeatureBit'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum DATALOSS_PROTECT_REQ = "DATALOSS_PROTECT_REQ"
  showEnum DATALOSS_PROTECT_OPT = "DATALOSS_PROTECT_OPT"
  showEnum INITIAL_ROUING_SYNC = "INITIAL_ROUING_SYNC"
  showEnum UPFRONT_SHUTDOWN_SCRIPT_REQ
    = "UPFRONT_SHUTDOWN_SCRIPT_REQ"
  showEnum UPFRONT_SHUTDOWN_SCRIPT_OPT
    = "UPFRONT_SHUTDOWN_SCRIPT_OPT"
  showEnum GOSSIP_QUERIES_REQ = "GOSSIP_QUERIES_REQ"
  showEnum GOSSIP_QUERIES_OPT = "GOSSIP_QUERIES_OPT"
  showEnum TLV_ONION_REQ = "TLV_ONION_REQ"
  showEnum TLV_ONION_OPT = "TLV_ONION_OPT"
  showEnum EXT_GOSSIP_QUERIES_REQ = "EXT_GOSSIP_QUERIES_REQ"
  showEnum EXT_GOSSIP_QUERIES_OPT = "EXT_GOSSIP_QUERIES_OPT"
  showEnum STATIC_REMOTE_KEY_REQ = "STATIC_REMOTE_KEY_REQ"
  showEnum STATIC_REMOTE_KEY_OPT = "STATIC_REMOTE_KEY_OPT"
  showEnum PAYMENT_ADDR_REQ = "PAYMENT_ADDR_REQ"
  showEnum PAYMENT_ADDR_OPT = "PAYMENT_ADDR_OPT"
  showEnum MPP_REQ = "MPP_REQ"
  showEnum MPP_OPT = "MPP_OPT"
  showEnum WUMBO_CHANNELS_REQ = "WUMBO_CHANNELS_REQ"
  showEnum WUMBO_CHANNELS_OPT = "WUMBO_CHANNELS_OPT"
  showEnum ANCHORS_REQ = "ANCHORS_REQ"
  showEnum ANCHORS_OPT = "ANCHORS_OPT"
  showEnum ANCHORS_ZERO_FEE_HTLC_REQ = "ANCHORS_ZERO_FEE_HTLC_REQ"
  showEnum ANCHORS_ZERO_FEE_HTLC_OPT = "ANCHORS_ZERO_FEE_HTLC_OPT"
  showEnum AMP_REQ = "AMP_REQ"
  showEnum AMP_OPT = "AMP_OPT"
  showEnum (FeatureBit'Unrecognized (FeatureBit'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "DATALOSS_PROTECT_REQ"
    = Prelude.Just DATALOSS_PROTECT_REQ
    | (Prelude.==) k "DATALOSS_PROTECT_OPT"
    = Prelude.Just DATALOSS_PROTECT_OPT
    | (Prelude.==) k "INITIAL_ROUING_SYNC"
    = Prelude.Just INITIAL_ROUING_SYNC
    | (Prelude.==) k "UPFRONT_SHUTDOWN_SCRIPT_REQ"
    = Prelude.Just UPFRONT_SHUTDOWN_SCRIPT_REQ
    | (Prelude.==) k "UPFRONT_SHUTDOWN_SCRIPT_OPT"
    = Prelude.Just UPFRONT_SHUTDOWN_SCRIPT_OPT
    | (Prelude.==) k "GOSSIP_QUERIES_REQ"
    = Prelude.Just GOSSIP_QUERIES_REQ
    | (Prelude.==) k "GOSSIP_QUERIES_OPT"
    = Prelude.Just GOSSIP_QUERIES_OPT
    | (Prelude.==) k "TLV_ONION_REQ" = Prelude.Just TLV_ONION_REQ
    | (Prelude.==) k "TLV_ONION_OPT" = Prelude.Just TLV_ONION_OPT
    | (Prelude.==) k "EXT_GOSSIP_QUERIES_REQ"
    = Prelude.Just EXT_GOSSIP_QUERIES_REQ
    | (Prelude.==) k "EXT_GOSSIP_QUERIES_OPT"
    = Prelude.Just EXT_GOSSIP_QUERIES_OPT
    | (Prelude.==) k "STATIC_REMOTE_KEY_REQ"
    = Prelude.Just STATIC_REMOTE_KEY_REQ
    | (Prelude.==) k "STATIC_REMOTE_KEY_OPT"
    = Prelude.Just STATIC_REMOTE_KEY_OPT
    | (Prelude.==) k "PAYMENT_ADDR_REQ" = Prelude.Just PAYMENT_ADDR_REQ
    | (Prelude.==) k "PAYMENT_ADDR_OPT" = Prelude.Just PAYMENT_ADDR_OPT
    | (Prelude.==) k "MPP_REQ" = Prelude.Just MPP_REQ
    | (Prelude.==) k "MPP_OPT" = Prelude.Just MPP_OPT
    | (Prelude.==) k "WUMBO_CHANNELS_REQ"
    = Prelude.Just WUMBO_CHANNELS_REQ
    | (Prelude.==) k "WUMBO_CHANNELS_OPT"
    = Prelude.Just WUMBO_CHANNELS_OPT
    | (Prelude.==) k "ANCHORS_REQ" = Prelude.Just ANCHORS_REQ
    | (Prelude.==) k "ANCHORS_OPT" = Prelude.Just ANCHORS_OPT
    | (Prelude.==) k "ANCHORS_ZERO_FEE_HTLC_REQ"
    = Prelude.Just ANCHORS_ZERO_FEE_HTLC_REQ
    | (Prelude.==) k "ANCHORS_ZERO_FEE_HTLC_OPT"
    = Prelude.Just ANCHORS_ZERO_FEE_HTLC_OPT
    | (Prelude.==) k "AMP_REQ" = Prelude.Just AMP_REQ
    | (Prelude.==) k "AMP_OPT" = Prelude.Just AMP_OPT
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded FeatureBit where
  minBound = DATALOSS_PROTECT_REQ
  maxBound = AMP_OPT
instance Prelude.Enum FeatureBit where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum FeatureBit: " (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum DATALOSS_PROTECT_REQ = 0
  fromEnum DATALOSS_PROTECT_OPT = 1
  fromEnum INITIAL_ROUING_SYNC = 3
  fromEnum UPFRONT_SHUTDOWN_SCRIPT_REQ = 4
  fromEnum UPFRONT_SHUTDOWN_SCRIPT_OPT = 5
  fromEnum GOSSIP_QUERIES_REQ = 6
  fromEnum GOSSIP_QUERIES_OPT = 7
  fromEnum TLV_ONION_REQ = 8
  fromEnum TLV_ONION_OPT = 9
  fromEnum EXT_GOSSIP_QUERIES_REQ = 10
  fromEnum EXT_GOSSIP_QUERIES_OPT = 11
  fromEnum STATIC_REMOTE_KEY_REQ = 12
  fromEnum STATIC_REMOTE_KEY_OPT = 13
  fromEnum PAYMENT_ADDR_REQ = 14
  fromEnum PAYMENT_ADDR_OPT = 15
  fromEnum MPP_REQ = 16
  fromEnum MPP_OPT = 17
  fromEnum WUMBO_CHANNELS_REQ = 18
  fromEnum WUMBO_CHANNELS_OPT = 19
  fromEnum ANCHORS_REQ = 20
  fromEnum ANCHORS_OPT = 21
  fromEnum ANCHORS_ZERO_FEE_HTLC_REQ = 22
  fromEnum ANCHORS_ZERO_FEE_HTLC_OPT = 23
  fromEnum AMP_REQ = 30
  fromEnum AMP_OPT = 31
  fromEnum (FeatureBit'Unrecognized (FeatureBit'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ AMP_OPT
    = Prelude.error
        "FeatureBit.succ: bad argument AMP_OPT. This value would be out of bounds."
  succ DATALOSS_PROTECT_REQ = DATALOSS_PROTECT_OPT
  succ DATALOSS_PROTECT_OPT = INITIAL_ROUING_SYNC
  succ INITIAL_ROUING_SYNC = UPFRONT_SHUTDOWN_SCRIPT_REQ
  succ UPFRONT_SHUTDOWN_SCRIPT_REQ = UPFRONT_SHUTDOWN_SCRIPT_OPT
  succ UPFRONT_SHUTDOWN_SCRIPT_OPT = GOSSIP_QUERIES_REQ
  succ GOSSIP_QUERIES_REQ = GOSSIP_QUERIES_OPT
  succ GOSSIP_QUERIES_OPT = TLV_ONION_REQ
  succ TLV_ONION_REQ = TLV_ONION_OPT
  succ TLV_ONION_OPT = EXT_GOSSIP_QUERIES_REQ
  succ EXT_GOSSIP_QUERIES_REQ = EXT_GOSSIP_QUERIES_OPT
  succ EXT_GOSSIP_QUERIES_OPT = STATIC_REMOTE_KEY_REQ
  succ STATIC_REMOTE_KEY_REQ = STATIC_REMOTE_KEY_OPT
  succ STATIC_REMOTE_KEY_OPT = PAYMENT_ADDR_REQ
  succ PAYMENT_ADDR_REQ = PAYMENT_ADDR_OPT
  succ PAYMENT_ADDR_OPT = MPP_REQ
  succ MPP_REQ = MPP_OPT
  succ MPP_OPT = WUMBO_CHANNELS_REQ
  succ WUMBO_CHANNELS_REQ = WUMBO_CHANNELS_OPT
  succ WUMBO_CHANNELS_OPT = ANCHORS_REQ
  succ ANCHORS_REQ = ANCHORS_OPT
  succ ANCHORS_OPT = ANCHORS_ZERO_FEE_HTLC_REQ
  succ ANCHORS_ZERO_FEE_HTLC_REQ = ANCHORS_ZERO_FEE_HTLC_OPT
  succ ANCHORS_ZERO_FEE_HTLC_OPT = AMP_REQ
  succ AMP_REQ = AMP_OPT
  succ (FeatureBit'Unrecognized _)
    = Prelude.error "FeatureBit.succ: bad argument: unrecognized value"
  pred DATALOSS_PROTECT_REQ
    = Prelude.error
        "FeatureBit.pred: bad argument DATALOSS_PROTECT_REQ. This value would be out of bounds."
  pred DATALOSS_PROTECT_OPT = DATALOSS_PROTECT_REQ
  pred INITIAL_ROUING_SYNC = DATALOSS_PROTECT_OPT
  pred UPFRONT_SHUTDOWN_SCRIPT_REQ = INITIAL_ROUING_SYNC
  pred UPFRONT_SHUTDOWN_SCRIPT_OPT = UPFRONT_SHUTDOWN_SCRIPT_REQ
  pred GOSSIP_QUERIES_REQ = UPFRONT_SHUTDOWN_SCRIPT_OPT
  pred GOSSIP_QUERIES_OPT = GOSSIP_QUERIES_REQ
  pred TLV_ONION_REQ = GOSSIP_QUERIES_OPT
  pred TLV_ONION_OPT = TLV_ONION_REQ
  pred EXT_GOSSIP_QUERIES_REQ = TLV_ONION_OPT
  pred EXT_GOSSIP_QUERIES_OPT = EXT_GOSSIP_QUERIES_REQ
  pred STATIC_REMOTE_KEY_REQ = EXT_GOSSIP_QUERIES_OPT
  pred STATIC_REMOTE_KEY_OPT = STATIC_REMOTE_KEY_REQ
  pred PAYMENT_ADDR_REQ = STATIC_REMOTE_KEY_OPT
  pred PAYMENT_ADDR_OPT = PAYMENT_ADDR_REQ
  pred MPP_REQ = PAYMENT_ADDR_OPT
  pred MPP_OPT = MPP_REQ
  pred WUMBO_CHANNELS_REQ = MPP_OPT
  pred WUMBO_CHANNELS_OPT = WUMBO_CHANNELS_REQ
  pred ANCHORS_REQ = WUMBO_CHANNELS_OPT
  pred ANCHORS_OPT = ANCHORS_REQ
  pred ANCHORS_ZERO_FEE_HTLC_REQ = ANCHORS_OPT
  pred ANCHORS_ZERO_FEE_HTLC_OPT = ANCHORS_ZERO_FEE_HTLC_REQ
  pred AMP_REQ = ANCHORS_ZERO_FEE_HTLC_OPT
  pred AMP_OPT = AMP_REQ
  pred (FeatureBit'Unrecognized _)
    = Prelude.error "FeatureBit.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault FeatureBit where
  fieldDefault = DATALOSS_PROTECT_REQ
instance Control.DeepSeq.NFData FeatureBit where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out FeatureBit
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.maybe'limit' @:: Lens' FeeLimit (Prelude.Maybe FeeLimit'Limit)@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fixed' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.Lnrpc.Ln0_Fields.fixed' @:: Lens' FeeLimit Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'fixedMsat' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.Lnrpc.Ln0_Fields.fixedMsat' @:: Lens' FeeLimit Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'percent' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.Lnrpc.Ln0_Fields.percent' @:: Lens' FeeLimit Data.Int.Int64@ -}
data FeeLimit
  = FeeLimit'_constructor {_FeeLimit'limit :: !(Prelude.Maybe FeeLimit'Limit),
                           _FeeLimit'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FeeLimit where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FeeLimit
data FeeLimit'Limit
  = FeeLimit'Fixed !Data.Int.Int64 |
    FeeLimit'FixedMsat !Data.Int.Int64 |
    FeeLimit'Percent !Data.Int.Int64
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out FeeLimit'Limit
instance Data.ProtoLens.Field.HasField FeeLimit "maybe'limit" (Prelude.Maybe FeeLimit'Limit) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FeeLimit "maybe'fixed" (Prelude.Maybe Data.Int.Int64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FeeLimit'Fixed x__val)) -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FeeLimit'Fixed y__))
instance Data.ProtoLens.Field.HasField FeeLimit "fixed" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FeeLimit'Fixed x__val)) -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FeeLimit'Fixed y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Field.HasField FeeLimit "maybe'fixedMsat" (Prelude.Maybe Data.Int.Int64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FeeLimit'FixedMsat x__val)) -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FeeLimit'FixedMsat y__))
instance Data.ProtoLens.Field.HasField FeeLimit "fixedMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FeeLimit'FixedMsat x__val)) -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FeeLimit'FixedMsat y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Field.HasField FeeLimit "maybe'percent" (Prelude.Maybe Data.Int.Int64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FeeLimit'Percent x__val)) -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FeeLimit'Percent y__))
instance Data.ProtoLens.Field.HasField FeeLimit "percent" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeLimit'limit (\ x__ y__ -> x__ {_FeeLimit'limit = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FeeLimit'Percent x__val)) -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FeeLimit'Percent y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Message FeeLimit where
  messageName _ = Data.Text.pack "lnrpc.FeeLimit"
  packedMessageDescriptor _
    = "\n\
      \\bFeeLimit\DC2\SYN\n\
      \\ENQfixed\CAN\SOH \SOH(\ETXH\NULR\ENQfixed\DC2\US\n\
      \\n\
      \fixed_msat\CAN\ETX \SOH(\ETXH\NULR\tfixedMsat\DC2\SUB\n\
      \\apercent\CAN\STX \SOH(\ETXH\NULR\apercentB\a\n\
      \\ENQlimit"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        fixed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fixed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fixed")) ::
              Data.ProtoLens.FieldDescriptor FeeLimit
        fixedMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fixed_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fixedMsat")) ::
              Data.ProtoLens.FieldDescriptor FeeLimit
        percent__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "percent"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'percent")) ::
              Data.ProtoLens.FieldDescriptor FeeLimit
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, fixed__field_descriptor),
           (Data.ProtoLens.Tag 3, fixedMsat__field_descriptor),
           (Data.ProtoLens.Tag 2, percent__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FeeLimit'_unknownFields
        (\ x__ y__ -> x__ {_FeeLimit'_unknownFields = y__})
  defMessage
    = FeeLimit'_constructor
        {_FeeLimit'limit = Prelude.Nothing, _FeeLimit'_unknownFields = []}
  parseMessage
    = let
        loop :: FeeLimit -> Data.ProtoLens.Encoding.Bytes.Parser FeeLimit
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fixed"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"fixed") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fixed_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fixedMsat") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "percent"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"percent") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FeeLimit"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'limit") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just (FeeLimit'Fixed v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                       ((Prelude..)
                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral v)
                (Prelude.Just (FeeLimit'FixedMsat v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                       ((Prelude..)
                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral v)
                (Prelude.Just (FeeLimit'Percent v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                       ((Prelude..)
                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData FeeLimit where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FeeLimit'_unknownFields x__)
             (Control.DeepSeq.deepseq (_FeeLimit'limit x__) ())
instance Control.DeepSeq.NFData FeeLimit'Limit where
  rnf (FeeLimit'Fixed x__) = Control.DeepSeq.rnf x__
  rnf (FeeLimit'FixedMsat x__) = Control.DeepSeq.rnf x__
  rnf (FeeLimit'Percent x__) = Control.DeepSeq.rnf x__
_FeeLimit'Fixed ::
  Data.ProtoLens.Prism.Prism' FeeLimit'Limit Data.Int.Int64
_FeeLimit'Fixed
  = Data.ProtoLens.Prism.prism'
      FeeLimit'Fixed
      (\ p__
         -> case p__ of
              (FeeLimit'Fixed p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FeeLimit'FixedMsat ::
  Data.ProtoLens.Prism.Prism' FeeLimit'Limit Data.Int.Int64
_FeeLimit'FixedMsat
  = Data.ProtoLens.Prism.prism'
      FeeLimit'FixedMsat
      (\ p__
         -> case p__ of
              (FeeLimit'FixedMsat p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FeeLimit'Percent ::
  Data.ProtoLens.Prism.Prism' FeeLimit'Limit Data.Int.Int64
_FeeLimit'Percent
  = Data.ProtoLens.Prism.prism'
      FeeLimit'Percent
      (\ p__
         -> case p__ of
              (FeeLimit'Percent p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' FloatMetric Prelude.Double@
         * 'Proto.Lnrpc.Ln0_Fields.normalizedValue' @:: Lens' FloatMetric Prelude.Double@ -}
data FloatMetric
  = FloatMetric'_constructor {_FloatMetric'value :: !Prelude.Double,
                              _FloatMetric'normalizedValue :: !Prelude.Double,
                              _FloatMetric'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FloatMetric where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FloatMetric
instance Data.ProtoLens.Field.HasField FloatMetric "value" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FloatMetric'value (\ x__ y__ -> x__ {_FloatMetric'value = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FloatMetric "normalizedValue" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FloatMetric'normalizedValue
           (\ x__ y__ -> x__ {_FloatMetric'normalizedValue = y__}))
        Prelude.id
instance Data.ProtoLens.Message FloatMetric where
  messageName _ = Data.Text.pack "lnrpc.FloatMetric"
  packedMessageDescriptor _
    = "\n\
      \\vFloatMetric\DC2\DC4\n\
      \\ENQvalue\CAN\SOH \SOH(\SOHR\ENQvalue\DC2)\n\
      \\DLEnormalized_value\CAN\STX \SOH(\SOHR\SInormalizedValue"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor FloatMetric
        normalizedValue__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "normalized_value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"normalizedValue")) ::
              Data.ProtoLens.FieldDescriptor FloatMetric
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, value__field_descriptor),
           (Data.ProtoLens.Tag 2, normalizedValue__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FloatMetric'_unknownFields
        (\ x__ y__ -> x__ {_FloatMetric'_unknownFields = y__})
  defMessage
    = FloatMetric'_constructor
        {_FloatMetric'value = Data.ProtoLens.fieldDefault,
         _FloatMetric'normalizedValue = Data.ProtoLens.fieldDefault,
         _FloatMetric'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FloatMetric -> Data.ProtoLens.Encoding.Bytes.Parser FloatMetric
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        9 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        17
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "normalized_value"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"normalizedValue") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FloatMetric"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"value") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 9)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putFixed64
                         Data.ProtoLens.Encoding.Bytes.doubleToWord _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"normalizedValue") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 17)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putFixed64
                            Data.ProtoLens.Encoding.Bytes.doubleToWord _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData FloatMetric where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FloatMetric'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_FloatMetric'value x__)
                (Control.DeepSeq.deepseq (_FloatMetric'normalizedValue x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.signedPsbt' @:: Lens' FundingPsbtFinalize Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.pendingChanId' @:: Lens' FundingPsbtFinalize Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.finalRawTx' @:: Lens' FundingPsbtFinalize Data.ByteString.ByteString@ -}
data FundingPsbtFinalize
  = FundingPsbtFinalize'_constructor {_FundingPsbtFinalize'signedPsbt :: !Data.ByteString.ByteString,
                                      _FundingPsbtFinalize'pendingChanId :: !Data.ByteString.ByteString,
                                      _FundingPsbtFinalize'finalRawTx :: !Data.ByteString.ByteString,
                                      _FundingPsbtFinalize'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingPsbtFinalize where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingPsbtFinalize
instance Data.ProtoLens.Field.HasField FundingPsbtFinalize "signedPsbt" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtFinalize'signedPsbt
           (\ x__ y__ -> x__ {_FundingPsbtFinalize'signedPsbt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingPsbtFinalize "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtFinalize'pendingChanId
           (\ x__ y__ -> x__ {_FundingPsbtFinalize'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingPsbtFinalize "finalRawTx" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtFinalize'finalRawTx
           (\ x__ y__ -> x__ {_FundingPsbtFinalize'finalRawTx = y__}))
        Prelude.id
instance Data.ProtoLens.Message FundingPsbtFinalize where
  messageName _ = Data.Text.pack "lnrpc.FundingPsbtFinalize"
  packedMessageDescriptor _
    = "\n\
      \\DC3FundingPsbtFinalize\DC2\US\n\
      \\vsigned_psbt\CAN\SOH \SOH(\fR\n\
      \signedPsbt\DC2&\n\
      \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2 \n\
      \\ffinal_raw_tx\CAN\ETX \SOH(\fR\n\
      \finalRawTx"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        signedPsbt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "signed_psbt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"signedPsbt")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtFinalize
        pendingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingChanId")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtFinalize
        finalRawTx__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "final_raw_tx"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"finalRawTx")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtFinalize
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, signedPsbt__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 3, finalRawTx__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingPsbtFinalize'_unknownFields
        (\ x__ y__ -> x__ {_FundingPsbtFinalize'_unknownFields = y__})
  defMessage
    = FundingPsbtFinalize'_constructor
        {_FundingPsbtFinalize'signedPsbt = Data.ProtoLens.fieldDefault,
         _FundingPsbtFinalize'pendingChanId = Data.ProtoLens.fieldDefault,
         _FundingPsbtFinalize'finalRawTx = Data.ProtoLens.fieldDefault,
         _FundingPsbtFinalize'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingPsbtFinalize
          -> Data.ProtoLens.Encoding.Bytes.Parser FundingPsbtFinalize
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "signed_psbt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"signedPsbt") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "pending_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingChanId") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "final_raw_tx"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"finalRawTx") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingPsbtFinalize"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"signedPsbt") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"pendingChanId") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"finalRawTx") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData FundingPsbtFinalize where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingPsbtFinalize'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_FundingPsbtFinalize'signedPsbt x__)
                (Control.DeepSeq.deepseq
                   (_FundingPsbtFinalize'pendingChanId x__)
                   (Control.DeepSeq.deepseq
                      (_FundingPsbtFinalize'finalRawTx x__) ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.fundedPsbt' @:: Lens' FundingPsbtVerify Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.pendingChanId' @:: Lens' FundingPsbtVerify Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.skipFinalize' @:: Lens' FundingPsbtVerify Prelude.Bool@ -}
data FundingPsbtVerify
  = FundingPsbtVerify'_constructor {_FundingPsbtVerify'fundedPsbt :: !Data.ByteString.ByteString,
                                    _FundingPsbtVerify'pendingChanId :: !Data.ByteString.ByteString,
                                    _FundingPsbtVerify'skipFinalize :: !Prelude.Bool,
                                    _FundingPsbtVerify'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingPsbtVerify where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingPsbtVerify
instance Data.ProtoLens.Field.HasField FundingPsbtVerify "fundedPsbt" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtVerify'fundedPsbt
           (\ x__ y__ -> x__ {_FundingPsbtVerify'fundedPsbt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingPsbtVerify "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtVerify'pendingChanId
           (\ x__ y__ -> x__ {_FundingPsbtVerify'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingPsbtVerify "skipFinalize" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingPsbtVerify'skipFinalize
           (\ x__ y__ -> x__ {_FundingPsbtVerify'skipFinalize = y__}))
        Prelude.id
instance Data.ProtoLens.Message FundingPsbtVerify where
  messageName _ = Data.Text.pack "lnrpc.FundingPsbtVerify"
  packedMessageDescriptor _
    = "\n\
      \\DC1FundingPsbtVerify\DC2\US\n\
      \\vfunded_psbt\CAN\SOH \SOH(\fR\n\
      \fundedPsbt\DC2&\n\
      \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2#\n\
      \\rskip_finalize\CAN\ETX \SOH(\bR\fskipFinalize"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        fundedPsbt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funded_psbt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fundedPsbt")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtVerify
        pendingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingChanId")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtVerify
        skipFinalize__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "skip_finalize"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"skipFinalize")) ::
              Data.ProtoLens.FieldDescriptor FundingPsbtVerify
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, fundedPsbt__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 3, skipFinalize__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingPsbtVerify'_unknownFields
        (\ x__ y__ -> x__ {_FundingPsbtVerify'_unknownFields = y__})
  defMessage
    = FundingPsbtVerify'_constructor
        {_FundingPsbtVerify'fundedPsbt = Data.ProtoLens.fieldDefault,
         _FundingPsbtVerify'pendingChanId = Data.ProtoLens.fieldDefault,
         _FundingPsbtVerify'skipFinalize = Data.ProtoLens.fieldDefault,
         _FundingPsbtVerify'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingPsbtVerify
          -> Data.ProtoLens.Encoding.Bytes.Parser FundingPsbtVerify
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "funded_psbt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fundedPsbt") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "pending_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingChanId") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "skip_finalize"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"skipFinalize") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingPsbtVerify"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"fundedPsbt") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"pendingChanId") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"skipFinalize") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                               _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData FundingPsbtVerify where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingPsbtVerify'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_FundingPsbtVerify'fundedPsbt x__)
                (Control.DeepSeq.deepseq
                   (_FundingPsbtVerify'pendingChanId x__)
                   (Control.DeepSeq.deepseq
                      (_FundingPsbtVerify'skipFinalize x__) ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.maybe'shim' @:: Lens' FundingShim (Prelude.Maybe FundingShim'Shim)@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'chanPointShim' @:: Lens' FundingShim (Prelude.Maybe ChanPointShim)@
         * 'Proto.Lnrpc.Ln0_Fields.chanPointShim' @:: Lens' FundingShim ChanPointShim@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'psbtShim' @:: Lens' FundingShim (Prelude.Maybe PsbtShim)@
         * 'Proto.Lnrpc.Ln0_Fields.psbtShim' @:: Lens' FundingShim PsbtShim@ -}
data FundingShim
  = FundingShim'_constructor {_FundingShim'shim :: !(Prelude.Maybe FundingShim'Shim),
                              _FundingShim'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingShim
data FundingShim'Shim
  = FundingShim'ChanPointShim !ChanPointShim |
    FundingShim'PsbtShim !PsbtShim
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out FundingShim'Shim
instance Data.ProtoLens.Field.HasField FundingShim "maybe'shim" (Prelude.Maybe FundingShim'Shim) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShim'shim (\ x__ y__ -> x__ {_FundingShim'shim = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingShim "maybe'chanPointShim" (Prelude.Maybe ChanPointShim) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShim'shim (\ x__ y__ -> x__ {_FundingShim'shim = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingShim'ChanPointShim x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingShim'ChanPointShim y__))
instance Data.ProtoLens.Field.HasField FundingShim "chanPointShim" ChanPointShim where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShim'shim (\ x__ y__ -> x__ {_FundingShim'shim = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingShim'ChanPointShim x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingShim'ChanPointShim y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField FundingShim "maybe'psbtShim" (Prelude.Maybe PsbtShim) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShim'shim (\ x__ y__ -> x__ {_FundingShim'shim = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingShim'PsbtShim x__val)) -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingShim'PsbtShim y__))
instance Data.ProtoLens.Field.HasField FundingShim "psbtShim" PsbtShim where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShim'shim (\ x__ y__ -> x__ {_FundingShim'shim = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingShim'PsbtShim x__val)) -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingShim'PsbtShim y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message FundingShim where
  messageName _ = Data.Text.pack "lnrpc.FundingShim"
  packedMessageDescriptor _
    = "\n\
      \\vFundingShim\DC2>\n\
      \\SIchan_point_shim\CAN\SOH \SOH(\v2\DC4.lnrpc.ChanPointShimH\NULR\rchanPointShim\DC2.\n\
      \\tpsbt_shim\CAN\STX \SOH(\v2\SI.lnrpc.PsbtShimH\NULR\bpsbtShimB\ACK\n\
      \\EOTshim"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanPointShim__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_point_shim"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChanPointShim)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanPointShim")) ::
              Data.ProtoLens.FieldDescriptor FundingShim
        psbtShim__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "psbt_shim"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PsbtShim)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'psbtShim")) ::
              Data.ProtoLens.FieldDescriptor FundingShim
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanPointShim__field_descriptor),
           (Data.ProtoLens.Tag 2, psbtShim__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingShim'_unknownFields
        (\ x__ y__ -> x__ {_FundingShim'_unknownFields = y__})
  defMessage
    = FundingShim'_constructor
        {_FundingShim'shim = Prelude.Nothing,
         _FundingShim'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingShim -> Data.ProtoLens.Encoding.Bytes.Parser FundingShim
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "chan_point_shim"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"chanPointShim") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "psbt_shim"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"psbtShim") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingShim"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'shim") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just (FundingShim'ChanPointShim v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v)
                (Prelude.Just (FundingShim'PsbtShim v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData FundingShim where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingShim'_unknownFields x__)
             (Control.DeepSeq.deepseq (_FundingShim'shim x__) ())
instance Control.DeepSeq.NFData FundingShim'Shim where
  rnf (FundingShim'ChanPointShim x__) = Control.DeepSeq.rnf x__
  rnf (FundingShim'PsbtShim x__) = Control.DeepSeq.rnf x__
_FundingShim'ChanPointShim ::
  Data.ProtoLens.Prism.Prism' FundingShim'Shim ChanPointShim
_FundingShim'ChanPointShim
  = Data.ProtoLens.Prism.prism'
      FundingShim'ChanPointShim
      (\ p__
         -> case p__ of
              (FundingShim'ChanPointShim p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FundingShim'PsbtShim ::
  Data.ProtoLens.Prism.Prism' FundingShim'Shim PsbtShim
_FundingShim'PsbtShim
  = Data.ProtoLens.Prism.prism'
      FundingShim'PsbtShim
      (\ p__
         -> case p__ of
              (FundingShim'PsbtShim p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.pendingChanId' @:: Lens' FundingShimCancel Data.ByteString.ByteString@ -}
data FundingShimCancel
  = FundingShimCancel'_constructor {_FundingShimCancel'pendingChanId :: !Data.ByteString.ByteString,
                                    _FundingShimCancel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingShimCancel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingShimCancel
instance Data.ProtoLens.Field.HasField FundingShimCancel "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingShimCancel'pendingChanId
           (\ x__ y__ -> x__ {_FundingShimCancel'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Message FundingShimCancel where
  messageName _ = Data.Text.pack "lnrpc.FundingShimCancel"
  packedMessageDescriptor _
    = "\n\
      \\DC1FundingShimCancel\DC2&\n\
      \\SIpending_chan_id\CAN\SOH \SOH(\fR\rpendingChanId"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pendingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingChanId")) ::
              Data.ProtoLens.FieldDescriptor FundingShimCancel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pendingChanId__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingShimCancel'_unknownFields
        (\ x__ y__ -> x__ {_FundingShimCancel'_unknownFields = y__})
  defMessage
    = FundingShimCancel'_constructor
        {_FundingShimCancel'pendingChanId = Data.ProtoLens.fieldDefault,
         _FundingShimCancel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingShimCancel
          -> Data.ProtoLens.Encoding.Bytes.Parser FundingShimCancel
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "pending_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingChanId") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingShimCancel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"pendingChanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData FundingShimCancel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingShimCancel'_unknownFields x__)
             (Control.DeepSeq.deepseq (_FundingShimCancel'pendingChanId x__) ())
{- | Fields :
      -}
data FundingStateStepResp
  = FundingStateStepResp'_constructor {_FundingStateStepResp'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingStateStepResp where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingStateStepResp
instance Data.ProtoLens.Message FundingStateStepResp where
  messageName _ = Data.Text.pack "lnrpc.FundingStateStepResp"
  packedMessageDescriptor _
    = "\n\
      \\DC4FundingStateStepResp"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingStateStepResp'_unknownFields
        (\ x__ y__ -> x__ {_FundingStateStepResp'_unknownFields = y__})
  defMessage
    = FundingStateStepResp'_constructor
        {_FundingStateStepResp'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingStateStepResp
          -> Data.ProtoLens.Encoding.Bytes.Parser FundingStateStepResp
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingStateStepResp"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData FundingStateStepResp where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingStateStepResp'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.maybe'trigger' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingTransitionMsg'Trigger)@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'shimRegister' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingShim)@
         * 'Proto.Lnrpc.Ln0_Fields.shimRegister' @:: Lens' FundingTransitionMsg FundingShim@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'shimCancel' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingShimCancel)@
         * 'Proto.Lnrpc.Ln0_Fields.shimCancel' @:: Lens' FundingTransitionMsg FundingShimCancel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'psbtVerify' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingPsbtVerify)@
         * 'Proto.Lnrpc.Ln0_Fields.psbtVerify' @:: Lens' FundingTransitionMsg FundingPsbtVerify@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'psbtFinalize' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingPsbtFinalize)@
         * 'Proto.Lnrpc.Ln0_Fields.psbtFinalize' @:: Lens' FundingTransitionMsg FundingPsbtFinalize@ -}
data FundingTransitionMsg
  = FundingTransitionMsg'_constructor {_FundingTransitionMsg'trigger :: !(Prelude.Maybe FundingTransitionMsg'Trigger),
                                       _FundingTransitionMsg'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show FundingTransitionMsg where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out FundingTransitionMsg
data FundingTransitionMsg'Trigger
  = FundingTransitionMsg'ShimRegister !FundingShim |
    FundingTransitionMsg'ShimCancel !FundingShimCancel |
    FundingTransitionMsg'PsbtVerify !FundingPsbtVerify |
    FundingTransitionMsg'PsbtFinalize !FundingPsbtFinalize
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out FundingTransitionMsg'Trigger
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "maybe'trigger" (Prelude.Maybe FundingTransitionMsg'Trigger) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "maybe'shimRegister" (Prelude.Maybe FundingShim) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingTransitionMsg'ShimRegister x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingTransitionMsg'ShimRegister y__))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "shimRegister" FundingShim where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingTransitionMsg'ShimRegister x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingTransitionMsg'ShimRegister y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "maybe'shimCancel" (Prelude.Maybe FundingShimCancel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingTransitionMsg'ShimCancel x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingTransitionMsg'ShimCancel y__))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "shimCancel" FundingShimCancel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingTransitionMsg'ShimCancel x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingTransitionMsg'ShimCancel y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "maybe'psbtVerify" (Prelude.Maybe FundingPsbtVerify) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingTransitionMsg'PsbtVerify x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingTransitionMsg'PsbtVerify y__))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "psbtVerify" FundingPsbtVerify where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingTransitionMsg'PsbtVerify x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingTransitionMsg'PsbtVerify y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "maybe'psbtFinalize" (Prelude.Maybe FundingPsbtFinalize) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (FundingTransitionMsg'PsbtFinalize x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap FundingTransitionMsg'PsbtFinalize y__))
instance Data.ProtoLens.Field.HasField FundingTransitionMsg "psbtFinalize" FundingPsbtFinalize where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FundingTransitionMsg'trigger
           (\ x__ y__ -> x__ {_FundingTransitionMsg'trigger = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (FundingTransitionMsg'PsbtFinalize x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap FundingTransitionMsg'PsbtFinalize y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message FundingTransitionMsg where
  messageName _ = Data.Text.pack "lnrpc.FundingTransitionMsg"
  packedMessageDescriptor _
    = "\n\
      \\DC4FundingTransitionMsg\DC29\n\
      \\rshim_register\CAN\SOH \SOH(\v2\DC2.lnrpc.FundingShimH\NULR\fshimRegister\DC2;\n\
      \\vshim_cancel\CAN\STX \SOH(\v2\CAN.lnrpc.FundingShimCancelH\NULR\n\
      \shimCancel\DC2;\n\
      \\vpsbt_verify\CAN\ETX \SOH(\v2\CAN.lnrpc.FundingPsbtVerifyH\NULR\n\
      \psbtVerify\DC2A\n\
      \\rpsbt_finalize\CAN\EOT \SOH(\v2\SUB.lnrpc.FundingPsbtFinalizeH\NULR\fpsbtFinalizeB\t\n\
      \\atrigger"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        shimRegister__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "shim_register"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FundingShim)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'shimRegister")) ::
              Data.ProtoLens.FieldDescriptor FundingTransitionMsg
        shimCancel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "shim_cancel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FundingShimCancel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'shimCancel")) ::
              Data.ProtoLens.FieldDescriptor FundingTransitionMsg
        psbtVerify__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "psbt_verify"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FundingPsbtVerify)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'psbtVerify")) ::
              Data.ProtoLens.FieldDescriptor FundingTransitionMsg
        psbtFinalize__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "psbt_finalize"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FundingPsbtFinalize)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'psbtFinalize")) ::
              Data.ProtoLens.FieldDescriptor FundingTransitionMsg
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, shimRegister__field_descriptor),
           (Data.ProtoLens.Tag 2, shimCancel__field_descriptor),
           (Data.ProtoLens.Tag 3, psbtVerify__field_descriptor),
           (Data.ProtoLens.Tag 4, psbtFinalize__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FundingTransitionMsg'_unknownFields
        (\ x__ y__ -> x__ {_FundingTransitionMsg'_unknownFields = y__})
  defMessage
    = FundingTransitionMsg'_constructor
        {_FundingTransitionMsg'trigger = Prelude.Nothing,
         _FundingTransitionMsg'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FundingTransitionMsg
          -> Data.ProtoLens.Encoding.Bytes.Parser FundingTransitionMsg
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "shim_register"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"shimRegister") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "shim_cancel"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"shimCancel") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "psbt_verify"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"psbtVerify") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "psbt_finalize"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"psbtFinalize") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FundingTransitionMsg"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'trigger") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just (FundingTransitionMsg'ShimRegister v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v)
                (Prelude.Just (FundingTransitionMsg'ShimCancel v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v)
                (Prelude.Just (FundingTransitionMsg'PsbtVerify v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v)
                (Prelude.Just (FundingTransitionMsg'PsbtFinalize v))
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage v))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData FundingTransitionMsg where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FundingTransitionMsg'_unknownFields x__)
             (Control.DeepSeq.deepseq (_FundingTransitionMsg'trigger x__) ())
instance Control.DeepSeq.NFData FundingTransitionMsg'Trigger where
  rnf (FundingTransitionMsg'ShimRegister x__)
    = Control.DeepSeq.rnf x__
  rnf (FundingTransitionMsg'ShimCancel x__) = Control.DeepSeq.rnf x__
  rnf (FundingTransitionMsg'PsbtVerify x__) = Control.DeepSeq.rnf x__
  rnf (FundingTransitionMsg'PsbtFinalize x__)
    = Control.DeepSeq.rnf x__
_FundingTransitionMsg'ShimRegister ::
  Data.ProtoLens.Prism.Prism' FundingTransitionMsg'Trigger FundingShim
_FundingTransitionMsg'ShimRegister
  = Data.ProtoLens.Prism.prism'
      FundingTransitionMsg'ShimRegister
      (\ p__
         -> case p__ of
              (FundingTransitionMsg'ShimRegister p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FundingTransitionMsg'ShimCancel ::
  Data.ProtoLens.Prism.Prism' FundingTransitionMsg'Trigger FundingShimCancel
_FundingTransitionMsg'ShimCancel
  = Data.ProtoLens.Prism.prism'
      FundingTransitionMsg'ShimCancel
      (\ p__
         -> case p__ of
              (FundingTransitionMsg'ShimCancel p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FundingTransitionMsg'PsbtVerify ::
  Data.ProtoLens.Prism.Prism' FundingTransitionMsg'Trigger FundingPsbtVerify
_FundingTransitionMsg'PsbtVerify
  = Data.ProtoLens.Prism.prism'
      FundingTransitionMsg'PsbtVerify
      (\ p__
         -> case p__ of
              (FundingTransitionMsg'PsbtVerify p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_FundingTransitionMsg'PsbtFinalize ::
  Data.ProtoLens.Prism.Prism' FundingTransitionMsg'Trigger FundingPsbtFinalize
_FundingTransitionMsg'PsbtFinalize
  = Data.ProtoLens.Prism.prism'
      FundingTransitionMsg'PsbtFinalize
      (\ p__
         -> case p__ of
              (FundingTransitionMsg'PsbtFinalize p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
      -}
data GraphTopologySubscription
  = GraphTopologySubscription'_constructor {_GraphTopologySubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show GraphTopologySubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out GraphTopologySubscription
instance Data.ProtoLens.Message GraphTopologySubscription where
  messageName _ = Data.Text.pack "lnrpc.GraphTopologySubscription"
  packedMessageDescriptor _
    = "\n\
      \\EMGraphTopologySubscription"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GraphTopologySubscription'_unknownFields
        (\ x__ y__
           -> x__ {_GraphTopologySubscription'_unknownFields = y__})
  defMessage
    = GraphTopologySubscription'_constructor
        {_GraphTopologySubscription'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GraphTopologySubscription
          -> Data.ProtoLens.Encoding.Bytes.Parser GraphTopologySubscription
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "GraphTopologySubscription"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData GraphTopologySubscription where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GraphTopologySubscription'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.nodeUpdates' @:: Lens' GraphTopologyUpdate [NodeUpdate]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'nodeUpdates' @:: Lens' GraphTopologyUpdate (Data.Vector.Vector NodeUpdate)@
         * 'Proto.Lnrpc.Ln0_Fields.channelUpdates' @:: Lens' GraphTopologyUpdate [ChannelEdgeUpdate]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'channelUpdates' @:: Lens' GraphTopologyUpdate (Data.Vector.Vector ChannelEdgeUpdate)@
         * 'Proto.Lnrpc.Ln0_Fields.closedChans' @:: Lens' GraphTopologyUpdate [ClosedChannelUpdate]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'closedChans' @:: Lens' GraphTopologyUpdate (Data.Vector.Vector ClosedChannelUpdate)@ -}
data GraphTopologyUpdate
  = GraphTopologyUpdate'_constructor {_GraphTopologyUpdate'nodeUpdates :: !(Data.Vector.Vector NodeUpdate),
                                      _GraphTopologyUpdate'channelUpdates :: !(Data.Vector.Vector ChannelEdgeUpdate),
                                      _GraphTopologyUpdate'closedChans :: !(Data.Vector.Vector ClosedChannelUpdate),
                                      _GraphTopologyUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show GraphTopologyUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out GraphTopologyUpdate
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "nodeUpdates" [NodeUpdate] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'nodeUpdates
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'nodeUpdates = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "vec'nodeUpdates" (Data.Vector.Vector NodeUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'nodeUpdates
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'nodeUpdates = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "channelUpdates" [ChannelEdgeUpdate] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'channelUpdates
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'channelUpdates = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "vec'channelUpdates" (Data.Vector.Vector ChannelEdgeUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'channelUpdates
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'channelUpdates = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "closedChans" [ClosedChannelUpdate] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'closedChans
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'closedChans = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField GraphTopologyUpdate "vec'closedChans" (Data.Vector.Vector ClosedChannelUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GraphTopologyUpdate'closedChans
           (\ x__ y__ -> x__ {_GraphTopologyUpdate'closedChans = y__}))
        Prelude.id
instance Data.ProtoLens.Message GraphTopologyUpdate where
  messageName _ = Data.Text.pack "lnrpc.GraphTopologyUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC3GraphTopologyUpdate\DC24\n\
      \\fnode_updates\CAN\SOH \ETX(\v2\DC1.lnrpc.NodeUpdateR\vnodeUpdates\DC2A\n\
      \\SIchannel_updates\CAN\STX \ETX(\v2\CAN.lnrpc.ChannelEdgeUpdateR\SOchannelUpdates\DC2=\n\
      \\fclosed_chans\CAN\ETX \ETX(\v2\SUB.lnrpc.ClosedChannelUpdateR\vclosedChans"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        nodeUpdates__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_updates"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodeUpdate)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"nodeUpdates")) ::
              Data.ProtoLens.FieldDescriptor GraphTopologyUpdate
        channelUpdates__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_updates"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelEdgeUpdate)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"channelUpdates")) ::
              Data.ProtoLens.FieldDescriptor GraphTopologyUpdate
        closedChans__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closed_chans"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ClosedChannelUpdate)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"closedChans")) ::
              Data.ProtoLens.FieldDescriptor GraphTopologyUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, nodeUpdates__field_descriptor),
           (Data.ProtoLens.Tag 2, channelUpdates__field_descriptor),
           (Data.ProtoLens.Tag 3, closedChans__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GraphTopologyUpdate'_unknownFields
        (\ x__ y__ -> x__ {_GraphTopologyUpdate'_unknownFields = y__})
  defMessage
    = GraphTopologyUpdate'_constructor
        {_GraphTopologyUpdate'nodeUpdates = Data.Vector.Generic.empty,
         _GraphTopologyUpdate'channelUpdates = Data.Vector.Generic.empty,
         _GraphTopologyUpdate'closedChans = Data.Vector.Generic.empty,
         _GraphTopologyUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GraphTopologyUpdate
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelEdgeUpdate
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ClosedChannelUpdate
                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NodeUpdate
                   -> Data.ProtoLens.Encoding.Bytes.Parser GraphTopologyUpdate
        loop
          x
          mutable'channelUpdates
          mutable'closedChans
          mutable'nodeUpdates
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'channelUpdates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                    mutable'channelUpdates)
                      frozen'closedChans <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'closedChans)
                      frozen'nodeUpdates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'nodeUpdates)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'channelUpdates")
                              frozen'channelUpdates
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'closedChans") frozen'closedChans
                                 (Lens.Family2.set
                                    (Data.ProtoLens.Field.field @"vec'nodeUpdates")
                                    frozen'nodeUpdates x))))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "node_updates"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'nodeUpdates y)
                                loop x mutable'channelUpdates mutable'closedChans v
                        18
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "channel_updates"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'channelUpdates y)
                                loop x v mutable'closedChans mutable'nodeUpdates
                        26
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "closed_chans"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'closedChans y)
                                loop x mutable'channelUpdates v mutable'nodeUpdates
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'channelUpdates mutable'closedChans mutable'nodeUpdates
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'channelUpdates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                          Data.ProtoLens.Encoding.Growing.new
              mutable'closedChans <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              mutable'nodeUpdates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop
                Data.ProtoLens.defMessage mutable'channelUpdates
                mutable'closedChans mutable'nodeUpdates)
          "GraphTopologyUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _v
                   -> (Data.Monoid.<>)
                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                        ((Prelude..)
                           (\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                           Data.ProtoLens.encodeMessage _v))
                (Lens.Family2.view
                   (Data.ProtoLens.Field.field @"vec'nodeUpdates") _x))
             ((Data.Monoid.<>)
                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                   (\ _v
                      -> (Data.Monoid.<>)
                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                           ((Prelude..)
                              (\ bs
                                 -> (Data.Monoid.<>)
                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                              Data.ProtoLens.encodeMessage _v))
                   (Lens.Family2.view
                      (Data.ProtoLens.Field.field @"vec'channelUpdates") _x))
                ((Data.Monoid.<>)
                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                      (\ _v
                         -> (Data.Monoid.<>)
                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                              ((Prelude..)
                                 (\ bs
                                    -> (Data.Monoid.<>)
                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                 Data.ProtoLens.encodeMessage _v))
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"vec'closedChans") _x))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData GraphTopologyUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GraphTopologyUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_GraphTopologyUpdate'nodeUpdates x__)
                (Control.DeepSeq.deepseq
                   (_GraphTopologyUpdate'channelUpdates x__)
                   (Control.DeepSeq.deepseq
                      (_GraphTopologyUpdate'closedChans x__) ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.incoming' @:: Lens' HTLC Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.amount' @:: Lens' HTLC Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.hashLock' @:: Lens' HTLC Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.expirationHeight' @:: Lens' HTLC Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.htlcIndex' @:: Lens' HTLC Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.forwardingChannel' @:: Lens' HTLC Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.forwardingHtlcIndex' @:: Lens' HTLC Data.Word.Word64@ -}
data HTLC
  = HTLC'_constructor {_HTLC'incoming :: !Prelude.Bool,
                       _HTLC'amount :: !Data.Int.Int64,
                       _HTLC'hashLock :: !Data.ByteString.ByteString,
                       _HTLC'expirationHeight :: !Data.Word.Word32,
                       _HTLC'htlcIndex :: !Data.Word.Word64,
                       _HTLC'forwardingChannel :: !Data.Word.Word64,
                       _HTLC'forwardingHtlcIndex :: !Data.Word.Word64,
                       _HTLC'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show HTLC where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out HTLC
instance Data.ProtoLens.Field.HasField HTLC "incoming" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'incoming (\ x__ y__ -> x__ {_HTLC'incoming = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "amount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'amount (\ x__ y__ -> x__ {_HTLC'amount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "hashLock" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'hashLock (\ x__ y__ -> x__ {_HTLC'hashLock = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "expirationHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'expirationHeight
           (\ x__ y__ -> x__ {_HTLC'expirationHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "htlcIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'htlcIndex (\ x__ y__ -> x__ {_HTLC'htlcIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "forwardingChannel" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'forwardingChannel
           (\ x__ y__ -> x__ {_HTLC'forwardingChannel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLC "forwardingHtlcIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLC'forwardingHtlcIndex
           (\ x__ y__ -> x__ {_HTLC'forwardingHtlcIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message HTLC where
  messageName _ = Data.Text.pack "lnrpc.HTLC"
  packedMessageDescriptor _
    = "\n\
      \\EOTHTLC\DC2\SUB\n\
      \\bincoming\CAN\SOH \SOH(\bR\bincoming\DC2\SYN\n\
      \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\ESC\n\
      \\thash_lock\CAN\ETX \SOH(\fR\bhashLock\DC2+\n\
      \\DC1expiration_height\CAN\EOT \SOH(\rR\DLEexpirationHeight\DC2\GS\n\
      \\n\
      \htlc_index\CAN\ENQ \SOH(\EOTR\thtlcIndex\DC2-\n\
      \\DC2forwarding_channel\CAN\ACK \SOH(\EOTR\DC1forwardingChannel\DC22\n\
      \\NAKforwarding_htlc_index\CAN\a \SOH(\EOTR\DC3forwardingHtlcIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        incoming__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "incoming"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"incoming")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        amount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amount"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amount")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        hashLock__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "hash_lock"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"hashLock")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        expirationHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "expiration_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"expirationHeight")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        htlcIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlc_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"htlcIndex")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        forwardingChannel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "forwarding_channel"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"forwardingChannel")) ::
              Data.ProtoLens.FieldDescriptor HTLC
        forwardingHtlcIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "forwarding_htlc_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"forwardingHtlcIndex")) ::
              Data.ProtoLens.FieldDescriptor HTLC
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, incoming__field_descriptor),
           (Data.ProtoLens.Tag 2, amount__field_descriptor),
           (Data.ProtoLens.Tag 3, hashLock__field_descriptor),
           (Data.ProtoLens.Tag 4, expirationHeight__field_descriptor),
           (Data.ProtoLens.Tag 5, htlcIndex__field_descriptor),
           (Data.ProtoLens.Tag 6, forwardingChannel__field_descriptor),
           (Data.ProtoLens.Tag 7, forwardingHtlcIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _HTLC'_unknownFields
        (\ x__ y__ -> x__ {_HTLC'_unknownFields = y__})
  defMessage
    = HTLC'_constructor
        {_HTLC'incoming = Data.ProtoLens.fieldDefault,
         _HTLC'amount = Data.ProtoLens.fieldDefault,
         _HTLC'hashLock = Data.ProtoLens.fieldDefault,
         _HTLC'expirationHeight = Data.ProtoLens.fieldDefault,
         _HTLC'htlcIndex = Data.ProtoLens.fieldDefault,
         _HTLC'forwardingChannel = Data.ProtoLens.fieldDefault,
         _HTLC'forwardingHtlcIndex = Data.ProtoLens.fieldDefault,
         _HTLC'_unknownFields = []}
  parseMessage
    = let
        loop :: HTLC -> Data.ProtoLens.Encoding.Bytes.Parser HTLC
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "incoming"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"incoming") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amount"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amount") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "hash_lock"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"hashLock") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "expiration_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"expirationHeight") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "htlc_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"htlcIndex") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "forwarding_channel"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"forwardingChannel") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "forwarding_htlc_index"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"forwardingHtlcIndex") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "HTLC"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"incoming") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amount") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"hashLock") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"expirationHeight") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"htlcIndex") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"forwardingChannel") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"forwardingHtlcIndex") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
instance Control.DeepSeq.NFData HTLC where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_HTLC'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_HTLC'incoming x__)
                (Control.DeepSeq.deepseq
                   (_HTLC'amount x__)
                   (Control.DeepSeq.deepseq
                      (_HTLC'hashLock x__)
                      (Control.DeepSeq.deepseq
                         (_HTLC'expirationHeight x__)
                         (Control.DeepSeq.deepseq
                            (_HTLC'htlcIndex x__)
                            (Control.DeepSeq.deepseq
                               (_HTLC'forwardingChannel x__)
                               (Control.DeepSeq.deepseq (_HTLC'forwardingHtlcIndex x__) ())))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' Hop Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.chanCapacity' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.amtToForward' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.fee' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.expiry' @:: Lens' Hop Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.amtToForwardMsat' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.feeMsat' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.pubKey' @:: Lens' Hop Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.tlvPayload' @:: Lens' Hop Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.mppRecord' @:: Lens' Hop MPPRecord@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'mppRecord' @:: Lens' Hop (Prelude.Maybe MPPRecord)@
         * 'Proto.Lnrpc.Ln0_Fields.ampRecord' @:: Lens' Hop AMPRecord@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'ampRecord' @:: Lens' Hop (Prelude.Maybe AMPRecord)@
         * 'Proto.Lnrpc.Ln0_Fields.customRecords' @:: Lens' Hop (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString)@ -}
data Hop
  = Hop'_constructor {_Hop'chanId :: !Data.Word.Word64,
                      _Hop'chanCapacity :: !Data.Int.Int64,
                      _Hop'amtToForward :: !Data.Int.Int64,
                      _Hop'fee :: !Data.Int.Int64,
                      _Hop'expiry :: !Data.Word.Word32,
                      _Hop'amtToForwardMsat :: !Data.Int.Int64,
                      _Hop'feeMsat :: !Data.Int.Int64,
                      _Hop'pubKey :: !Data.Text.Text,
                      _Hop'tlvPayload :: !Prelude.Bool,
                      _Hop'mppRecord :: !(Prelude.Maybe MPPRecord),
                      _Hop'ampRecord :: !(Prelude.Maybe AMPRecord),
                      _Hop'customRecords :: !(Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString),
                      _Hop'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Hop where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Hop
instance Data.ProtoLens.Field.HasField Hop "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'chanId (\ x__ y__ -> x__ {_Hop'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "chanCapacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'chanCapacity (\ x__ y__ -> x__ {_Hop'chanCapacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "amtToForward" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'amtToForward (\ x__ y__ -> x__ {_Hop'amtToForward = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "fee" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'fee (\ x__ y__ -> x__ {_Hop'fee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "expiry" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'expiry (\ x__ y__ -> x__ {_Hop'expiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "amtToForwardMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'amtToForwardMsat
           (\ x__ y__ -> x__ {_Hop'amtToForwardMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "feeMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'feeMsat (\ x__ y__ -> x__ {_Hop'feeMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'pubKey (\ x__ y__ -> x__ {_Hop'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "tlvPayload" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'tlvPayload (\ x__ y__ -> x__ {_Hop'tlvPayload = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "mppRecord" MPPRecord where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'mppRecord (\ x__ y__ -> x__ {_Hop'mppRecord = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Hop "maybe'mppRecord" (Prelude.Maybe MPPRecord) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'mppRecord (\ x__ y__ -> x__ {_Hop'mppRecord = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "ampRecord" AMPRecord where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'ampRecord (\ x__ y__ -> x__ {_Hop'ampRecord = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Hop "maybe'ampRecord" (Prelude.Maybe AMPRecord) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'ampRecord (\ x__ y__ -> x__ {_Hop'ampRecord = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop "customRecords" (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'customRecords (\ x__ y__ -> x__ {_Hop'customRecords = y__}))
        Prelude.id
instance Data.ProtoLens.Message Hop where
  messageName _ = Data.Text.pack "lnrpc.Hop"
  packedMessageDescriptor _
    = "\n\
      \\ETXHop\DC2\ESC\n\
      \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2'\n\
      \\rchan_capacity\CAN\STX \SOH(\ETXR\fchanCapacityB\STX\CAN\SOH\DC2(\n\
      \\SOamt_to_forward\CAN\ETX \SOH(\ETXR\famtToForwardB\STX\CAN\SOH\DC2\DC4\n\
      \\ETXfee\CAN\EOT \SOH(\ETXR\ETXfeeB\STX\CAN\SOH\DC2\SYN\n\
      \\ACKexpiry\CAN\ENQ \SOH(\rR\ACKexpiry\DC2-\n\
      \\DC3amt_to_forward_msat\CAN\ACK \SOH(\ETXR\DLEamtToForwardMsat\DC2\EM\n\
      \\bfee_msat\CAN\a \SOH(\ETXR\afeeMsat\DC2\ETB\n\
      \\apub_key\CAN\b \SOH(\tR\ACKpubKey\DC2\US\n\
      \\vtlv_payload\CAN\t \SOH(\bR\n\
      \tlvPayload\DC2/\n\
      \\n\
      \mpp_record\CAN\n\
      \ \SOH(\v2\DLE.lnrpc.MPPRecordR\tmppRecord\DC2/\n\
      \\n\
      \amp_record\CAN\f \SOH(\v2\DLE.lnrpc.AMPRecordR\tampRecord\DC2D\n\
      \\SOcustom_records\CAN\v \ETX(\v2\GS.lnrpc.Hop.CustomRecordsEntryR\rcustomRecords\SUB@\n\
      \\DC2CustomRecordsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor Hop
        chanCapacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanCapacity")) ::
              Data.ProtoLens.FieldDescriptor Hop
        amtToForward__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_to_forward"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtToForward")) ::
              Data.ProtoLens.FieldDescriptor Hop
        fee__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"fee")) ::
              Data.ProtoLens.FieldDescriptor Hop
        expiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"expiry")) ::
              Data.ProtoLens.FieldDescriptor Hop
        amtToForwardMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_to_forward_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtToForwardMsat")) ::
              Data.ProtoLens.FieldDescriptor Hop
        feeMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeMsat")) ::
              Data.ProtoLens.FieldDescriptor Hop
        pubKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pub_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pubKey")) ::
              Data.ProtoLens.FieldDescriptor Hop
        tlvPayload__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "tlv_payload"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"tlvPayload")) ::
              Data.ProtoLens.FieldDescriptor Hop
        mppRecord__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "mpp_record"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor MPPRecord)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'mppRecord")) ::
              Data.ProtoLens.FieldDescriptor Hop
        ampRecord__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amp_record"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor AMPRecord)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'ampRecord")) ::
              Data.ProtoLens.FieldDescriptor Hop
        customRecords__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "custom_records"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Hop'CustomRecordsEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"customRecords")) ::
              Data.ProtoLens.FieldDescriptor Hop
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanId__field_descriptor),
           (Data.ProtoLens.Tag 2, chanCapacity__field_descriptor),
           (Data.ProtoLens.Tag 3, amtToForward__field_descriptor),
           (Data.ProtoLens.Tag 4, fee__field_descriptor),
           (Data.ProtoLens.Tag 5, expiry__field_descriptor),
           (Data.ProtoLens.Tag 6, amtToForwardMsat__field_descriptor),
           (Data.ProtoLens.Tag 7, feeMsat__field_descriptor),
           (Data.ProtoLens.Tag 8, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 9, tlvPayload__field_descriptor),
           (Data.ProtoLens.Tag 10, mppRecord__field_descriptor),
           (Data.ProtoLens.Tag 12, ampRecord__field_descriptor),
           (Data.ProtoLens.Tag 11, customRecords__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Hop'_unknownFields (\ x__ y__ -> x__ {_Hop'_unknownFields = y__})
  defMessage
    = Hop'_constructor
        {_Hop'chanId = Data.ProtoLens.fieldDefault,
         _Hop'chanCapacity = Data.ProtoLens.fieldDefault,
         _Hop'amtToForward = Data.ProtoLens.fieldDefault,
         _Hop'fee = Data.ProtoLens.fieldDefault,
         _Hop'expiry = Data.ProtoLens.fieldDefault,
         _Hop'amtToForwardMsat = Data.ProtoLens.fieldDefault,
         _Hop'feeMsat = Data.ProtoLens.fieldDefault,
         _Hop'pubKey = Data.ProtoLens.fieldDefault,
         _Hop'tlvPayload = Data.ProtoLens.fieldDefault,
         _Hop'mppRecord = Prelude.Nothing, _Hop'ampRecord = Prelude.Nothing,
         _Hop'customRecords = Data.Map.empty, _Hop'_unknownFields = []}
  parseMessage
    = let
        loop :: Hop -> Data.ProtoLens.Encoding.Bytes.Parser Hop
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "chan_capacity"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"chanCapacity") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_to_forward"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"amtToForward") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"fee") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "expiry"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"expiry") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_to_forward_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"amtToForwardMsat") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_msat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeMsat") y x)
                        66
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "pub_key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pubKey") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "tlv_payload"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"tlvPayload") y x)
                        82
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "mpp_record"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"mppRecord") y x)
                        98
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "amp_record"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"ampRecord") y x)
                        90
                          -> do !(entry :: Hop'CustomRecordsEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                            Data.ProtoLens.Encoding.Bytes.isolate
                                                                              (Prelude.fromIntegral
                                                                                 len)
                                                                              Data.ProtoLens.parseMessage)
                                                                        "custom_records"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"customRecords")
                                        (\ !t -> Data.Map.insert key value t) x))
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "Hop"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"chanCapacity") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"amtToForward") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"fee") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"expiry") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"amtToForwardMsat") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v = Lens.Family2.view (Data.ProtoLens.Field.field @"feeMsat") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putVarInt
                                           Prelude.fromIntegral _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view (Data.ProtoLens.Field.field @"pubKey") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
                                           ((Prelude..)
                                              (\ bs
                                                 -> (Data.Monoid.<>)
                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                         (Prelude.fromIntegral
                                                            (Data.ByteString.length bs)))
                                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                              Data.Text.Encoding.encodeUtf8 _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"tlvPayload") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 (\ b -> if b then 1 else 0) _v))
                                     ((Data.Monoid.<>)
                                        (case
                                             Lens.Family2.view
                                               (Data.ProtoLens.Field.field @"maybe'mppRecord") _x
                                         of
                                           Prelude.Nothing -> Data.Monoid.mempty
                                           (Prelude.Just _v)
                                             -> (Data.Monoid.<>)
                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 82)
                                                  ((Prelude..)
                                                     (\ bs
                                                        -> (Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                (Prelude.fromIntegral
                                                                   (Data.ByteString.length bs)))
                                                             (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                bs))
                                                     Data.ProtoLens.encodeMessage _v))
                                        ((Data.Monoid.<>)
                                           (case
                                                Lens.Family2.view
                                                  (Data.ProtoLens.Field.field @"maybe'ampRecord") _x
                                            of
                                              Prelude.Nothing -> Data.Monoid.mempty
                                              (Prelude.Just _v)
                                                -> (Data.Monoid.<>)
                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 98)
                                                     ((Prelude..)
                                                        (\ bs
                                                           -> (Data.Monoid.<>)
                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                   (Prelude.fromIntegral
                                                                      (Data.ByteString.length bs)))
                                                                (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                   bs))
                                                        Data.ProtoLens.encodeMessage _v))
                                           ((Data.Monoid.<>)
                                              (Data.Monoid.mconcat
                                                 (Prelude.map
                                                    (\ _v
                                                       -> (Data.Monoid.<>)
                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                               90)
                                                            ((Prelude..)
                                                               (\ bs
                                                                  -> (Data.Monoid.<>)
                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                          (Prelude.fromIntegral
                                                                             (Data.ByteString.length
                                                                                bs)))
                                                                       (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                          bs))
                                                               Data.ProtoLens.encodeMessage
                                                               (Lens.Family2.set
                                                                  (Data.ProtoLens.Field.field
                                                                     @"key")
                                                                  (Prelude.fst _v)
                                                                  (Lens.Family2.set
                                                                     (Data.ProtoLens.Field.field
                                                                        @"value")
                                                                     (Prelude.snd _v)
                                                                     (Data.ProtoLens.defMessage ::
                                                                        Hop'CustomRecordsEntry)))))
                                                    (Data.Map.toList
                                                       (Lens.Family2.view
                                                          (Data.ProtoLens.Field.field
                                                             @"customRecords")
                                                          _x))))
                                              (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                                 (Lens.Family2.view
                                                    Data.ProtoLens.unknownFields _x)))))))))))))
instance Control.DeepSeq.NFData Hop where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Hop'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Hop'chanId x__)
                (Control.DeepSeq.deepseq
                   (_Hop'chanCapacity x__)
                   (Control.DeepSeq.deepseq
                      (_Hop'amtToForward x__)
                      (Control.DeepSeq.deepseq
                         (_Hop'fee x__)
                         (Control.DeepSeq.deepseq
                            (_Hop'expiry x__)
                            (Control.DeepSeq.deepseq
                               (_Hop'amtToForwardMsat x__)
                               (Control.DeepSeq.deepseq
                                  (_Hop'feeMsat x__)
                                  (Control.DeepSeq.deepseq
                                     (_Hop'pubKey x__)
                                     (Control.DeepSeq.deepseq
                                        (_Hop'tlvPayload x__)
                                        (Control.DeepSeq.deepseq
                                           (_Hop'mppRecord x__)
                                           (Control.DeepSeq.deepseq
                                              (_Hop'ampRecord x__)
                                              (Control.DeepSeq.deepseq
                                                 (_Hop'customRecords x__) ()))))))))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' Hop'CustomRecordsEntry Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' Hop'CustomRecordsEntry Data.ByteString.ByteString@ -}
data Hop'CustomRecordsEntry
  = Hop'CustomRecordsEntry'_constructor {_Hop'CustomRecordsEntry'key :: !Data.Word.Word64,
                                         _Hop'CustomRecordsEntry'value :: !Data.ByteString.ByteString,
                                         _Hop'CustomRecordsEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Hop'CustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Hop'CustomRecordsEntry
instance Data.ProtoLens.Field.HasField Hop'CustomRecordsEntry "key" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'CustomRecordsEntry'key
           (\ x__ y__ -> x__ {_Hop'CustomRecordsEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Hop'CustomRecordsEntry "value" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Hop'CustomRecordsEntry'value
           (\ x__ y__ -> x__ {_Hop'CustomRecordsEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message Hop'CustomRecordsEntry where
  messageName _ = Data.Text.pack "lnrpc.Hop.CustomRecordsEntry"
  packedMessageDescriptor _
    = "\n\
      \\DC2CustomRecordsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor Hop'CustomRecordsEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor Hop'CustomRecordsEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Hop'CustomRecordsEntry'_unknownFields
        (\ x__ y__ -> x__ {_Hop'CustomRecordsEntry'_unknownFields = y__})
  defMessage
    = Hop'CustomRecordsEntry'_constructor
        {_Hop'CustomRecordsEntry'key = Data.ProtoLens.fieldDefault,
         _Hop'CustomRecordsEntry'value = Data.ProtoLens.fieldDefault,
         _Hop'CustomRecordsEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Hop'CustomRecordsEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser Hop'CustomRecordsEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "CustomRecordsEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"value") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData Hop'CustomRecordsEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Hop'CustomRecordsEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Hop'CustomRecordsEntry'key x__)
                (Control.DeepSeq.deepseq (_Hop'CustomRecordsEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.nodeId' @:: Lens' HopHint Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.chanId' @:: Lens' HopHint Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.feeBaseMsat' @:: Lens' HopHint Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.feeProportionalMillionths' @:: Lens' HopHint Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.cltvExpiryDelta' @:: Lens' HopHint Data.Word.Word32@ -}
data HopHint
  = HopHint'_constructor {_HopHint'nodeId :: !Data.Text.Text,
                          _HopHint'chanId :: !Data.Word.Word64,
                          _HopHint'feeBaseMsat :: !Data.Word.Word32,
                          _HopHint'feeProportionalMillionths :: !Data.Word.Word32,
                          _HopHint'cltvExpiryDelta :: !Data.Word.Word32,
                          _HopHint'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show HopHint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out HopHint
instance Data.ProtoLens.Field.HasField HopHint "nodeId" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HopHint'nodeId (\ x__ y__ -> x__ {_HopHint'nodeId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HopHint "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HopHint'chanId (\ x__ y__ -> x__ {_HopHint'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HopHint "feeBaseMsat" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HopHint'feeBaseMsat
           (\ x__ y__ -> x__ {_HopHint'feeBaseMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HopHint "feeProportionalMillionths" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HopHint'feeProportionalMillionths
           (\ x__ y__ -> x__ {_HopHint'feeProportionalMillionths = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HopHint "cltvExpiryDelta" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HopHint'cltvExpiryDelta
           (\ x__ y__ -> x__ {_HopHint'cltvExpiryDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Message HopHint where
  messageName _ = Data.Text.pack "lnrpc.HopHint"
  packedMessageDescriptor _
    = "\n\
      \\aHopHint\DC2\ETB\n\
      \\anode_id\CAN\SOH \SOH(\tR\ACKnodeId\DC2\ESC\n\
      \\achan_id\CAN\STX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\"\n\
      \\rfee_base_msat\CAN\ETX \SOH(\rR\vfeeBaseMsat\DC2>\n\
      \\ESCfee_proportional_millionths\CAN\EOT \SOH(\rR\EMfeeProportionalMillionths\DC2*\n\
      \\DC1cltv_expiry_delta\CAN\ENQ \SOH(\rR\SIcltvExpiryDelta"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        nodeId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"nodeId")) ::
              Data.ProtoLens.FieldDescriptor HopHint
        chanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chanId")) ::
              Data.ProtoLens.FieldDescriptor HopHint
        feeBaseMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_base_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feeBaseMsat")) ::
              Data.ProtoLens.FieldDescriptor HopHint
        feeProportionalMillionths__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_proportional_millionths"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feeProportionalMillionths")) ::
              Data.ProtoLens.FieldDescriptor HopHint
        cltvExpiryDelta__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cltv_expiry_delta"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cltvExpiryDelta")) ::
              Data.ProtoLens.FieldDescriptor HopHint
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, nodeId__field_descriptor),
           (Data.ProtoLens.Tag 2, chanId__field_descriptor),
           (Data.ProtoLens.Tag 3, feeBaseMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, 
            feeProportionalMillionths__field_descriptor),
           (Data.ProtoLens.Tag 5, cltvExpiryDelta__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _HopHint'_unknownFields
        (\ x__ y__ -> x__ {_HopHint'_unknownFields = y__})
  defMessage
    = HopHint'_constructor
        {_HopHint'nodeId = Data.ProtoLens.fieldDefault,
         _HopHint'chanId = Data.ProtoLens.fieldDefault,
         _HopHint'feeBaseMsat = Data.ProtoLens.fieldDefault,
         _HopHint'feeProportionalMillionths = Data.ProtoLens.fieldDefault,
         _HopHint'cltvExpiryDelta = Data.ProtoLens.fieldDefault,
         _HopHint'_unknownFields = []}
  parseMessage
    = let
        loop :: HopHint -> Data.ProtoLens.Encoding.Bytes.Parser HopHint
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "node_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"nodeId") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_base_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feeBaseMsat") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_proportional_millionths"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"feeProportionalMillionths") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "cltv_expiry_delta"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"cltvExpiryDelta") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "HopHint"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nodeId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chanId") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"feeBaseMsat") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"feeProportionalMillionths") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"cltvExpiryDelta") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData HopHint where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_HopHint'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_HopHint'nodeId x__)
                (Control.DeepSeq.deepseq
                   (_HopHint'chanId x__)
                   (Control.DeepSeq.deepseq
                      (_HopHint'feeBaseMsat x__)
                      (Control.DeepSeq.deepseq
                         (_HopHint'feeProportionalMillionths x__)
                         (Control.DeepSeq.deepseq (_HopHint'cltvExpiryDelta x__) ())))))
newtype Initiator'UnrecognizedValue
  = Initiator'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out Initiator'UnrecognizedValue
data Initiator
  = INITIATOR_UNKNOWN |
    INITIATOR_LOCAL |
    INITIATOR_REMOTE |
    INITIATOR_BOTH |
    Initiator'Unrecognized !Initiator'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum Initiator where
  maybeToEnum 0 = Prelude.Just INITIATOR_UNKNOWN
  maybeToEnum 1 = Prelude.Just INITIATOR_LOCAL
  maybeToEnum 2 = Prelude.Just INITIATOR_REMOTE
  maybeToEnum 3 = Prelude.Just INITIATOR_BOTH
  maybeToEnum k
    = Prelude.Just
        (Initiator'Unrecognized
           (Initiator'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum INITIATOR_UNKNOWN = "INITIATOR_UNKNOWN"
  showEnum INITIATOR_LOCAL = "INITIATOR_LOCAL"
  showEnum INITIATOR_REMOTE = "INITIATOR_REMOTE"
  showEnum INITIATOR_BOTH = "INITIATOR_BOTH"
  showEnum (Initiator'Unrecognized (Initiator'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "INITIATOR_UNKNOWN"
    = Prelude.Just INITIATOR_UNKNOWN
    | (Prelude.==) k "INITIATOR_LOCAL" = Prelude.Just INITIATOR_LOCAL
    | (Prelude.==) k "INITIATOR_REMOTE" = Prelude.Just INITIATOR_REMOTE
    | (Prelude.==) k "INITIATOR_BOTH" = Prelude.Just INITIATOR_BOTH
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded Initiator where
  minBound = INITIATOR_UNKNOWN
  maxBound = INITIATOR_BOTH
instance Prelude.Enum Initiator where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum Initiator: " (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum INITIATOR_UNKNOWN = 0
  fromEnum INITIATOR_LOCAL = 1
  fromEnum INITIATOR_REMOTE = 2
  fromEnum INITIATOR_BOTH = 3
  fromEnum (Initiator'Unrecognized (Initiator'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ INITIATOR_BOTH
    = Prelude.error
        "Initiator.succ: bad argument INITIATOR_BOTH. This value would be out of bounds."
  succ INITIATOR_UNKNOWN = INITIATOR_LOCAL
  succ INITIATOR_LOCAL = INITIATOR_REMOTE
  succ INITIATOR_REMOTE = INITIATOR_BOTH
  succ (Initiator'Unrecognized _)
    = Prelude.error "Initiator.succ: bad argument: unrecognized value"
  pred INITIATOR_UNKNOWN
    = Prelude.error
        "Initiator.pred: bad argument INITIATOR_UNKNOWN. This value would be out of bounds."
  pred INITIATOR_LOCAL = INITIATOR_UNKNOWN
  pred INITIATOR_REMOTE = INITIATOR_LOCAL
  pred INITIATOR_BOTH = INITIATOR_REMOTE
  pred (Initiator'Unrecognized _)
    = Prelude.error "Initiator.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault Initiator where
  fieldDefault = INITIATOR_UNKNOWN
instance Control.DeepSeq.NFData Initiator where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out Initiator
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.rawKeyBytes' @:: Lens' KeyDescriptor Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.keyLoc' @:: Lens' KeyDescriptor KeyLocator@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'keyLoc' @:: Lens' KeyDescriptor (Prelude.Maybe KeyLocator)@ -}
data KeyDescriptor
  = KeyDescriptor'_constructor {_KeyDescriptor'rawKeyBytes :: !Data.ByteString.ByteString,
                                _KeyDescriptor'keyLoc :: !(Prelude.Maybe KeyLocator),
                                _KeyDescriptor'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show KeyDescriptor where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out KeyDescriptor
instance Data.ProtoLens.Field.HasField KeyDescriptor "rawKeyBytes" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _KeyDescriptor'rawKeyBytes
           (\ x__ y__ -> x__ {_KeyDescriptor'rawKeyBytes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField KeyDescriptor "keyLoc" KeyLocator where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _KeyDescriptor'keyLoc
           (\ x__ y__ -> x__ {_KeyDescriptor'keyLoc = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField KeyDescriptor "maybe'keyLoc" (Prelude.Maybe KeyLocator) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _KeyDescriptor'keyLoc
           (\ x__ y__ -> x__ {_KeyDescriptor'keyLoc = y__}))
        Prelude.id
instance Data.ProtoLens.Message KeyDescriptor where
  messageName _ = Data.Text.pack "lnrpc.KeyDescriptor"
  packedMessageDescriptor _
    = "\n\
      \\rKeyDescriptor\DC2\"\n\
      \\rraw_key_bytes\CAN\SOH \SOH(\fR\vrawKeyBytes\DC2*\n\
      \\akey_loc\CAN\STX \SOH(\v2\DC1.lnrpc.KeyLocatorR\ACKkeyLoc"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rawKeyBytes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "raw_key_bytes"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rawKeyBytes")) ::
              Data.ProtoLens.FieldDescriptor KeyDescriptor
        keyLoc__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key_loc"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor KeyLocator)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'keyLoc")) ::
              Data.ProtoLens.FieldDescriptor KeyDescriptor
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rawKeyBytes__field_descriptor),
           (Data.ProtoLens.Tag 2, keyLoc__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _KeyDescriptor'_unknownFields
        (\ x__ y__ -> x__ {_KeyDescriptor'_unknownFields = y__})
  defMessage
    = KeyDescriptor'_constructor
        {_KeyDescriptor'rawKeyBytes = Data.ProtoLens.fieldDefault,
         _KeyDescriptor'keyLoc = Prelude.Nothing,
         _KeyDescriptor'_unknownFields = []}
  parseMessage
    = let
        loop ::
          KeyDescriptor -> Data.ProtoLens.Encoding.Bytes.Parser KeyDescriptor
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "raw_key_bytes"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rawKeyBytes") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "key_loc"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"keyLoc") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "KeyDescriptor"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"rawKeyBytes") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'keyLoc") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData KeyDescriptor where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_KeyDescriptor'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_KeyDescriptor'rawKeyBytes x__)
                (Control.DeepSeq.deepseq (_KeyDescriptor'keyLoc x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.keyFamily' @:: Lens' KeyLocator Data.Int.Int32@
         * 'Proto.Lnrpc.Ln0_Fields.keyIndex' @:: Lens' KeyLocator Data.Int.Int32@ -}
data KeyLocator
  = KeyLocator'_constructor {_KeyLocator'keyFamily :: !Data.Int.Int32,
                             _KeyLocator'keyIndex :: !Data.Int.Int32,
                             _KeyLocator'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show KeyLocator where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out KeyLocator
instance Data.ProtoLens.Field.HasField KeyLocator "keyFamily" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _KeyLocator'keyFamily
           (\ x__ y__ -> x__ {_KeyLocator'keyFamily = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField KeyLocator "keyIndex" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _KeyLocator'keyIndex
           (\ x__ y__ -> x__ {_KeyLocator'keyIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message KeyLocator where
  messageName _ = Data.Text.pack "lnrpc.KeyLocator"
  packedMessageDescriptor _
    = "\n\
      \\n\
      \KeyLocator\DC2\GS\n\
      \\n\
      \key_family\CAN\SOH \SOH(\ENQR\tkeyFamily\DC2\ESC\n\
      \\tkey_index\CAN\STX \SOH(\ENQR\bkeyIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        keyFamily__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key_family"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"keyFamily")) ::
              Data.ProtoLens.FieldDescriptor KeyLocator
        keyIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"keyIndex")) ::
              Data.ProtoLens.FieldDescriptor KeyLocator
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, keyFamily__field_descriptor),
           (Data.ProtoLens.Tag 2, keyIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _KeyLocator'_unknownFields
        (\ x__ y__ -> x__ {_KeyLocator'_unknownFields = y__})
  defMessage
    = KeyLocator'_constructor
        {_KeyLocator'keyFamily = Data.ProtoLens.fieldDefault,
         _KeyLocator'keyIndex = Data.ProtoLens.fieldDefault,
         _KeyLocator'_unknownFields = []}
  parseMessage
    = let
        loop ::
          KeyLocator -> Data.ProtoLens.Encoding.Bytes.Parser KeyLocator
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "key_family"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"keyFamily") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "key_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"keyIndex") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "KeyLocator"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"keyFamily") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"keyIndex") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData KeyLocator where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_KeyLocator'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_KeyLocator'keyFamily x__)
                (Control.DeepSeq.deepseq (_KeyLocator'keyIndex x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.lastUpdate' @:: Lens' LightningNode Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.pubKey' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.alias' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.addresses' @:: Lens' LightningNode [NodeAddress]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'addresses' @:: Lens' LightningNode (Data.Vector.Vector NodeAddress)@
         * 'Proto.Lnrpc.Ln0_Fields.color' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.features' @:: Lens' LightningNode (Data.Map.Map Data.Word.Word32 Feature)@ -}
data LightningNode
  = LightningNode'_constructor {_LightningNode'lastUpdate :: !Data.Word.Word32,
                                _LightningNode'pubKey :: !Data.Text.Text,
                                _LightningNode'alias :: !Data.Text.Text,
                                _LightningNode'addresses :: !(Data.Vector.Vector NodeAddress),
                                _LightningNode'color :: !Data.Text.Text,
                                _LightningNode'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                                _LightningNode'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show LightningNode where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out LightningNode
instance Data.ProtoLens.Field.HasField LightningNode "lastUpdate" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'lastUpdate
           (\ x__ y__ -> x__ {_LightningNode'lastUpdate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'pubKey
           (\ x__ y__ -> x__ {_LightningNode'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode "alias" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'alias
           (\ x__ y__ -> x__ {_LightningNode'alias = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode "addresses" [NodeAddress] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'addresses
           (\ x__ y__ -> x__ {_LightningNode'addresses = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField LightningNode "vec'addresses" (Data.Vector.Vector NodeAddress) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'addresses
           (\ x__ y__ -> x__ {_LightningNode'addresses = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode "color" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'color
           (\ x__ y__ -> x__ {_LightningNode'color = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'features
           (\ x__ y__ -> x__ {_LightningNode'features = y__}))
        Prelude.id
instance Data.ProtoLens.Message LightningNode where
  messageName _ = Data.Text.pack "lnrpc.LightningNode"
  packedMessageDescriptor _
    = "\n\
      \\rLightningNode\DC2\US\n\
      \\vlast_update\CAN\SOH \SOH(\rR\n\
      \lastUpdate\DC2\ETB\n\
      \\apub_key\CAN\STX \SOH(\tR\ACKpubKey\DC2\DC4\n\
      \\ENQalias\CAN\ETX \SOH(\tR\ENQalias\DC20\n\
      \\taddresses\CAN\EOT \ETX(\v2\DC2.lnrpc.NodeAddressR\taddresses\DC2\DC4\n\
      \\ENQcolor\CAN\ENQ \SOH(\tR\ENQcolor\DC2>\n\
      \\bfeatures\CAN\ACK \ETX(\v2\".lnrpc.LightningNode.FeaturesEntryR\bfeatures\SUBK\n\
      \\rFeaturesEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
      \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        lastUpdate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_update"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastUpdate")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
        pubKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pub_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pubKey")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
        alias__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "alias"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"alias")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
        addresses__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "addresses"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodeAddress)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"addresses")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
        color__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "color"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"color")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor LightningNode'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor LightningNode
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, lastUpdate__field_descriptor),
           (Data.ProtoLens.Tag 2, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 3, alias__field_descriptor),
           (Data.ProtoLens.Tag 4, addresses__field_descriptor),
           (Data.ProtoLens.Tag 5, color__field_descriptor),
           (Data.ProtoLens.Tag 6, features__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _LightningNode'_unknownFields
        (\ x__ y__ -> x__ {_LightningNode'_unknownFields = y__})
  defMessage
    = LightningNode'_constructor
        {_LightningNode'lastUpdate = Data.ProtoLens.fieldDefault,
         _LightningNode'pubKey = Data.ProtoLens.fieldDefault,
         _LightningNode'alias = Data.ProtoLens.fieldDefault,
         _LightningNode'addresses = Data.Vector.Generic.empty,
         _LightningNode'color = Data.ProtoLens.fieldDefault,
         _LightningNode'features = Data.Map.empty,
         _LightningNode'_unknownFields = []}
  parseMessage
    = let
        loop ::
          LightningNode
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NodeAddress
             -> Data.ProtoLens.Encoding.Bytes.Parser LightningNode
        loop x mutable'addresses
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'addresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                               mutable'addresses)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'addresses") frozen'addresses x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "last_update"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lastUpdate") y x)
                                  mutable'addresses
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "pub_key"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pubKey") y x)
                                  mutable'addresses
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "alias"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"alias") y x)
                                  mutable'addresses
                        34
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "addresses"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'addresses y)
                                loop x v
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "color"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"color") y x)
                                  mutable'addresses
                        50
                          -> do !(entry :: LightningNode'FeaturesEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                             (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                 Data.ProtoLens.Encoding.Bytes.isolate
                                                                                   (Prelude.fromIntegral
                                                                                      len)
                                                                                   Data.ProtoLens.parseMessage)
                                                                             "features"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"features")
                                        (\ !t -> Data.Map.insert key value t) x)
                                     mutable'addresses)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'addresses
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'addresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                     Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'addresses)
          "LightningNode"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"lastUpdate") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"pubKey") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"alias") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((Prelude..)
                               (\ bs
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               Data.Text.Encoding.encodeUtf8 _v))
                   ((Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                         (\ _v
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                 ((Prelude..)
                                    (\ bs
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                    Data.ProtoLens.encodeMessage _v))
                         (Lens.Family2.view
                            (Data.ProtoLens.Field.field @"vec'addresses") _x))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"color") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         ((Data.Monoid.<>)
                            (Data.Monoid.mconcat
                               (Prelude.map
                                  (\ _v
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                                          ((Prelude..)
                                             (\ bs
                                                -> (Data.Monoid.<>)
                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                        (Prelude.fromIntegral
                                                           (Data.ByteString.length bs)))
                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                             Data.ProtoLens.encodeMessage
                                             (Lens.Family2.set
                                                (Data.ProtoLens.Field.field @"key") (Prelude.fst _v)
                                                (Lens.Family2.set
                                                   (Data.ProtoLens.Field.field @"value")
                                                   (Prelude.snd _v)
                                                   (Data.ProtoLens.defMessage ::
                                                      LightningNode'FeaturesEntry)))))
                                  (Data.Map.toList
                                     (Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"features") _x))))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData LightningNode where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_LightningNode'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_LightningNode'lastUpdate x__)
                (Control.DeepSeq.deepseq
                   (_LightningNode'pubKey x__)
                   (Control.DeepSeq.deepseq
                      (_LightningNode'alias x__)
                      (Control.DeepSeq.deepseq
                         (_LightningNode'addresses x__)
                         (Control.DeepSeq.deepseq
                            (_LightningNode'color x__)
                            (Control.DeepSeq.deepseq (_LightningNode'features x__) ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' LightningNode'FeaturesEntry Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' LightningNode'FeaturesEntry Feature@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'value' @:: Lens' LightningNode'FeaturesEntry (Prelude.Maybe Feature)@ -}
data LightningNode'FeaturesEntry
  = LightningNode'FeaturesEntry'_constructor {_LightningNode'FeaturesEntry'key :: !Data.Word.Word32,
                                              _LightningNode'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                              _LightningNode'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show LightningNode'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out LightningNode'FeaturesEntry
instance Data.ProtoLens.Field.HasField LightningNode'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'FeaturesEntry'key
           (\ x__ y__ -> x__ {_LightningNode'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningNode'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'FeaturesEntry'value
           (\ x__ y__ -> x__ {_LightningNode'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField LightningNode'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningNode'FeaturesEntry'value
           (\ x__ y__ -> x__ {_LightningNode'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message LightningNode'FeaturesEntry where
  messageName _ = Data.Text.pack "lnrpc.LightningNode.FeaturesEntry"
  packedMessageDescriptor _
    = "\n\
      \\rFeaturesEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
      \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor LightningNode'FeaturesEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Feature)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'value")) ::
              Data.ProtoLens.FieldDescriptor LightningNode'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _LightningNode'FeaturesEntry'_unknownFields
        (\ x__ y__
           -> x__ {_LightningNode'FeaturesEntry'_unknownFields = y__})
  defMessage
    = LightningNode'FeaturesEntry'_constructor
        {_LightningNode'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _LightningNode'FeaturesEntry'value = Prelude.Nothing,
         _LightningNode'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          LightningNode'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser LightningNode'FeaturesEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FeaturesEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'value") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData LightningNode'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_LightningNode'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_LightningNode'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_LightningNode'FeaturesEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.paymentAddr' @:: Lens' MPPRecord Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.totalAmtMsat' @:: Lens' MPPRecord Data.Int.Int64@ -}
data MPPRecord
  = MPPRecord'_constructor {_MPPRecord'paymentAddr :: !Data.ByteString.ByteString,
                            _MPPRecord'totalAmtMsat :: !Data.Int.Int64,
                            _MPPRecord'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show MPPRecord where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out MPPRecord
instance Data.ProtoLens.Field.HasField MPPRecord "paymentAddr" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MPPRecord'paymentAddr
           (\ x__ y__ -> x__ {_MPPRecord'paymentAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField MPPRecord "totalAmtMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MPPRecord'totalAmtMsat
           (\ x__ y__ -> x__ {_MPPRecord'totalAmtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Message MPPRecord where
  messageName _ = Data.Text.pack "lnrpc.MPPRecord"
  packedMessageDescriptor _
    = "\n\
      \\tMPPRecord\DC2!\n\
      \\fpayment_addr\CAN\v \SOH(\fR\vpaymentAddr\DC2$\n\
      \\SOtotal_amt_msat\CAN\n\
      \ \SOH(\ETXR\ftotalAmtMsat"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        paymentAddr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_addr"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentAddr")) ::
              Data.ProtoLens.FieldDescriptor MPPRecord
        totalAmtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalAmtMsat")) ::
              Data.ProtoLens.FieldDescriptor MPPRecord
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 11, paymentAddr__field_descriptor),
           (Data.ProtoLens.Tag 10, totalAmtMsat__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _MPPRecord'_unknownFields
        (\ x__ y__ -> x__ {_MPPRecord'_unknownFields = y__})
  defMessage
    = MPPRecord'_constructor
        {_MPPRecord'paymentAddr = Data.ProtoLens.fieldDefault,
         _MPPRecord'totalAmtMsat = Data.ProtoLens.fieldDefault,
         _MPPRecord'_unknownFields = []}
  parseMessage
    = let
        loop :: MPPRecord -> Data.ProtoLens.Encoding.Bytes.Parser MPPRecord
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        90
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "payment_addr"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentAddr") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_amt_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalAmtMsat") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "MPPRecord"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"paymentAddr") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 90)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"totalAmtMsat") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData MPPRecord where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_MPPRecord'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_MPPRecord'paymentAddr x__)
                (Control.DeepSeq.deepseq (_MPPRecord'totalAmtMsat x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.graphDiameter' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.avgOutDegree' @:: Lens' NetworkInfo Prelude.Double@
         * 'Proto.Lnrpc.Ln0_Fields.maxOutDegree' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.numNodes' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.numChannels' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.totalNetworkCapacity' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.avgChannelSize' @:: Lens' NetworkInfo Prelude.Double@
         * 'Proto.Lnrpc.Ln0_Fields.minChannelSize' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.maxChannelSize' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.medianChannelSizeSat' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.numZombieChans' @:: Lens' NetworkInfo Data.Word.Word64@ -}
data NetworkInfo
  = NetworkInfo'_constructor {_NetworkInfo'graphDiameter :: !Data.Word.Word32,
                              _NetworkInfo'avgOutDegree :: !Prelude.Double,
                              _NetworkInfo'maxOutDegree :: !Data.Word.Word32,
                              _NetworkInfo'numNodes :: !Data.Word.Word32,
                              _NetworkInfo'numChannels :: !Data.Word.Word32,
                              _NetworkInfo'totalNetworkCapacity :: !Data.Int.Int64,
                              _NetworkInfo'avgChannelSize :: !Prelude.Double,
                              _NetworkInfo'minChannelSize :: !Data.Int.Int64,
                              _NetworkInfo'maxChannelSize :: !Data.Int.Int64,
                              _NetworkInfo'medianChannelSizeSat :: !Data.Int.Int64,
                              _NetworkInfo'numZombieChans :: !Data.Word.Word64,
                              _NetworkInfo'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NetworkInfo where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NetworkInfo
instance Data.ProtoLens.Field.HasField NetworkInfo "graphDiameter" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'graphDiameter
           (\ x__ y__ -> x__ {_NetworkInfo'graphDiameter = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "avgOutDegree" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'avgOutDegree
           (\ x__ y__ -> x__ {_NetworkInfo'avgOutDegree = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "maxOutDegree" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'maxOutDegree
           (\ x__ y__ -> x__ {_NetworkInfo'maxOutDegree = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "numNodes" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'numNodes
           (\ x__ y__ -> x__ {_NetworkInfo'numNodes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "numChannels" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'numChannels
           (\ x__ y__ -> x__ {_NetworkInfo'numChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "totalNetworkCapacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'totalNetworkCapacity
           (\ x__ y__ -> x__ {_NetworkInfo'totalNetworkCapacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "avgChannelSize" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'avgChannelSize
           (\ x__ y__ -> x__ {_NetworkInfo'avgChannelSize = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "minChannelSize" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'minChannelSize
           (\ x__ y__ -> x__ {_NetworkInfo'minChannelSize = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "maxChannelSize" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'maxChannelSize
           (\ x__ y__ -> x__ {_NetworkInfo'maxChannelSize = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "medianChannelSizeSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'medianChannelSizeSat
           (\ x__ y__ -> x__ {_NetworkInfo'medianChannelSizeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NetworkInfo "numZombieChans" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NetworkInfo'numZombieChans
           (\ x__ y__ -> x__ {_NetworkInfo'numZombieChans = y__}))
        Prelude.id
instance Data.ProtoLens.Message NetworkInfo where
  messageName _ = Data.Text.pack "lnrpc.NetworkInfo"
  packedMessageDescriptor _
    = "\n\
      \\vNetworkInfo\DC2%\n\
      \\SOgraph_diameter\CAN\SOH \SOH(\rR\rgraphDiameter\DC2$\n\
      \\SOavg_out_degree\CAN\STX \SOH(\SOHR\favgOutDegree\DC2$\n\
      \\SOmax_out_degree\CAN\ETX \SOH(\rR\fmaxOutDegree\DC2\ESC\n\
      \\tnum_nodes\CAN\EOT \SOH(\rR\bnumNodes\DC2!\n\
      \\fnum_channels\CAN\ENQ \SOH(\rR\vnumChannels\DC24\n\
      \\SYNtotal_network_capacity\CAN\ACK \SOH(\ETXR\DC4totalNetworkCapacity\DC2(\n\
      \\DLEavg_channel_size\CAN\a \SOH(\SOHR\SOavgChannelSize\DC2(\n\
      \\DLEmin_channel_size\CAN\b \SOH(\ETXR\SOminChannelSize\DC2(\n\
      \\DLEmax_channel_size\CAN\t \SOH(\ETXR\SOmaxChannelSize\DC25\n\
      \\ETBmedian_channel_size_sat\CAN\n\
      \ \SOH(\ETXR\DC4medianChannelSizeSat\DC2(\n\
      \\DLEnum_zombie_chans\CAN\v \SOH(\EOTR\SOnumZombieChans"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        graphDiameter__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "graph_diameter"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"graphDiameter")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        avgOutDegree__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "avg_out_degree"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"avgOutDegree")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        maxOutDegree__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_out_degree"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxOutDegree")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        numNodes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_nodes"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numNodes")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        numChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numChannels")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        totalNetworkCapacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_network_capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalNetworkCapacity")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        avgChannelSize__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "avg_channel_size"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"avgChannelSize")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        minChannelSize__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_channel_size"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minChannelSize")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        maxChannelSize__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_channel_size"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxChannelSize")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        medianChannelSizeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "median_channel_size_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"medianChannelSizeSat")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
        numZombieChans__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_zombie_chans"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numZombieChans")) ::
              Data.ProtoLens.FieldDescriptor NetworkInfo
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, graphDiameter__field_descriptor),
           (Data.ProtoLens.Tag 2, avgOutDegree__field_descriptor),
           (Data.ProtoLens.Tag 3, maxOutDegree__field_descriptor),
           (Data.ProtoLens.Tag 4, numNodes__field_descriptor),
           (Data.ProtoLens.Tag 5, numChannels__field_descriptor),
           (Data.ProtoLens.Tag 6, totalNetworkCapacity__field_descriptor),
           (Data.ProtoLens.Tag 7, avgChannelSize__field_descriptor),
           (Data.ProtoLens.Tag 8, minChannelSize__field_descriptor),
           (Data.ProtoLens.Tag 9, maxChannelSize__field_descriptor),
           (Data.ProtoLens.Tag 10, medianChannelSizeSat__field_descriptor),
           (Data.ProtoLens.Tag 11, numZombieChans__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NetworkInfo'_unknownFields
        (\ x__ y__ -> x__ {_NetworkInfo'_unknownFields = y__})
  defMessage
    = NetworkInfo'_constructor
        {_NetworkInfo'graphDiameter = Data.ProtoLens.fieldDefault,
         _NetworkInfo'avgOutDegree = Data.ProtoLens.fieldDefault,
         _NetworkInfo'maxOutDegree = Data.ProtoLens.fieldDefault,
         _NetworkInfo'numNodes = Data.ProtoLens.fieldDefault,
         _NetworkInfo'numChannels = Data.ProtoLens.fieldDefault,
         _NetworkInfo'totalNetworkCapacity = Data.ProtoLens.fieldDefault,
         _NetworkInfo'avgChannelSize = Data.ProtoLens.fieldDefault,
         _NetworkInfo'minChannelSize = Data.ProtoLens.fieldDefault,
         _NetworkInfo'maxChannelSize = Data.ProtoLens.fieldDefault,
         _NetworkInfo'medianChannelSizeSat = Data.ProtoLens.fieldDefault,
         _NetworkInfo'numZombieChans = Data.ProtoLens.fieldDefault,
         _NetworkInfo'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NetworkInfo -> Data.ProtoLens.Encoding.Bytes.Parser NetworkInfo
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "graph_diameter"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"graphDiameter") y x)
                        17
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "avg_out_degree"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"avgOutDegree") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_out_degree"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxOutDegree") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_nodes"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numNodes") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_channels"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numChannels") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_network_capacity"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalNetworkCapacity") y x)
                        57
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "avg_channel_size"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"avgChannelSize") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_channel_size"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"minChannelSize") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_channel_size"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxChannelSize") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "median_channel_size_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"medianChannelSizeSat") y x)
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "num_zombie_chans"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numZombieChans") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NetworkInfo"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"graphDiameter") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"avgOutDegree") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 17)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putFixed64
                            Data.ProtoLens.Encoding.Bytes.doubleToWord _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"maxOutDegree") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"numNodes") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view (Data.ProtoLens.Field.field @"numChannels") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"totalNetworkCapacity") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"avgChannelSize") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 57)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putFixed64
                                           Data.ProtoLens.Encoding.Bytes.doubleToWord _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"minChannelSize") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 64)
                                           ((Prelude..)
                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                              Prelude.fromIntegral _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"maxChannelSize") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field
                                                    @"medianChannelSizeSat")
                                                 _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                                 ((Prelude..)
                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
                                                    Prelude.fromIntegral _v))
                                        ((Data.Monoid.<>)
                                           (let
                                              _v
                                                = Lens.Family2.view
                                                    (Data.ProtoLens.Field.field @"numZombieChans")
                                                    _x
                                            in
                                              if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                  Data.Monoid.mempty
                                              else
                                                  (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 88)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                           (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                              (Lens.Family2.view
                                                 Data.ProtoLens.unknownFields _x))))))))))))
instance Control.DeepSeq.NFData NetworkInfo where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NetworkInfo'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NetworkInfo'graphDiameter x__)
                (Control.DeepSeq.deepseq
                   (_NetworkInfo'avgOutDegree x__)
                   (Control.DeepSeq.deepseq
                      (_NetworkInfo'maxOutDegree x__)
                      (Control.DeepSeq.deepseq
                         (_NetworkInfo'numNodes x__)
                         (Control.DeepSeq.deepseq
                            (_NetworkInfo'numChannels x__)
                            (Control.DeepSeq.deepseq
                               (_NetworkInfo'totalNetworkCapacity x__)
                               (Control.DeepSeq.deepseq
                                  (_NetworkInfo'avgChannelSize x__)
                                  (Control.DeepSeq.deepseq
                                     (_NetworkInfo'minChannelSize x__)
                                     (Control.DeepSeq.deepseq
                                        (_NetworkInfo'maxChannelSize x__)
                                        (Control.DeepSeq.deepseq
                                           (_NetworkInfo'medianChannelSizeSat x__)
                                           (Control.DeepSeq.deepseq
                                              (_NetworkInfo'numZombieChans x__) ())))))))))))
{- | Fields :
      -}
data NetworkInfoRequest
  = NetworkInfoRequest'_constructor {_NetworkInfoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NetworkInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NetworkInfoRequest
instance Data.ProtoLens.Message NetworkInfoRequest where
  messageName _ = Data.Text.pack "lnrpc.NetworkInfoRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2NetworkInfoRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NetworkInfoRequest'_unknownFields
        (\ x__ y__ -> x__ {_NetworkInfoRequest'_unknownFields = y__})
  defMessage
    = NetworkInfoRequest'_constructor
        {_NetworkInfoRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NetworkInfoRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser NetworkInfoRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NetworkInfoRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData NetworkInfoRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NetworkInfoRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.network' @:: Lens' NodeAddress Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.addr' @:: Lens' NodeAddress Data.Text.Text@ -}
data NodeAddress
  = NodeAddress'_constructor {_NodeAddress'network :: !Data.Text.Text,
                              _NodeAddress'addr :: !Data.Text.Text,
                              _NodeAddress'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeAddress where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeAddress
instance Data.ProtoLens.Field.HasField NodeAddress "network" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeAddress'network
           (\ x__ y__ -> x__ {_NodeAddress'network = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeAddress "addr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeAddress'addr (\ x__ y__ -> x__ {_NodeAddress'addr = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeAddress where
  messageName _ = Data.Text.pack "lnrpc.NodeAddress"
  packedMessageDescriptor _
    = "\n\
      \\vNodeAddress\DC2\CAN\n\
      \\anetwork\CAN\SOH \SOH(\tR\anetwork\DC2\DC2\n\
      \\EOTaddr\CAN\STX \SOH(\tR\EOTaddr"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        network__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "network"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"network")) ::
              Data.ProtoLens.FieldDescriptor NodeAddress
        addr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "addr"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"addr")) ::
              Data.ProtoLens.FieldDescriptor NodeAddress
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, network__field_descriptor),
           (Data.ProtoLens.Tag 2, addr__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeAddress'_unknownFields
        (\ x__ y__ -> x__ {_NodeAddress'_unknownFields = y__})
  defMessage
    = NodeAddress'_constructor
        {_NodeAddress'network = Data.ProtoLens.fieldDefault,
         _NodeAddress'addr = Data.ProtoLens.fieldDefault,
         _NodeAddress'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeAddress -> Data.ProtoLens.Encoding.Bytes.Parser NodeAddress
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "network"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"network") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "addr"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"addr") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NodeAddress"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"network") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"addr") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData NodeAddress where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeAddress'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeAddress'network x__)
                (Control.DeepSeq.deepseq (_NodeAddress'addr x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.node' @:: Lens' NodeInfo LightningNode@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'node' @:: Lens' NodeInfo (Prelude.Maybe LightningNode)@
         * 'Proto.Lnrpc.Ln0_Fields.numChannels' @:: Lens' NodeInfo Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.totalCapacity' @:: Lens' NodeInfo Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.channels' @:: Lens' NodeInfo [ChannelEdge]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'channels' @:: Lens' NodeInfo (Data.Vector.Vector ChannelEdge)@ -}
data NodeInfo
  = NodeInfo'_constructor {_NodeInfo'node :: !(Prelude.Maybe LightningNode),
                           _NodeInfo'numChannels :: !Data.Word.Word32,
                           _NodeInfo'totalCapacity :: !Data.Int.Int64,
                           _NodeInfo'channels :: !(Data.Vector.Vector ChannelEdge),
                           _NodeInfo'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeInfo where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeInfo
instance Data.ProtoLens.Field.HasField NodeInfo "node" LightningNode where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'node (\ x__ y__ -> x__ {_NodeInfo'node = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField NodeInfo "maybe'node" (Prelude.Maybe LightningNode) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'node (\ x__ y__ -> x__ {_NodeInfo'node = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeInfo "numChannels" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'numChannels
           (\ x__ y__ -> x__ {_NodeInfo'numChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeInfo "totalCapacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'totalCapacity
           (\ x__ y__ -> x__ {_NodeInfo'totalCapacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeInfo "channels" [ChannelEdge] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'channels (\ x__ y__ -> x__ {_NodeInfo'channels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField NodeInfo "vec'channels" (Data.Vector.Vector ChannelEdge) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfo'channels (\ x__ y__ -> x__ {_NodeInfo'channels = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeInfo where
  messageName _ = Data.Text.pack "lnrpc.NodeInfo"
  packedMessageDescriptor _
    = "\n\
      \\bNodeInfo\DC2(\n\
      \\EOTnode\CAN\SOH \SOH(\v2\DC4.lnrpc.LightningNodeR\EOTnode\DC2!\n\
      \\fnum_channels\CAN\STX \SOH(\rR\vnumChannels\DC2%\n\
      \\SOtotal_capacity\CAN\ETX \SOH(\ETXR\rtotalCapacity\DC2.\n\
      \\bchannels\CAN\EOT \ETX(\v2\DC2.lnrpc.ChannelEdgeR\bchannels"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        node__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor LightningNode)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'node")) ::
              Data.ProtoLens.FieldDescriptor NodeInfo
        numChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numChannels")) ::
              Data.ProtoLens.FieldDescriptor NodeInfo
        totalCapacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalCapacity")) ::
              Data.ProtoLens.FieldDescriptor NodeInfo
        channels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelEdge)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"channels")) ::
              Data.ProtoLens.FieldDescriptor NodeInfo
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, node__field_descriptor),
           (Data.ProtoLens.Tag 2, numChannels__field_descriptor),
           (Data.ProtoLens.Tag 3, totalCapacity__field_descriptor),
           (Data.ProtoLens.Tag 4, channels__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeInfo'_unknownFields
        (\ x__ y__ -> x__ {_NodeInfo'_unknownFields = y__})
  defMessage
    = NodeInfo'_constructor
        {_NodeInfo'node = Prelude.Nothing,
         _NodeInfo'numChannels = Data.ProtoLens.fieldDefault,
         _NodeInfo'totalCapacity = Data.ProtoLens.fieldDefault,
         _NodeInfo'channels = Data.Vector.Generic.empty,
         _NodeInfo'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeInfo
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelEdge
             -> Data.ProtoLens.Encoding.Bytes.Parser NodeInfo
        loop x mutable'channels
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'channels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                              mutable'channels)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'channels") frozen'channels x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "node"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"node") y x)
                                  mutable'channels
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_channels"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numChannels") y x)
                                  mutable'channels
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_capacity"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalCapacity") y x)
                                  mutable'channels
                        34
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "channels"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'channels y)
                                loop x v
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'channels
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'channels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                    Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'channels)
          "NodeInfo"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'node") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just _v)
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"numChannels") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view
                            (Data.ProtoLens.Field.field @"totalCapacity") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                         (\ _v
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                 ((Prelude..)
                                    (\ bs
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                    Data.ProtoLens.encodeMessage _v))
                         (Lens.Family2.view
                            (Data.ProtoLens.Field.field @"vec'channels") _x))
                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData NodeInfo where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeInfo'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeInfo'node x__)
                (Control.DeepSeq.deepseq
                   (_NodeInfo'numChannels x__)
                   (Control.DeepSeq.deepseq
                      (_NodeInfo'totalCapacity x__)
                      (Control.DeepSeq.deepseq (_NodeInfo'channels x__) ()))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.pubKey' @:: Lens' NodeInfoRequest Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.includeChannels' @:: Lens' NodeInfoRequest Prelude.Bool@ -}
data NodeInfoRequest
  = NodeInfoRequest'_constructor {_NodeInfoRequest'pubKey :: !Data.Text.Text,
                                  _NodeInfoRequest'includeChannels :: !Prelude.Bool,
                                  _NodeInfoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeInfoRequest
instance Data.ProtoLens.Field.HasField NodeInfoRequest "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfoRequest'pubKey
           (\ x__ y__ -> x__ {_NodeInfoRequest'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeInfoRequest "includeChannels" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeInfoRequest'includeChannels
           (\ x__ y__ -> x__ {_NodeInfoRequest'includeChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeInfoRequest where
  messageName _ = Data.Text.pack "lnrpc.NodeInfoRequest"
  packedMessageDescriptor _
    = "\n\
      \\SINodeInfoRequest\DC2\ETB\n\
      \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2)\n\
      \\DLEinclude_channels\CAN\STX \SOH(\bR\SIincludeChannels"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pubKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pub_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pubKey")) ::
              Data.ProtoLens.FieldDescriptor NodeInfoRequest
        includeChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "include_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"includeChannels")) ::
              Data.ProtoLens.FieldDescriptor NodeInfoRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 2, includeChannels__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeInfoRequest'_unknownFields
        (\ x__ y__ -> x__ {_NodeInfoRequest'_unknownFields = y__})
  defMessage
    = NodeInfoRequest'_constructor
        {_NodeInfoRequest'pubKey = Data.ProtoLens.fieldDefault,
         _NodeInfoRequest'includeChannels = Data.ProtoLens.fieldDefault,
         _NodeInfoRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeInfoRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser NodeInfoRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "pub_key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pubKey") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "include_channels"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"includeChannels") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NodeInfoRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"pubKey") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"includeChannels") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                            _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData NodeInfoRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeInfoRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeInfoRequest'pubKey x__)
                (Control.DeepSeq.deepseq
                   (_NodeInfoRequest'includeChannels x__) ()))
newtype NodeMetricType'UnrecognizedValue
  = NodeMetricType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out NodeMetricType'UnrecognizedValue
data NodeMetricType
  = UNKNOWN |
    BETWEENNESS_CENTRALITY |
    NodeMetricType'Unrecognized !NodeMetricType'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum NodeMetricType where
  maybeToEnum 0 = Prelude.Just UNKNOWN
  maybeToEnum 1 = Prelude.Just BETWEENNESS_CENTRALITY
  maybeToEnum k
    = Prelude.Just
        (NodeMetricType'Unrecognized
           (NodeMetricType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum UNKNOWN = "UNKNOWN"
  showEnum BETWEENNESS_CENTRALITY = "BETWEENNESS_CENTRALITY"
  showEnum
    (NodeMetricType'Unrecognized (NodeMetricType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "UNKNOWN" = Prelude.Just UNKNOWN
    | (Prelude.==) k "BETWEENNESS_CENTRALITY"
    = Prelude.Just BETWEENNESS_CENTRALITY
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded NodeMetricType where
  minBound = UNKNOWN
  maxBound = BETWEENNESS_CENTRALITY
instance Prelude.Enum NodeMetricType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum NodeMetricType: "
              (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum UNKNOWN = 0
  fromEnum BETWEENNESS_CENTRALITY = 1
  fromEnum
    (NodeMetricType'Unrecognized (NodeMetricType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ BETWEENNESS_CENTRALITY
    = Prelude.error
        "NodeMetricType.succ: bad argument BETWEENNESS_CENTRALITY. This value would be out of bounds."
  succ UNKNOWN = BETWEENNESS_CENTRALITY
  succ (NodeMetricType'Unrecognized _)
    = Prelude.error
        "NodeMetricType.succ: bad argument: unrecognized value"
  pred UNKNOWN
    = Prelude.error
        "NodeMetricType.pred: bad argument UNKNOWN. This value would be out of bounds."
  pred BETWEENNESS_CENTRALITY = UNKNOWN
  pred (NodeMetricType'Unrecognized _)
    = Prelude.error
        "NodeMetricType.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault NodeMetricType where
  fieldDefault = UNKNOWN
instance Control.DeepSeq.NFData NodeMetricType where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out NodeMetricType
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.types' @:: Lens' NodeMetricsRequest [NodeMetricType]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'types' @:: Lens' NodeMetricsRequest (Data.Vector.Vector NodeMetricType)@ -}
data NodeMetricsRequest
  = NodeMetricsRequest'_constructor {_NodeMetricsRequest'types :: !(Data.Vector.Vector NodeMetricType),
                                     _NodeMetricsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeMetricsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeMetricsRequest
instance Data.ProtoLens.Field.HasField NodeMetricsRequest "types" [NodeMetricType] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsRequest'types
           (\ x__ y__ -> x__ {_NodeMetricsRequest'types = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField NodeMetricsRequest "vec'types" (Data.Vector.Vector NodeMetricType) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsRequest'types
           (\ x__ y__ -> x__ {_NodeMetricsRequest'types = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeMetricsRequest where
  messageName _ = Data.Text.pack "lnrpc.NodeMetricsRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2NodeMetricsRequest\DC2+\n\
      \\ENQtypes\CAN\SOH \ETX(\SO2\NAK.lnrpc.NodeMetricTypeR\ENQtypes"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        types__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "types"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor NodeMetricType)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"types")) ::
              Data.ProtoLens.FieldDescriptor NodeMetricsRequest
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, types__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeMetricsRequest'_unknownFields
        (\ x__ y__ -> x__ {_NodeMetricsRequest'_unknownFields = y__})
  defMessage
    = NodeMetricsRequest'_constructor
        {_NodeMetricsRequest'types = Data.Vector.Generic.empty,
         _NodeMetricsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeMetricsRequest
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NodeMetricType
             -> Data.ProtoLens.Encoding.Bytes.Parser NodeMetricsRequest
        loop x mutable'types
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'types <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'types)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'types") frozen'types x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (Prelude.fmap
                                           Prelude.toEnum
                                           (Prelude.fmap
                                              Prelude.fromIntegral
                                              Data.ProtoLens.Encoding.Bytes.getVarInt))
                                        "types"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'types y)
                                loop x v
                        10
                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                        Data.ProtoLens.Encoding.Bytes.isolate
                                          (Prelude.fromIntegral len)
                                          ((let
                                              ploop qs
                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
                                                     if packedEnd then
                                                         Prelude.return qs
                                                     else
                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                    (Prelude.fmap
                                                                       Prelude.toEnum
                                                                       (Prelude.fmap
                                                                          Prelude.fromIntegral
                                                                          Data.ProtoLens.Encoding.Bytes.getVarInt))
                                                                    "types"
                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                                     (Data.ProtoLens.Encoding.Growing.append
                                                                        qs q)
                                                            ploop qs'
                                            in ploop)
                                             mutable'types)
                                loop x y
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'types
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'types <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'types)
          "NodeMetricsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'types") _x
              in
                if Data.Vector.Generic.null p then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         (Data.ProtoLens.Encoding.Bytes.runBuilder
                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                               ((Prelude..)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
                                  Prelude.fromEnum)
                               p))))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData NodeMetricsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeMetricsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_NodeMetricsRequest'types x__) ())
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.betweennessCentrality' @:: Lens' NodeMetricsResponse (Data.Map.Map Data.Text.Text FloatMetric)@ -}
data NodeMetricsResponse
  = NodeMetricsResponse'_constructor {_NodeMetricsResponse'betweennessCentrality :: !(Data.Map.Map Data.Text.Text FloatMetric),
                                      _NodeMetricsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeMetricsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeMetricsResponse
instance Data.ProtoLens.Field.HasField NodeMetricsResponse "betweennessCentrality" (Data.Map.Map Data.Text.Text FloatMetric) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsResponse'betweennessCentrality
           (\ x__ y__
              -> x__ {_NodeMetricsResponse'betweennessCentrality = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeMetricsResponse where
  messageName _ = Data.Text.pack "lnrpc.NodeMetricsResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3NodeMetricsResponse\DC2l\n\
      \\SYNbetweenness_centrality\CAN\SOH \ETX(\v25.lnrpc.NodeMetricsResponse.BetweennessCentralityEntryR\NAKbetweennessCentrality\SUB\\\n\
      \\SUBBetweennessCentralityEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2(\n\
      \\ENQvalue\CAN\STX \SOH(\v2\DC2.lnrpc.FloatMetricR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        betweennessCentrality__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "betweenness_centrality"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodeMetricsResponse'BetweennessCentralityEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"betweennessCentrality")) ::
              Data.ProtoLens.FieldDescriptor NodeMetricsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, betweennessCentrality__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeMetricsResponse'_unknownFields
        (\ x__ y__ -> x__ {_NodeMetricsResponse'_unknownFields = y__})
  defMessage
    = NodeMetricsResponse'_constructor
        {_NodeMetricsResponse'betweennessCentrality = Data.Map.empty,
         _NodeMetricsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeMetricsResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser NodeMetricsResponse
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !(entry :: NodeMetricsResponse'BetweennessCentralityEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                                (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                                    Data.ProtoLens.Encoding.Bytes.isolate
                                                                                                      (Prelude.fromIntegral
                                                                                                         len)
                                                                                                      Data.ProtoLens.parseMessage)
                                                                                                "betweenness_centrality"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"betweennessCentrality")
                                        (\ !t -> Data.Map.insert key value t) x))
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NodeMetricsResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.Monoid.mconcat
                (Prelude.map
                   (\ _v
                      -> (Data.Monoid.<>)
                           (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                           ((Prelude..)
                              (\ bs
                                 -> (Data.Monoid.<>)
                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                              Data.ProtoLens.encodeMessage
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"key") (Prelude.fst _v)
                                 (Lens.Family2.set
                                    (Data.ProtoLens.Field.field @"value") (Prelude.snd _v)
                                    (Data.ProtoLens.defMessage ::
                                       NodeMetricsResponse'BetweennessCentralityEntry)))))
                   (Data.Map.toList
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"betweennessCentrality") _x))))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData NodeMetricsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeMetricsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeMetricsResponse'betweennessCentrality x__) ())
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' NodeMetricsResponse'BetweennessCentralityEntry Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' NodeMetricsResponse'BetweennessCentralityEntry FloatMetric@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'value' @:: Lens' NodeMetricsResponse'BetweennessCentralityEntry (Prelude.Maybe FloatMetric)@ -}
data NodeMetricsResponse'BetweennessCentralityEntry
  = NodeMetricsResponse'BetweennessCentralityEntry'_constructor {_NodeMetricsResponse'BetweennessCentralityEntry'key :: !Data.Text.Text,
                                                                 _NodeMetricsResponse'BetweennessCentralityEntry'value :: !(Prelude.Maybe FloatMetric),
                                                                 _NodeMetricsResponse'BetweennessCentralityEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeMetricsResponse'BetweennessCentralityEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeMetricsResponse'BetweennessCentralityEntry
instance Data.ProtoLens.Field.HasField NodeMetricsResponse'BetweennessCentralityEntry "key" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsResponse'BetweennessCentralityEntry'key
           (\ x__ y__
              -> x__
                   {_NodeMetricsResponse'BetweennessCentralityEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeMetricsResponse'BetweennessCentralityEntry "value" FloatMetric where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsResponse'BetweennessCentralityEntry'value
           (\ x__ y__
              -> x__
                   {_NodeMetricsResponse'BetweennessCentralityEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField NodeMetricsResponse'BetweennessCentralityEntry "maybe'value" (Prelude.Maybe FloatMetric) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeMetricsResponse'BetweennessCentralityEntry'value
           (\ x__ y__
              -> x__
                   {_NodeMetricsResponse'BetweennessCentralityEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeMetricsResponse'BetweennessCentralityEntry where
  messageName _
    = Data.Text.pack
        "lnrpc.NodeMetricsResponse.BetweennessCentralityEntry"
  packedMessageDescriptor _
    = "\n\
      \\SUBBetweennessCentralityEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2(\n\
      \\ENQvalue\CAN\STX \SOH(\v2\DC2.lnrpc.FloatMetricR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor NodeMetricsResponse'BetweennessCentralityEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FloatMetric)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'value")) ::
              Data.ProtoLens.FieldDescriptor NodeMetricsResponse'BetweennessCentralityEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeMetricsResponse'BetweennessCentralityEntry'_unknownFields
        (\ x__ y__
           -> x__
                {_NodeMetricsResponse'BetweennessCentralityEntry'_unknownFields = y__})
  defMessage
    = NodeMetricsResponse'BetweennessCentralityEntry'_constructor
        {_NodeMetricsResponse'BetweennessCentralityEntry'key = Data.ProtoLens.fieldDefault,
         _NodeMetricsResponse'BetweennessCentralityEntry'value = Prelude.Nothing,
         _NodeMetricsResponse'BetweennessCentralityEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeMetricsResponse'BetweennessCentralityEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser NodeMetricsResponse'BetweennessCentralityEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "BetweennessCentralityEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'value") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData NodeMetricsResponse'BetweennessCentralityEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeMetricsResponse'BetweennessCentralityEntry'_unknownFields
                x__)
             (Control.DeepSeq.deepseq
                (_NodeMetricsResponse'BetweennessCentralityEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_NodeMetricsResponse'BetweennessCentralityEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.from' @:: Lens' NodePair Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.to' @:: Lens' NodePair Data.ByteString.ByteString@ -}
data NodePair
  = NodePair'_constructor {_NodePair'from :: !Data.ByteString.ByteString,
                           _NodePair'to :: !Data.ByteString.ByteString,
                           _NodePair'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodePair where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodePair
instance Data.ProtoLens.Field.HasField NodePair "from" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodePair'from (\ x__ y__ -> x__ {_NodePair'from = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodePair "to" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodePair'to (\ x__ y__ -> x__ {_NodePair'to = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodePair where
  messageName _ = Data.Text.pack "lnrpc.NodePair"
  packedMessageDescriptor _
    = "\n\
      \\bNodePair\DC2\DC2\n\
      \\EOTfrom\CAN\SOH \SOH(\fR\EOTfrom\DC2\SO\n\
      \\STXto\CAN\STX \SOH(\fR\STXto"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        from__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "from"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"from")) ::
              Data.ProtoLens.FieldDescriptor NodePair
        to__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "to"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"to")) ::
              Data.ProtoLens.FieldDescriptor NodePair
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, from__field_descriptor),
           (Data.ProtoLens.Tag 2, to__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodePair'_unknownFields
        (\ x__ y__ -> x__ {_NodePair'_unknownFields = y__})
  defMessage
    = NodePair'_constructor
        {_NodePair'from = Data.ProtoLens.fieldDefault,
         _NodePair'to = Data.ProtoLens.fieldDefault,
         _NodePair'_unknownFields = []}
  parseMessage
    = let
        loop :: NodePair -> Data.ProtoLens.Encoding.Bytes.Parser NodePair
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "from"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"from") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "to"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"to") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "NodePair"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"from") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"to") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData NodePair where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodePair'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodePair'from x__)
                (Control.DeepSeq.deepseq (_NodePair'to x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.addresses' @:: Lens' NodeUpdate [Data.Text.Text]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'addresses' @:: Lens' NodeUpdate (Data.Vector.Vector Data.Text.Text)@
         * 'Proto.Lnrpc.Ln0_Fields.identityKey' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.globalFeatures' @:: Lens' NodeUpdate Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.alias' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.color' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.nodeAddresses' @:: Lens' NodeUpdate [NodeAddress]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'nodeAddresses' @:: Lens' NodeUpdate (Data.Vector.Vector NodeAddress)@
         * 'Proto.Lnrpc.Ln0_Fields.features' @:: Lens' NodeUpdate (Data.Map.Map Data.Word.Word32 Feature)@ -}
data NodeUpdate
  = NodeUpdate'_constructor {_NodeUpdate'addresses :: !(Data.Vector.Vector Data.Text.Text),
                             _NodeUpdate'identityKey :: !Data.Text.Text,
                             _NodeUpdate'globalFeatures :: !Data.ByteString.ByteString,
                             _NodeUpdate'alias :: !Data.Text.Text,
                             _NodeUpdate'color :: !Data.Text.Text,
                             _NodeUpdate'nodeAddresses :: !(Data.Vector.Vector NodeAddress),
                             _NodeUpdate'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                             _NodeUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeUpdate
instance Data.ProtoLens.Field.HasField NodeUpdate "addresses" [Data.Text.Text] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'addresses
           (\ x__ y__ -> x__ {_NodeUpdate'addresses = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField NodeUpdate "vec'addresses" (Data.Vector.Vector Data.Text.Text) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'addresses
           (\ x__ y__ -> x__ {_NodeUpdate'addresses = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "identityKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'identityKey
           (\ x__ y__ -> x__ {_NodeUpdate'identityKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "globalFeatures" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'globalFeatures
           (\ x__ y__ -> x__ {_NodeUpdate'globalFeatures = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "alias" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'alias (\ x__ y__ -> x__ {_NodeUpdate'alias = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "color" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'color (\ x__ y__ -> x__ {_NodeUpdate'color = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "nodeAddresses" [NodeAddress] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'nodeAddresses
           (\ x__ y__ -> x__ {_NodeUpdate'nodeAddresses = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField NodeUpdate "vec'nodeAddresses" (Data.Vector.Vector NodeAddress) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'nodeAddresses
           (\ x__ y__ -> x__ {_NodeUpdate'nodeAddresses = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'features
           (\ x__ y__ -> x__ {_NodeUpdate'features = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeUpdate where
  messageName _ = Data.Text.pack "lnrpc.NodeUpdate"
  packedMessageDescriptor _
    = "\n\
      \\n\
      \NodeUpdate\DC2 \n\
      \\taddresses\CAN\SOH \ETX(\tR\taddressesB\STX\CAN\SOH\DC2!\n\
      \\fidentity_key\CAN\STX \SOH(\tR\videntityKey\DC2+\n\
      \\SIglobal_features\CAN\ETX \SOH(\fR\SOglobalFeaturesB\STX\CAN\SOH\DC2\DC4\n\
      \\ENQalias\CAN\EOT \SOH(\tR\ENQalias\DC2\DC4\n\
      \\ENQcolor\CAN\ENQ \SOH(\tR\ENQcolor\DC29\n\
      \\SOnode_addresses\CAN\a \ETX(\v2\DC2.lnrpc.NodeAddressR\rnodeAddresses\DC2;\n\
      \\bfeatures\CAN\ACK \ETX(\v2\US.lnrpc.NodeUpdate.FeaturesEntryR\bfeatures\SUBK\n\
      \\rFeaturesEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
      \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addresses__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "addresses"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"addresses")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        identityKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "identity_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"identityKey")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        globalFeatures__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "global_features"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"globalFeatures")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        alias__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "alias"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"alias")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        color__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "color"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"color")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        nodeAddresses__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_addresses"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodeAddress)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"nodeAddresses")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodeUpdate'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addresses__field_descriptor),
           (Data.ProtoLens.Tag 2, identityKey__field_descriptor),
           (Data.ProtoLens.Tag 3, globalFeatures__field_descriptor),
           (Data.ProtoLens.Tag 4, alias__field_descriptor),
           (Data.ProtoLens.Tag 5, color__field_descriptor),
           (Data.ProtoLens.Tag 7, nodeAddresses__field_descriptor),
           (Data.ProtoLens.Tag 6, features__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeUpdate'_unknownFields
        (\ x__ y__ -> x__ {_NodeUpdate'_unknownFields = y__})
  defMessage
    = NodeUpdate'_constructor
        {_NodeUpdate'addresses = Data.Vector.Generic.empty,
         _NodeUpdate'identityKey = Data.ProtoLens.fieldDefault,
         _NodeUpdate'globalFeatures = Data.ProtoLens.fieldDefault,
         _NodeUpdate'alias = Data.ProtoLens.fieldDefault,
         _NodeUpdate'color = Data.ProtoLens.fieldDefault,
         _NodeUpdate'nodeAddresses = Data.Vector.Generic.empty,
         _NodeUpdate'features = Data.Map.empty,
         _NodeUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeUpdate
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NodeAddress
                -> Data.ProtoLens.Encoding.Bytes.Parser NodeUpdate
        loop x mutable'addresses mutable'nodeAddresses
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'addresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                               mutable'addresses)
                      frozen'nodeAddresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                   mutable'nodeAddresses)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'addresses") frozen'addresses
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'nodeAddresses")
                                 frozen'nodeAddresses x)))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                        Data.ProtoLens.Encoding.Bytes.getBytes
                                                          (Prelude.fromIntegral len)
                                            Data.ProtoLens.Encoding.Bytes.runEither
                                              (case Data.Text.Encoding.decodeUtf8' value of
                                                 (Prelude.Left err)
                                                   -> Prelude.Left (Prelude.show err)
                                                 (Prelude.Right r) -> Prelude.Right r))
                                        "addresses"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'addresses y)
                                loop x v mutable'nodeAddresses
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "identity_key"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"identityKey") y x)
                                  mutable'addresses mutable'nodeAddresses
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "global_features"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"globalFeatures") y x)
                                  mutable'addresses mutable'nodeAddresses
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "alias"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"alias") y x)
                                  mutable'addresses mutable'nodeAddresses
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "color"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"color") y x)
                                  mutable'addresses mutable'nodeAddresses
                        58
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "node_addresses"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'nodeAddresses y)
                                loop x mutable'addresses v
                        50
                          -> do !(entry :: NodeUpdate'FeaturesEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                          (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                              Data.ProtoLens.Encoding.Bytes.isolate
                                                                                (Prelude.fromIntegral
                                                                                   len)
                                                                                Data.ProtoLens.parseMessage)
                                                                          "features"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"features")
                                        (\ !t -> Data.Map.insert key value t) x)
                                     mutable'addresses mutable'nodeAddresses)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'addresses mutable'nodeAddresses
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'addresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                     Data.ProtoLens.Encoding.Growing.new
              mutable'nodeAddresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                         Data.ProtoLens.Encoding.Growing.new
              loop
                Data.ProtoLens.defMessage mutable'addresses mutable'nodeAddresses)
          "NodeUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _v
                   -> (Data.Monoid.<>)
                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                        ((Prelude..)
                           (\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                           Data.Text.Encoding.encodeUtf8 _v))
                (Lens.Family2.view
                   (Data.ProtoLens.Field.field @"vec'addresses") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"identityKey") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view
                            (Data.ProtoLens.Field.field @"globalFeatures") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"alias") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                               ((Prelude..)
                                  (\ bs
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                             (Prelude.fromIntegral (Data.ByteString.length bs)))
                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                  Data.Text.Encoding.encodeUtf8 _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"color") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         ((Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                               (\ _v
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
                                       ((Prelude..)
                                          (\ bs
                                             -> (Data.Monoid.<>)
                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                     (Prelude.fromIntegral
                                                        (Data.ByteString.length bs)))
                                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                          Data.ProtoLens.encodeMessage _v))
                               (Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"vec'nodeAddresses") _x))
                            ((Data.Monoid.<>)
                               (Data.Monoid.mconcat
                                  (Prelude.map
                                     (\ _v
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                                             ((Prelude..)
                                                (\ bs
                                                   -> (Data.Monoid.<>)
                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                           (Prelude.fromIntegral
                                                              (Data.ByteString.length bs)))
                                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                                Data.ProtoLens.encodeMessage
                                                (Lens.Family2.set
                                                   (Data.ProtoLens.Field.field @"key")
                                                   (Prelude.fst _v)
                                                   (Lens.Family2.set
                                                      (Data.ProtoLens.Field.field @"value")
                                                      (Prelude.snd _v)
                                                      (Data.ProtoLens.defMessage ::
                                                         NodeUpdate'FeaturesEntry)))))
                                     (Data.Map.toList
                                        (Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"features") _x))))
                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
instance Control.DeepSeq.NFData NodeUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeUpdate'addresses x__)
                (Control.DeepSeq.deepseq
                   (_NodeUpdate'identityKey x__)
                   (Control.DeepSeq.deepseq
                      (_NodeUpdate'globalFeatures x__)
                      (Control.DeepSeq.deepseq
                         (_NodeUpdate'alias x__)
                         (Control.DeepSeq.deepseq
                            (_NodeUpdate'color x__)
                            (Control.DeepSeq.deepseq
                               (_NodeUpdate'nodeAddresses x__)
                               (Control.DeepSeq.deepseq (_NodeUpdate'features x__) ())))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' NodeUpdate'FeaturesEntry Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' NodeUpdate'FeaturesEntry Feature@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'value' @:: Lens' NodeUpdate'FeaturesEntry (Prelude.Maybe Feature)@ -}
data NodeUpdate'FeaturesEntry
  = NodeUpdate'FeaturesEntry'_constructor {_NodeUpdate'FeaturesEntry'key :: !Data.Word.Word32,
                                           _NodeUpdate'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                           _NodeUpdate'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show NodeUpdate'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out NodeUpdate'FeaturesEntry
instance Data.ProtoLens.Field.HasField NodeUpdate'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'FeaturesEntry'key
           (\ x__ y__ -> x__ {_NodeUpdate'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NodeUpdate'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'FeaturesEntry'value
           (\ x__ y__ -> x__ {_NodeUpdate'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField NodeUpdate'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NodeUpdate'FeaturesEntry'value
           (\ x__ y__ -> x__ {_NodeUpdate'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message NodeUpdate'FeaturesEntry where
  messageName _ = Data.Text.pack "lnrpc.NodeUpdate.FeaturesEntry"
  packedMessageDescriptor _
    = "\n\
      \\rFeaturesEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
      \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate'FeaturesEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Feature)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'value")) ::
              Data.ProtoLens.FieldDescriptor NodeUpdate'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NodeUpdate'FeaturesEntry'_unknownFields
        (\ x__ y__ -> x__ {_NodeUpdate'FeaturesEntry'_unknownFields = y__})
  defMessage
    = NodeUpdate'FeaturesEntry'_constructor
        {_NodeUpdate'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _NodeUpdate'FeaturesEntry'value = Prelude.Nothing,
         _NodeUpdate'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NodeUpdate'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser NodeUpdate'FeaturesEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "FeaturesEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'value") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData NodeUpdate'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NodeUpdate'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NodeUpdate'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq (_NodeUpdate'FeaturesEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.txidBytes' @:: Lens' OutPoint Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.txidStr' @:: Lens' OutPoint Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.outputIndex' @:: Lens' OutPoint Data.Word.Word32@ -}
data OutPoint
  = OutPoint'_constructor {_OutPoint'txidBytes :: !Data.ByteString.ByteString,
                           _OutPoint'txidStr :: !Data.Text.Text,
                           _OutPoint'outputIndex :: !Data.Word.Word32,
                           _OutPoint'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show OutPoint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out OutPoint
instance Data.ProtoLens.Field.HasField OutPoint "txidBytes" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OutPoint'txidBytes (\ x__ y__ -> x__ {_OutPoint'txidBytes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OutPoint "txidStr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OutPoint'txidStr (\ x__ y__ -> x__ {_OutPoint'txidStr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OutPoint "outputIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OutPoint'outputIndex
           (\ x__ y__ -> x__ {_OutPoint'outputIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message OutPoint where
  messageName _ = Data.Text.pack "lnrpc.OutPoint"
  packedMessageDescriptor _
    = "\n\
      \\bOutPoint\DC2\GS\n\
      \\n\
      \txid_bytes\CAN\SOH \SOH(\fR\ttxidBytes\DC2\EM\n\
      \\btxid_str\CAN\STX \SOH(\tR\atxidStr\DC2!\n\
      \\foutput_index\CAN\ETX \SOH(\rR\voutputIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        txidBytes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "txid_bytes"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"txidBytes")) ::
              Data.ProtoLens.FieldDescriptor OutPoint
        txidStr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "txid_str"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txidStr")) ::
              Data.ProtoLens.FieldDescriptor OutPoint
        outputIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "output_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"outputIndex")) ::
              Data.ProtoLens.FieldDescriptor OutPoint
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, txidBytes__field_descriptor),
           (Data.ProtoLens.Tag 2, txidStr__field_descriptor),
           (Data.ProtoLens.Tag 3, outputIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _OutPoint'_unknownFields
        (\ x__ y__ -> x__ {_OutPoint'_unknownFields = y__})
  defMessage
    = OutPoint'_constructor
        {_OutPoint'txidBytes = Data.ProtoLens.fieldDefault,
         _OutPoint'txidStr = Data.ProtoLens.fieldDefault,
         _OutPoint'outputIndex = Data.ProtoLens.fieldDefault,
         _OutPoint'_unknownFields = []}
  parseMessage
    = let
        loop :: OutPoint -> Data.ProtoLens.Encoding.Bytes.Parser OutPoint
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "txid_bytes"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"txidBytes") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "txid_str"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"txidStr") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "output_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outputIndex") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "OutPoint"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"txidBytes") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"txidStr") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"outputIndex") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData OutPoint where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_OutPoint'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_OutPoint'txidBytes x__)
                (Control.DeepSeq.deepseq
                   (_OutPoint'txidStr x__)
                   (Control.DeepSeq.deepseq (_OutPoint'outputIndex x__) ())))
{- | Fields :
      -}
data PendingChannelsRequest
  = PendingChannelsRequest'_constructor {_PendingChannelsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsRequest
instance Data.ProtoLens.Message PendingChannelsRequest where
  messageName _ = Data.Text.pack "lnrpc.PendingChannelsRequest"
  packedMessageDescriptor _
    = "\n\
      \\SYNPendingChannelsRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsRequest'_unknownFields
        (\ x__ y__ -> x__ {_PendingChannelsRequest'_unknownFields = y__})
  defMessage
    = PendingChannelsRequest'_constructor
        {_PendingChannelsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PendingChannelsRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData PendingChannelsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.totalLimboBalance' @:: Lens' PendingChannelsResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.pendingOpenChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'PendingOpenChannel]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'pendingOpenChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'PendingOpenChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.pendingClosingChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'ClosedChannel]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'pendingClosingChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'ClosedChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.pendingForceClosingChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'ForceClosedChannel]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'pendingForceClosingChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'ForceClosedChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.waitingCloseChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'WaitingCloseChannel]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'waitingCloseChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'WaitingCloseChannel)@ -}
data PendingChannelsResponse
  = PendingChannelsResponse'_constructor {_PendingChannelsResponse'totalLimboBalance :: !Data.Int.Int64,
                                          _PendingChannelsResponse'pendingOpenChannels :: !(Data.Vector.Vector PendingChannelsResponse'PendingOpenChannel),
                                          _PendingChannelsResponse'pendingClosingChannels :: !(Data.Vector.Vector PendingChannelsResponse'ClosedChannel),
                                          _PendingChannelsResponse'pendingForceClosingChannels :: !(Data.Vector.Vector PendingChannelsResponse'ForceClosedChannel),
                                          _PendingChannelsResponse'waitingCloseChannels :: !(Data.Vector.Vector PendingChannelsResponse'WaitingCloseChannel),
                                          _PendingChannelsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "totalLimboBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'totalLimboBalance
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'totalLimboBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "pendingOpenChannels" [PendingChannelsResponse'PendingOpenChannel] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingOpenChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'pendingOpenChannels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "vec'pendingOpenChannels" (Data.Vector.Vector PendingChannelsResponse'PendingOpenChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingOpenChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'pendingOpenChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "pendingClosingChannels" [PendingChannelsResponse'ClosedChannel] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingClosingChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'pendingClosingChannels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "vec'pendingClosingChannels" (Data.Vector.Vector PendingChannelsResponse'ClosedChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingClosingChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'pendingClosingChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "pendingForceClosingChannels" [PendingChannelsResponse'ForceClosedChannel] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingForceClosingChannels
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'pendingForceClosingChannels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "vec'pendingForceClosingChannels" (Data.Vector.Vector PendingChannelsResponse'ForceClosedChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'pendingForceClosingChannels
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'pendingForceClosingChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "waitingCloseChannels" [PendingChannelsResponse'WaitingCloseChannel] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'waitingCloseChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'waitingCloseChannels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PendingChannelsResponse "vec'waitingCloseChannels" (Data.Vector.Vector PendingChannelsResponse'WaitingCloseChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'waitingCloseChannels
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'waitingCloseChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse where
  messageName _ = Data.Text.pack "lnrpc.PendingChannelsResponse"
  packedMessageDescriptor _
    = "\n\
      \\ETBPendingChannelsResponse\DC2.\n\
      \\DC3total_limbo_balance\CAN\SOH \SOH(\ETXR\DC1totalLimboBalance\DC2e\n\
      \\NAKpending_open_channels\CAN\STX \ETX(\v21.lnrpc.PendingChannelsResponse.PendingOpenChannelR\DC3pendingOpenChannels\DC2j\n\
      \\CANpending_closing_channels\CAN\ETX \ETX(\v2,.lnrpc.PendingChannelsResponse.ClosedChannelR\SYNpendingClosingChannelsB\STX\CAN\SOH\DC2v\n\
      \\RSpending_force_closing_channels\CAN\EOT \ETX(\v21.lnrpc.PendingChannelsResponse.ForceClosedChannelR\ESCpendingForceClosingChannels\DC2h\n\
      \\SYNwaiting_close_channels\CAN\ENQ \ETX(\v22.lnrpc.PendingChannelsResponse.WaitingCloseChannelR\DC4waitingCloseChannels\SUB\217\ETX\n\
      \\SOPendingChannel\DC2&\n\
      \\SIremote_node_pub\CAN\SOH \SOH(\tR\rremoteNodePub\DC2#\n\
      \\rchannel_point\CAN\STX \SOH(\tR\fchannelPoint\DC2\SUB\n\
      \\bcapacity\CAN\ETX \SOH(\ETXR\bcapacity\DC2#\n\
      \\rlocal_balance\CAN\EOT \SOH(\ETXR\flocalBalance\DC2%\n\
      \\SOremote_balance\CAN\ENQ \SOH(\ETXR\rremoteBalance\DC23\n\
      \\SYNlocal_chan_reserve_sat\CAN\ACK \SOH(\ETXR\DC3localChanReserveSat\DC25\n\
      \\ETBremote_chan_reserve_sat\CAN\a \SOH(\ETXR\DC4remoteChanReserveSat\DC2.\n\
      \\tinitiator\CAN\b \SOH(\SO2\DLE.lnrpc.InitiatorR\tinitiator\DC2>\n\
      \\SIcommitment_type\CAN\t \SOH(\SO2\NAK.lnrpc.CommitmentTypeR\SOcommitmentType\DC26\n\
      \\ETBnum_forwarding_packages\CAN\n\
      \ \SOH(\ETXR\NAKnumForwardingPackages\SUB\240\SOH\n\
      \\DC2PendingOpenChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2/\n\
      \\DC3confirmation_height\CAN\STX \SOH(\rR\DC2confirmationHeight\DC2\GS\n\
      \\n\
      \commit_fee\CAN\EOT \SOH(\ETXR\tcommitFee\DC2#\n\
      \\rcommit_weight\CAN\ENQ \SOH(\ETXR\fcommitWeight\DC2\FS\n\
      \\n\
      \fee_per_kw\CAN\ACK \SOH(\ETXR\bfeePerKw\SUB\209\SOH\n\
      \\DC3WaitingCloseChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2#\n\
      \\rlimbo_balance\CAN\STX \SOH(\ETXR\flimboBalance\DC2L\n\
      \\vcommitments\CAN\ETX \SOH(\v2*.lnrpc.PendingChannelsResponse.CommitmentsR\vcommitments\SUB\163\STX\n\
      \\vCommitments\DC2\GS\n\
      \\n\
      \local_txid\CAN\SOH \SOH(\tR\tlocalTxid\DC2\US\n\
      \\vremote_txid\CAN\STX \SOH(\tR\n\
      \remoteTxid\DC2.\n\
      \\DC3remote_pending_txid\CAN\ETX \SOH(\tR\DC1remotePendingTxid\DC2/\n\
      \\DC4local_commit_fee_sat\CAN\EOT \SOH(\EOTR\DC1localCommitFeeSat\DC21\n\
      \\NAKremote_commit_fee_sat\CAN\ENQ \SOH(\EOTR\DC2remoteCommitFeeSat\DC2@\n\
      \\GSremote_pending_commit_fee_sat\CAN\ACK \SOH(\EOTR\EMremotePendingCommitFeeSat\SUB{\n\
      \\rClosedChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
      \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid\SUB\238\ETX\n\
      \\DC2ForceClosedChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
      \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid\DC2#\n\
      \\rlimbo_balance\CAN\ETX \SOH(\ETXR\flimboBalance\DC2'\n\
      \\SImaturity_height\CAN\EOT \SOH(\rR\SOmaturityHeight\DC2.\n\
      \\DC3blocks_til_maturity\CAN\ENQ \SOH(\ENQR\DC1blocksTilMaturity\DC2+\n\
      \\DC1recovered_balance\CAN\ACK \SOH(\ETXR\DLErecoveredBalance\DC27\n\
      \\rpending_htlcs\CAN\b \ETX(\v2\DC2.lnrpc.PendingHTLCR\fpendingHtlcs\DC2U\n\
      \\ACKanchor\CAN\t \SOH(\SO2=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorStateR\ACKanchor\"1\n\
      \\vAnchorState\DC2\t\n\
      \\ENQLIMBO\DLE\NUL\DC2\r\n\
      \\tRECOVERED\DLE\SOH\DC2\b\n\
      \\EOTLOST\DLE\STX"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        totalLimboBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_limbo_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalLimboBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse
        pendingOpenChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_open_channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'PendingOpenChannel)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"pendingOpenChannels")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse
        pendingClosingChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_closing_channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'ClosedChannel)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"pendingClosingChannels")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse
        pendingForceClosingChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_force_closing_channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'ForceClosedChannel)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"pendingForceClosingChannels")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse
        waitingCloseChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "waiting_close_channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'WaitingCloseChannel)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"waitingCloseChannels")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, totalLimboBalance__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingOpenChannels__field_descriptor),
           (Data.ProtoLens.Tag 3, pendingClosingChannels__field_descriptor),
           (Data.ProtoLens.Tag 4, 
            pendingForceClosingChannels__field_descriptor),
           (Data.ProtoLens.Tag 5, waitingCloseChannels__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'_unknownFields
        (\ x__ y__ -> x__ {_PendingChannelsResponse'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'_constructor
        {_PendingChannelsResponse'totalLimboBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'pendingOpenChannels = Data.Vector.Generic.empty,
         _PendingChannelsResponse'pendingClosingChannels = Data.Vector.Generic.empty,
         _PendingChannelsResponse'pendingForceClosingChannels = Data.Vector.Generic.empty,
         _PendingChannelsResponse'waitingCloseChannels = Data.Vector.Generic.empty,
         _PendingChannelsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PendingChannelsResponse'ClosedChannel
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PendingChannelsResponse'ForceClosedChannel
                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PendingChannelsResponse'PendingOpenChannel
                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PendingChannelsResponse'WaitingCloseChannel
                      -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse
        loop
          x
          mutable'pendingClosingChannels
          mutable'pendingForceClosingChannels
          mutable'pendingOpenChannels
          mutable'waitingCloseChannels
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'pendingClosingChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                            mutable'pendingClosingChannels)
                      frozen'pendingForceClosingChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                                 mutable'pendingForceClosingChannels)
                      frozen'pendingOpenChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                         mutable'pendingOpenChannels)
                      frozen'waitingCloseChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                          mutable'waitingCloseChannels)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'pendingClosingChannels")
                              frozen'pendingClosingChannels
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'pendingForceClosingChannels")
                                 frozen'pendingForceClosingChannels
                                 (Lens.Family2.set
                                    (Data.ProtoLens.Field.field @"vec'pendingOpenChannels")
                                    frozen'pendingOpenChannels
                                    (Lens.Family2.set
                                       (Data.ProtoLens.Field.field @"vec'waitingCloseChannels")
                                       frozen'waitingCloseChannels x)))))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_limbo_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalLimboBalance") y x)
                                  mutable'pendingClosingChannels mutable'pendingForceClosingChannels
                                  mutable'pendingOpenChannels mutable'waitingCloseChannels
                        18
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "pending_open_channels"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'pendingOpenChannels y)
                                loop
                                  x mutable'pendingClosingChannels
                                  mutable'pendingForceClosingChannels v mutable'waitingCloseChannels
                        26
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "pending_closing_channels"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'pendingClosingChannels y)
                                loop
                                  x v mutable'pendingForceClosingChannels
                                  mutable'pendingOpenChannels mutable'waitingCloseChannels
                        34
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "pending_force_closing_channels"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'pendingForceClosingChannels y)
                                loop
                                  x mutable'pendingClosingChannels v mutable'pendingOpenChannels
                                  mutable'waitingCloseChannels
                        42
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "waiting_close_channels"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'waitingCloseChannels y)
                                loop
                                  x mutable'pendingClosingChannels
                                  mutable'pendingForceClosingChannels mutable'pendingOpenChannels v
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'pendingClosingChannels mutable'pendingForceClosingChannels
                                  mutable'pendingOpenChannels mutable'waitingCloseChannels
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'pendingClosingChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                  Data.ProtoLens.Encoding.Growing.new
              mutable'pendingForceClosingChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                       Data.ProtoLens.Encoding.Growing.new
              mutable'pendingOpenChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               Data.ProtoLens.Encoding.Growing.new
              mutable'waitingCloseChannels <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                Data.ProtoLens.Encoding.Growing.new
              loop
                Data.ProtoLens.defMessage mutable'pendingClosingChannels
                mutable'pendingForceClosingChannels mutable'pendingOpenChannels
                mutable'waitingCloseChannels)
          "PendingChannelsResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"totalLimboBalance") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                   (\ _v
                      -> (Data.Monoid.<>)
                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                           ((Prelude..)
                              (\ bs
                                 -> (Data.Monoid.<>)
                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                              Data.ProtoLens.encodeMessage _v))
                   (Lens.Family2.view
                      (Data.ProtoLens.Field.field @"vec'pendingOpenChannels") _x))
                ((Data.Monoid.<>)
                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                      (\ _v
                         -> (Data.Monoid.<>)
                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                              ((Prelude..)
                                 (\ bs
                                    -> (Data.Monoid.<>)
                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                 Data.ProtoLens.encodeMessage _v))
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"vec'pendingClosingChannels") _x))
                   ((Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                         (\ _v
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                 ((Prelude..)
                                    (\ bs
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                    Data.ProtoLens.encodeMessage _v))
                         (Lens.Family2.view
                            (Data.ProtoLens.Field.field @"vec'pendingForceClosingChannels")
                            _x))
                      ((Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                            (\ _v
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                    ((Prelude..)
                                       (\ bs
                                          -> (Data.Monoid.<>)
                                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                  (Prelude.fromIntegral
                                                     (Data.ByteString.length bs)))
                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                       Data.ProtoLens.encodeMessage _v))
                            (Lens.Family2.view
                               (Data.ProtoLens.Field.field @"vec'waitingCloseChannels") _x))
                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData PendingChannelsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'totalLimboBalance x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'pendingOpenChannels x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'pendingClosingChannels x__)
                      (Control.DeepSeq.deepseq
                         (_PendingChannelsResponse'pendingForceClosingChannels x__)
                         (Control.DeepSeq.deepseq
                            (_PendingChannelsResponse'waitingCloseChannels x__) ())))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channel' @:: Lens' PendingChannelsResponse'ClosedChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'ClosedChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.closingTxid' @:: Lens' PendingChannelsResponse'ClosedChannel Data.Text.Text@ -}
data PendingChannelsResponse'ClosedChannel
  = PendingChannelsResponse'ClosedChannel'_constructor {_PendingChannelsResponse'ClosedChannel'channel :: !(Prelude.Maybe PendingChannelsResponse'PendingChannel),
                                                        _PendingChannelsResponse'ClosedChannel'closingTxid :: !Data.Text.Text,
                                                        _PendingChannelsResponse'ClosedChannel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'ClosedChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'ClosedChannel
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ClosedChannel "channel" PendingChannelsResponse'PendingChannel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ClosedChannel'channel
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'ClosedChannel'channel = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ClosedChannel "maybe'channel" (Prelude.Maybe PendingChannelsResponse'PendingChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ClosedChannel'channel
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'ClosedChannel'channel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ClosedChannel "closingTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ClosedChannel'closingTxid
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'ClosedChannel'closingTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'ClosedChannel where
  messageName _
    = Data.Text.pack "lnrpc.PendingChannelsResponse.ClosedChannel"
  packedMessageDescriptor _
    = "\n\
      \\rClosedChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
      \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'PendingChannel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channel")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ClosedChannel
        closingTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closing_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closingTxid")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ClosedChannel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channel__field_descriptor),
           (Data.ProtoLens.Tag 2, closingTxid__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'ClosedChannel'_unknownFields
        (\ x__ y__
           -> x__
                {_PendingChannelsResponse'ClosedChannel'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'ClosedChannel'_constructor
        {_PendingChannelsResponse'ClosedChannel'channel = Prelude.Nothing,
         _PendingChannelsResponse'ClosedChannel'closingTxid = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ClosedChannel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'ClosedChannel
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'ClosedChannel
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "channel"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"channel") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "closing_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"closingTxid") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "ClosedChannel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'channel") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just _v)
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"closingTxid") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData PendingChannelsResponse'ClosedChannel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'ClosedChannel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'ClosedChannel'channel x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'ClosedChannel'closingTxid x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.localTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.remoteTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.remotePendingTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.localCommitFeeSat' @:: Lens' PendingChannelsResponse'Commitments Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.remoteCommitFeeSat' @:: Lens' PendingChannelsResponse'Commitments Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.remotePendingCommitFeeSat' @:: Lens' PendingChannelsResponse'Commitments Data.Word.Word64@ -}
data PendingChannelsResponse'Commitments
  = PendingChannelsResponse'Commitments'_constructor {_PendingChannelsResponse'Commitments'localTxid :: !Data.Text.Text,
                                                      _PendingChannelsResponse'Commitments'remoteTxid :: !Data.Text.Text,
                                                      _PendingChannelsResponse'Commitments'remotePendingTxid :: !Data.Text.Text,
                                                      _PendingChannelsResponse'Commitments'localCommitFeeSat :: !Data.Word.Word64,
                                                      _PendingChannelsResponse'Commitments'remoteCommitFeeSat :: !Data.Word.Word64,
                                                      _PendingChannelsResponse'Commitments'remotePendingCommitFeeSat :: !Data.Word.Word64,
                                                      _PendingChannelsResponse'Commitments'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'Commitments where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'Commitments
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "localTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'localTxid
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'Commitments'localTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "remoteTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'remoteTxid
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'Commitments'remoteTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "remotePendingTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'remotePendingTxid
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'Commitments'remotePendingTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "localCommitFeeSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'localCommitFeeSat
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'Commitments'localCommitFeeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "remoteCommitFeeSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'remoteCommitFeeSat
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'Commitments'remoteCommitFeeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'Commitments "remotePendingCommitFeeSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'Commitments'remotePendingCommitFeeSat
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'Commitments'remotePendingCommitFeeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'Commitments where
  messageName _
    = Data.Text.pack "lnrpc.PendingChannelsResponse.Commitments"
  packedMessageDescriptor _
    = "\n\
      \\vCommitments\DC2\GS\n\
      \\n\
      \local_txid\CAN\SOH \SOH(\tR\tlocalTxid\DC2\US\n\
      \\vremote_txid\CAN\STX \SOH(\tR\n\
      \remoteTxid\DC2.\n\
      \\DC3remote_pending_txid\CAN\ETX \SOH(\tR\DC1remotePendingTxid\DC2/\n\
      \\DC4local_commit_fee_sat\CAN\EOT \SOH(\EOTR\DC1localCommitFeeSat\DC21\n\
      \\NAKremote_commit_fee_sat\CAN\ENQ \SOH(\EOTR\DC2remoteCommitFeeSat\DC2@\n\
      \\GSremote_pending_commit_fee_sat\CAN\ACK \SOH(\EOTR\EMremotePendingCommitFeeSat"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        localTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localTxid")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
        remoteTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteTxid")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
        remotePendingTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_pending_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remotePendingTxid")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
        localCommitFeeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_commit_fee_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localCommitFeeSat")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
        remoteCommitFeeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_commit_fee_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteCommitFeeSat")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
        remotePendingCommitFeeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_pending_commit_fee_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remotePendingCommitFeeSat")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'Commitments
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, localTxid__field_descriptor),
           (Data.ProtoLens.Tag 2, remoteTxid__field_descriptor),
           (Data.ProtoLens.Tag 3, remotePendingTxid__field_descriptor),
           (Data.ProtoLens.Tag 4, localCommitFeeSat__field_descriptor),
           (Data.ProtoLens.Tag 5, remoteCommitFeeSat__field_descriptor),
           (Data.ProtoLens.Tag 6, 
            remotePendingCommitFeeSat__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'Commitments'_unknownFields
        (\ x__ y__
           -> x__ {_PendingChannelsResponse'Commitments'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'Commitments'_constructor
        {_PendingChannelsResponse'Commitments'localTxid = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'remoteTxid = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'remotePendingTxid = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'localCommitFeeSat = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'remoteCommitFeeSat = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'remotePendingCommitFeeSat = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'Commitments'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'Commitments
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'Commitments
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "local_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"localTxid") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "remote_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"remoteTxid") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "remote_pending_txid"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remotePendingTxid") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "local_commit_fee_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localCommitFeeSat") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "remote_commit_fee_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteCommitFeeSat") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "remote_pending_commit_fee_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remotePendingCommitFeeSat") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "Commitments"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"localTxid") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"remoteTxid") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view
                            (Data.ProtoLens.Field.field @"remotePendingTxid") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((Prelude..)
                               (\ bs
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               Data.Text.Encoding.encodeUtf8 _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"localCommitFeeSat") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"remoteCommitFeeSat") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"remotePendingCommitFeeSat") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData PendingChannelsResponse'Commitments where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'Commitments'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'Commitments'localTxid x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'Commitments'remoteTxid x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'Commitments'remotePendingTxid x__)
                      (Control.DeepSeq.deepseq
                         (_PendingChannelsResponse'Commitments'localCommitFeeSat x__)
                         (Control.DeepSeq.deepseq
                            (_PendingChannelsResponse'Commitments'remoteCommitFeeSat x__)
                            (Control.DeepSeq.deepseq
                               (_PendingChannelsResponse'Commitments'remotePendingCommitFeeSat
                                  x__)
                               ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channel' @:: Lens' PendingChannelsResponse'ForceClosedChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'ForceClosedChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.closingTxid' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.limboBalance' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.maturityHeight' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.blocksTilMaturity' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int32@
         * 'Proto.Lnrpc.Ln0_Fields.recoveredBalance' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.pendingHtlcs' @:: Lens' PendingChannelsResponse'ForceClosedChannel [PendingHTLC]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'pendingHtlcs' @:: Lens' PendingChannelsResponse'ForceClosedChannel (Data.Vector.Vector PendingHTLC)@
         * 'Proto.Lnrpc.Ln0_Fields.anchor' @:: Lens' PendingChannelsResponse'ForceClosedChannel PendingChannelsResponse'ForceClosedChannel'AnchorState@ -}
data PendingChannelsResponse'ForceClosedChannel
  = PendingChannelsResponse'ForceClosedChannel'_constructor {_PendingChannelsResponse'ForceClosedChannel'channel :: !(Prelude.Maybe PendingChannelsResponse'PendingChannel),
                                                             _PendingChannelsResponse'ForceClosedChannel'closingTxid :: !Data.Text.Text,
                                                             _PendingChannelsResponse'ForceClosedChannel'limboBalance :: !Data.Int.Int64,
                                                             _PendingChannelsResponse'ForceClosedChannel'maturityHeight :: !Data.Word.Word32,
                                                             _PendingChannelsResponse'ForceClosedChannel'blocksTilMaturity :: !Data.Int.Int32,
                                                             _PendingChannelsResponse'ForceClosedChannel'recoveredBalance :: !Data.Int.Int64,
                                                             _PendingChannelsResponse'ForceClosedChannel'pendingHtlcs :: !(Data.Vector.Vector PendingHTLC),
                                                             _PendingChannelsResponse'ForceClosedChannel'anchor :: !PendingChannelsResponse'ForceClosedChannel'AnchorState,
                                                             _PendingChannelsResponse'ForceClosedChannel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'ForceClosedChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'ForceClosedChannel
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "channel" PendingChannelsResponse'PendingChannel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'channel = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "maybe'channel" (Prelude.Maybe PendingChannelsResponse'PendingChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'channel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "closingTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'closingTxid
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'closingTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "limboBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'limboBalance
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'limboBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "maturityHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'maturityHeight
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'maturityHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "blocksTilMaturity" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'blocksTilMaturity
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'blocksTilMaturity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "recoveredBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'recoveredBalance
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'recoveredBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "pendingHtlcs" [PendingHTLC] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'pendingHtlcs
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'pendingHtlcs = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "vec'pendingHtlcs" (Data.Vector.Vector PendingHTLC) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'pendingHtlcs
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'ForceClosedChannel'pendingHtlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'ForceClosedChannel "anchor" PendingChannelsResponse'ForceClosedChannel'AnchorState where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'ForceClosedChannel'anchor
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'ForceClosedChannel'anchor = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'ForceClosedChannel where
  messageName _
    = Data.Text.pack "lnrpc.PendingChannelsResponse.ForceClosedChannel"
  packedMessageDescriptor _
    = "\n\
      \\DC2ForceClosedChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
      \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid\DC2#\n\
      \\rlimbo_balance\CAN\ETX \SOH(\ETXR\flimboBalance\DC2'\n\
      \\SImaturity_height\CAN\EOT \SOH(\rR\SOmaturityHeight\DC2.\n\
      \\DC3blocks_til_maturity\CAN\ENQ \SOH(\ENQR\DC1blocksTilMaturity\DC2+\n\
      \\DC1recovered_balance\CAN\ACK \SOH(\ETXR\DLErecoveredBalance\DC27\n\
      \\rpending_htlcs\CAN\b \ETX(\v2\DC2.lnrpc.PendingHTLCR\fpendingHtlcs\DC2U\n\
      \\ACKanchor\CAN\t \SOH(\SO2=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorStateR\ACKanchor\"1\n\
      \\vAnchorState\DC2\t\n\
      \\ENQLIMBO\DLE\NUL\DC2\r\n\
      \\tRECOVERED\DLE\SOH\DC2\b\n\
      \\EOTLOST\DLE\STX"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'PendingChannel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channel")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        closingTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closing_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closingTxid")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        limboBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "limbo_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"limboBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        maturityHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "maturity_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maturityHeight")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        blocksTilMaturity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "blocks_til_maturity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blocksTilMaturity")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        recoveredBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "recovered_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"recoveredBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        pendingHtlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_htlcs"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingHTLC)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"pendingHtlcs")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
        anchor__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "anchor"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'ForceClosedChannel'AnchorState)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"anchor")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'ForceClosedChannel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channel__field_descriptor),
           (Data.ProtoLens.Tag 2, closingTxid__field_descriptor),
           (Data.ProtoLens.Tag 3, limboBalance__field_descriptor),
           (Data.ProtoLens.Tag 4, maturityHeight__field_descriptor),
           (Data.ProtoLens.Tag 5, blocksTilMaturity__field_descriptor),
           (Data.ProtoLens.Tag 6, recoveredBalance__field_descriptor),
           (Data.ProtoLens.Tag 8, pendingHtlcs__field_descriptor),
           (Data.ProtoLens.Tag 9, anchor__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'ForceClosedChannel'_unknownFields
        (\ x__ y__
           -> x__
                {_PendingChannelsResponse'ForceClosedChannel'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'ForceClosedChannel'_constructor
        {_PendingChannelsResponse'ForceClosedChannel'channel = Prelude.Nothing,
         _PendingChannelsResponse'ForceClosedChannel'closingTxid = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'limboBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'maturityHeight = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'blocksTilMaturity = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'recoveredBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'pendingHtlcs = Data.Vector.Generic.empty,
         _PendingChannelsResponse'ForceClosedChannel'anchor = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'ForceClosedChannel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'ForceClosedChannel
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PendingHTLC
             -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'ForceClosedChannel
        loop x mutable'pendingHtlcs
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'pendingHtlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'pendingHtlcs)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'pendingHtlcs")
                              frozen'pendingHtlcs x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "channel"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"channel") y x)
                                  mutable'pendingHtlcs
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "closing_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"closingTxid") y x)
                                  mutable'pendingHtlcs
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "limbo_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"limboBalance") y x)
                                  mutable'pendingHtlcs
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "maturity_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maturityHeight") y x)
                                  mutable'pendingHtlcs
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "blocks_til_maturity"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"blocksTilMaturity") y x)
                                  mutable'pendingHtlcs
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "recovered_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"recoveredBalance") y x)
                                  mutable'pendingHtlcs
                        66
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "pending_htlcs"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'pendingHtlcs y)
                                loop x v
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "anchor"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"anchor") y x)
                                  mutable'pendingHtlcs
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'pendingHtlcs
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'pendingHtlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'pendingHtlcs)
          "ForceClosedChannel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'channel") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just _v)
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"closingTxid") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"limboBalance") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"maturityHeight") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"blocksTilMaturity") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"recoveredBalance") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                  (\ _v
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
                                          ((Prelude..)
                                             (\ bs
                                                -> (Data.Monoid.<>)
                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                        (Prelude.fromIntegral
                                                           (Data.ByteString.length bs)))
                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                             Data.ProtoLens.encodeMessage _v))
                                  (Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"vec'pendingHtlcs") _x))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view (Data.ProtoLens.Field.field @"anchor") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                           ((Prelude..)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral)
                                              Prelude.fromEnum _v))
                                  (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                     (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))
instance Control.DeepSeq.NFData PendingChannelsResponse'ForceClosedChannel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'ForceClosedChannel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'ForceClosedChannel'channel x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'ForceClosedChannel'closingTxid x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'ForceClosedChannel'limboBalance x__)
                      (Control.DeepSeq.deepseq
                         (_PendingChannelsResponse'ForceClosedChannel'maturityHeight x__)
                         (Control.DeepSeq.deepseq
                            (_PendingChannelsResponse'ForceClosedChannel'blocksTilMaturity x__)
                            (Control.DeepSeq.deepseq
                               (_PendingChannelsResponse'ForceClosedChannel'recoveredBalance x__)
                               (Control.DeepSeq.deepseq
                                  (_PendingChannelsResponse'ForceClosedChannel'pendingHtlcs x__)
                                  (Control.DeepSeq.deepseq
                                     (_PendingChannelsResponse'ForceClosedChannel'anchor x__)
                                     ()))))))))
newtype PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue
  = PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue
data PendingChannelsResponse'ForceClosedChannel'AnchorState
  = PendingChannelsResponse'ForceClosedChannel'LIMBO |
    PendingChannelsResponse'ForceClosedChannel'RECOVERED |
    PendingChannelsResponse'ForceClosedChannel'LOST |
    PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized !PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum PendingChannelsResponse'ForceClosedChannel'AnchorState where
  maybeToEnum 0
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'LIMBO
  maybeToEnum 1
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'RECOVERED
  maybeToEnum 2
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'LOST
  maybeToEnum k
    = Prelude.Just
        (PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized
           (PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue
              (Prelude.fromIntegral k)))
  showEnum PendingChannelsResponse'ForceClosedChannel'LIMBO = "LIMBO"
  showEnum PendingChannelsResponse'ForceClosedChannel'RECOVERED
    = "RECOVERED"
  showEnum PendingChannelsResponse'ForceClosedChannel'LOST = "LOST"
  showEnum
    (PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized (PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "LIMBO"
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'LIMBO
    | (Prelude.==) k "RECOVERED"
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'RECOVERED
    | (Prelude.==) k "LOST"
    = Prelude.Just PendingChannelsResponse'ForceClosedChannel'LOST
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded PendingChannelsResponse'ForceClosedChannel'AnchorState where
  minBound = PendingChannelsResponse'ForceClosedChannel'LIMBO
  maxBound = PendingChannelsResponse'ForceClosedChannel'LOST
instance Prelude.Enum PendingChannelsResponse'ForceClosedChannel'AnchorState where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum AnchorState: " (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum PendingChannelsResponse'ForceClosedChannel'LIMBO = 0
  fromEnum PendingChannelsResponse'ForceClosedChannel'RECOVERED = 1
  fromEnum PendingChannelsResponse'ForceClosedChannel'LOST = 2
  fromEnum
    (PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized (PendingChannelsResponse'ForceClosedChannel'AnchorState'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ PendingChannelsResponse'ForceClosedChannel'LOST
    = Prelude.error
        "PendingChannelsResponse'ForceClosedChannel'AnchorState.succ: bad argument PendingChannelsResponse'ForceClosedChannel'LOST. This value would be out of bounds."
  succ PendingChannelsResponse'ForceClosedChannel'LIMBO
    = PendingChannelsResponse'ForceClosedChannel'RECOVERED
  succ PendingChannelsResponse'ForceClosedChannel'RECOVERED
    = PendingChannelsResponse'ForceClosedChannel'LOST
  succ
    (PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized _)
    = Prelude.error
        "PendingChannelsResponse'ForceClosedChannel'AnchorState.succ: bad argument: unrecognized value"
  pred PendingChannelsResponse'ForceClosedChannel'LIMBO
    = Prelude.error
        "PendingChannelsResponse'ForceClosedChannel'AnchorState.pred: bad argument PendingChannelsResponse'ForceClosedChannel'LIMBO. This value would be out of bounds."
  pred PendingChannelsResponse'ForceClosedChannel'RECOVERED
    = PendingChannelsResponse'ForceClosedChannel'LIMBO
  pred PendingChannelsResponse'ForceClosedChannel'LOST
    = PendingChannelsResponse'ForceClosedChannel'RECOVERED
  pred
    (PendingChannelsResponse'ForceClosedChannel'AnchorState'Unrecognized _)
    = Prelude.error
        "PendingChannelsResponse'ForceClosedChannel'AnchorState.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault PendingChannelsResponse'ForceClosedChannel'AnchorState where
  fieldDefault = PendingChannelsResponse'ForceClosedChannel'LIMBO
instance Control.DeepSeq.NFData PendingChannelsResponse'ForceClosedChannel'AnchorState where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'ForceClosedChannel'AnchorState
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.remoteNodePub' @:: Lens' PendingChannelsResponse'PendingChannel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.channelPoint' @:: Lens' PendingChannelsResponse'PendingChannel Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.capacity' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.localBalance' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.remoteBalance' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.localChanReserveSat' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.remoteChanReserveSat' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.initiator' @:: Lens' PendingChannelsResponse'PendingChannel Initiator@
         * 'Proto.Lnrpc.Ln0_Fields.commitmentType' @:: Lens' PendingChannelsResponse'PendingChannel CommitmentType@
         * 'Proto.Lnrpc.Ln0_Fields.numForwardingPackages' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@ -}
data PendingChannelsResponse'PendingChannel
  = PendingChannelsResponse'PendingChannel'_constructor {_PendingChannelsResponse'PendingChannel'remoteNodePub :: !Data.Text.Text,
                                                         _PendingChannelsResponse'PendingChannel'channelPoint :: !Data.Text.Text,
                                                         _PendingChannelsResponse'PendingChannel'capacity :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'localBalance :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'remoteBalance :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'localChanReserveSat :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'remoteChanReserveSat :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'initiator :: !Initiator,
                                                         _PendingChannelsResponse'PendingChannel'commitmentType :: !CommitmentType,
                                                         _PendingChannelsResponse'PendingChannel'numForwardingPackages :: !Data.Int.Int64,
                                                         _PendingChannelsResponse'PendingChannel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'PendingChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'PendingChannel
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "remoteNodePub" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'remoteNodePub
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'remoteNodePub = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "channelPoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'channelPoint
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "capacity" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'capacity
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'PendingChannel'capacity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "localBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'localBalance
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'localBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "remoteBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'remoteBalance
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'remoteBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "localChanReserveSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'localChanReserveSat
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'localChanReserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "remoteChanReserveSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'remoteChanReserveSat
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'remoteChanReserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "initiator" Initiator where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'initiator
           (\ x__ y__
              -> x__ {_PendingChannelsResponse'PendingChannel'initiator = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "commitmentType" CommitmentType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'commitmentType
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'commitmentType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingChannel "numForwardingPackages" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingChannel'numForwardingPackages
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingChannel'numForwardingPackages = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'PendingChannel where
  messageName _
    = Data.Text.pack "lnrpc.PendingChannelsResponse.PendingChannel"
  packedMessageDescriptor _
    = "\n\
      \\SOPendingChannel\DC2&\n\
      \\SIremote_node_pub\CAN\SOH \SOH(\tR\rremoteNodePub\DC2#\n\
      \\rchannel_point\CAN\STX \SOH(\tR\fchannelPoint\DC2\SUB\n\
      \\bcapacity\CAN\ETX \SOH(\ETXR\bcapacity\DC2#\n\
      \\rlocal_balance\CAN\EOT \SOH(\ETXR\flocalBalance\DC2%\n\
      \\SOremote_balance\CAN\ENQ \SOH(\ETXR\rremoteBalance\DC23\n\
      \\SYNlocal_chan_reserve_sat\CAN\ACK \SOH(\ETXR\DC3localChanReserveSat\DC25\n\
      \\ETBremote_chan_reserve_sat\CAN\a \SOH(\ETXR\DC4remoteChanReserveSat\DC2.\n\
      \\tinitiator\CAN\b \SOH(\SO2\DLE.lnrpc.InitiatorR\tinitiator\DC2>\n\
      \\SIcommitment_type\CAN\t \SOH(\SO2\NAK.lnrpc.CommitmentTypeR\SOcommitmentType\DC26\n\
      \\ETBnum_forwarding_packages\CAN\n\
      \ \SOH(\ETXR\NAKnumForwardingPackages"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        remoteNodePub__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_node_pub"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteNodePub")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelPoint")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        capacity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "capacity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"capacity")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        localBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        remoteBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        localChanReserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_chan_reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localChanReserveSat")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        remoteChanReserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_chan_reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteChanReserveSat")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        initiator__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "initiator"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Initiator)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"initiator")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        commitmentType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commitment_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor CommitmentType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitmentType")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
        numForwardingPackages__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_forwarding_packages"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numForwardingPackages")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingChannel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, remoteNodePub__field_descriptor),
           (Data.ProtoLens.Tag 2, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 3, capacity__field_descriptor),
           (Data.ProtoLens.Tag 4, localBalance__field_descriptor),
           (Data.ProtoLens.Tag 5, remoteBalance__field_descriptor),
           (Data.ProtoLens.Tag 6, localChanReserveSat__field_descriptor),
           (Data.ProtoLens.Tag 7, remoteChanReserveSat__field_descriptor),
           (Data.ProtoLens.Tag 8, initiator__field_descriptor),
           (Data.ProtoLens.Tag 9, commitmentType__field_descriptor),
           (Data.ProtoLens.Tag 10, numForwardingPackages__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'PendingChannel'_unknownFields
        (\ x__ y__
           -> x__
                {_PendingChannelsResponse'PendingChannel'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'PendingChannel'_constructor
        {_PendingChannelsResponse'PendingChannel'remoteNodePub = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'channelPoint = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'capacity = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'localBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'remoteBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'localChanReserveSat = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'remoteChanReserveSat = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'initiator = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'commitmentType = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'numForwardingPackages = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingChannel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'PendingChannel
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'PendingChannel
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "remote_node_pub"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteNodePub") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "channel_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "capacity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"capacity") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localBalance") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteBalance") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_chan_reserve_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localChanReserveSat") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_chan_reserve_sat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteChanReserveSat") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "initiator"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"initiator") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "commitment_type"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"commitmentType") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_forwarding_packages"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numForwardingPackages") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PendingChannel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"remoteNodePub") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"channelPoint") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((Prelude..)
                            (\ bs
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            Data.Text.Encoding.encodeUtf8 _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"capacity") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view (Data.ProtoLens.Field.field @"localBalance") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"remoteBalance") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"localChanReserveSat") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"remoteChanReserveSat") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putVarInt
                                           Prelude.fromIntegral _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"initiator") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 64)
                                           ((Prelude..)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral)
                                              Prelude.fromEnum _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"commitmentType") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 ((Prelude..)
                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
                                                    Prelude.fromIntegral)
                                                 Prelude.fromEnum _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field
                                                    @"numForwardingPackages")
                                                 _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                                 ((Prelude..)
                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
                                                    Prelude.fromIntegral _v))
                                        (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                           (Lens.Family2.view
                                              Data.ProtoLens.unknownFields _x)))))))))))
instance Control.DeepSeq.NFData PendingChannelsResponse'PendingChannel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'PendingChannel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'PendingChannel'remoteNodePub x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'PendingChannel'channelPoint x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'PendingChannel'capacity x__)
                      (Control.DeepSeq.deepseq
                         (_PendingChannelsResponse'PendingChannel'localBalance x__)
                         (Control.DeepSeq.deepseq
                            (_PendingChannelsResponse'PendingChannel'remoteBalance x__)
                            (Control.DeepSeq.deepseq
                               (_PendingChannelsResponse'PendingChannel'localChanReserveSat x__)
                               (Control.DeepSeq.deepseq
                                  (_PendingChannelsResponse'PendingChannel'remoteChanReserveSat x__)
                                  (Control.DeepSeq.deepseq
                                     (_PendingChannelsResponse'PendingChannel'initiator x__)
                                     (Control.DeepSeq.deepseq
                                        (_PendingChannelsResponse'PendingChannel'commitmentType x__)
                                        (Control.DeepSeq.deepseq
                                           (_PendingChannelsResponse'PendingChannel'numForwardingPackages
                                              x__)
                                           ()))))))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channel' @:: Lens' PendingChannelsResponse'PendingOpenChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'PendingOpenChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.confirmationHeight' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.commitFee' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.commitWeight' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.feePerKw' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Int.Int64@ -}
data PendingChannelsResponse'PendingOpenChannel
  = PendingChannelsResponse'PendingOpenChannel'_constructor {_PendingChannelsResponse'PendingOpenChannel'channel :: !(Prelude.Maybe PendingChannelsResponse'PendingChannel),
                                                             _PendingChannelsResponse'PendingOpenChannel'confirmationHeight :: !Data.Word.Word32,
                                                             _PendingChannelsResponse'PendingOpenChannel'commitFee :: !Data.Int.Int64,
                                                             _PendingChannelsResponse'PendingOpenChannel'commitWeight :: !Data.Int.Int64,
                                                             _PendingChannelsResponse'PendingOpenChannel'feePerKw :: !Data.Int.Int64,
                                                             _PendingChannelsResponse'PendingOpenChannel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'PendingOpenChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'PendingOpenChannel
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "channel" PendingChannelsResponse'PendingChannel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'channel = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "maybe'channel" (Prelude.Maybe PendingChannelsResponse'PendingChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'channel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "confirmationHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'confirmationHeight
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'confirmationHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "commitFee" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'commitFee
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'commitFee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "commitWeight" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'commitWeight
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'commitWeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'PendingOpenChannel "feePerKw" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'PendingOpenChannel'feePerKw
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'PendingOpenChannel'feePerKw = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'PendingOpenChannel where
  messageName _
    = Data.Text.pack "lnrpc.PendingChannelsResponse.PendingOpenChannel"
  packedMessageDescriptor _
    = "\n\
      \\DC2PendingOpenChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2/\n\
      \\DC3confirmation_height\CAN\STX \SOH(\rR\DC2confirmationHeight\DC2\GS\n\
      \\n\
      \commit_fee\CAN\EOT \SOH(\ETXR\tcommitFee\DC2#\n\
      \\rcommit_weight\CAN\ENQ \SOH(\ETXR\fcommitWeight\DC2\FS\n\
      \\n\
      \fee_per_kw\CAN\ACK \SOH(\ETXR\bfeePerKw"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'PendingChannel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channel")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingOpenChannel
        confirmationHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "confirmation_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"confirmationHeight")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingOpenChannel
        commitFee__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commit_fee"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitFee")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingOpenChannel
        commitWeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commit_weight"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitWeight")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingOpenChannel
        feePerKw__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_per_kw"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feePerKw")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'PendingOpenChannel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channel__field_descriptor),
           (Data.ProtoLens.Tag 2, confirmationHeight__field_descriptor),
           (Data.ProtoLens.Tag 4, commitFee__field_descriptor),
           (Data.ProtoLens.Tag 5, commitWeight__field_descriptor),
           (Data.ProtoLens.Tag 6, feePerKw__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'PendingOpenChannel'_unknownFields
        (\ x__ y__
           -> x__
                {_PendingChannelsResponse'PendingOpenChannel'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'PendingOpenChannel'_constructor
        {_PendingChannelsResponse'PendingOpenChannel'channel = Prelude.Nothing,
         _PendingChannelsResponse'PendingOpenChannel'confirmationHeight = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingOpenChannel'commitFee = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingOpenChannel'commitWeight = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingOpenChannel'feePerKw = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'PendingOpenChannel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'PendingOpenChannel
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'PendingOpenChannel
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "channel"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"channel") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "confirmation_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"confirmationHeight") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "commit_fee"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"commitFee") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "commit_weight"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"commitWeight") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_per_kw"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feePerKw") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PendingOpenChannel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'channel") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just _v)
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"confirmationHeight") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"commitFee") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view (Data.ProtoLens.Field.field @"commitWeight") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"feePerKw") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData PendingChannelsResponse'PendingOpenChannel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'PendingOpenChannel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'PendingOpenChannel'channel x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'PendingOpenChannel'confirmationHeight
                      x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'PendingOpenChannel'commitFee x__)
                      (Control.DeepSeq.deepseq
                         (_PendingChannelsResponse'PendingOpenChannel'commitWeight x__)
                         (Control.DeepSeq.deepseq
                            (_PendingChannelsResponse'PendingOpenChannel'feePerKw x__) ())))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.channel' @:: Lens' PendingChannelsResponse'WaitingCloseChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'WaitingCloseChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.Lnrpc.Ln0_Fields.limboBalance' @:: Lens' PendingChannelsResponse'WaitingCloseChannel Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.commitments' @:: Lens' PendingChannelsResponse'WaitingCloseChannel PendingChannelsResponse'Commitments@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'commitments' @:: Lens' PendingChannelsResponse'WaitingCloseChannel (Prelude.Maybe PendingChannelsResponse'Commitments)@ -}
data PendingChannelsResponse'WaitingCloseChannel
  = PendingChannelsResponse'WaitingCloseChannel'_constructor {_PendingChannelsResponse'WaitingCloseChannel'channel :: !(Prelude.Maybe PendingChannelsResponse'PendingChannel),
                                                              _PendingChannelsResponse'WaitingCloseChannel'limboBalance :: !Data.Int.Int64,
                                                              _PendingChannelsResponse'WaitingCloseChannel'commitments :: !(Prelude.Maybe PendingChannelsResponse'Commitments),
                                                              _PendingChannelsResponse'WaitingCloseChannel'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingChannelsResponse'WaitingCloseChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingChannelsResponse'WaitingCloseChannel
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'WaitingCloseChannel "channel" PendingChannelsResponse'PendingChannel where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'WaitingCloseChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'WaitingCloseChannel'channel = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'WaitingCloseChannel "maybe'channel" (Prelude.Maybe PendingChannelsResponse'PendingChannel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'WaitingCloseChannel'channel
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'WaitingCloseChannel'channel = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'WaitingCloseChannel "limboBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'WaitingCloseChannel'limboBalance
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'WaitingCloseChannel'limboBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'WaitingCloseChannel "commitments" PendingChannelsResponse'Commitments where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'WaitingCloseChannel'commitments
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'WaitingCloseChannel'commitments = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PendingChannelsResponse'WaitingCloseChannel "maybe'commitments" (Prelude.Maybe PendingChannelsResponse'Commitments) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingChannelsResponse'WaitingCloseChannel'commitments
           (\ x__ y__
              -> x__
                   {_PendingChannelsResponse'WaitingCloseChannel'commitments = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingChannelsResponse'WaitingCloseChannel where
  messageName _
    = Data.Text.pack
        "lnrpc.PendingChannelsResponse.WaitingCloseChannel"
  packedMessageDescriptor _
    = "\n\
      \\DC3WaitingCloseChannel\DC2G\n\
      \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2#\n\
      \\rlimbo_balance\CAN\STX \SOH(\ETXR\flimboBalance\DC2L\n\
      \\vcommitments\CAN\ETX \SOH(\v2*.lnrpc.PendingChannelsResponse.CommitmentsR\vcommitments"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channel__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'PendingChannel)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channel")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'WaitingCloseChannel
        limboBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "limbo_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"limboBalance")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'WaitingCloseChannel
        commitments__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commitments"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingChannelsResponse'Commitments)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'commitments")) ::
              Data.ProtoLens.FieldDescriptor PendingChannelsResponse'WaitingCloseChannel
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channel__field_descriptor),
           (Data.ProtoLens.Tag 2, limboBalance__field_descriptor),
           (Data.ProtoLens.Tag 3, commitments__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingChannelsResponse'WaitingCloseChannel'_unknownFields
        (\ x__ y__
           -> x__
                {_PendingChannelsResponse'WaitingCloseChannel'_unknownFields = y__})
  defMessage
    = PendingChannelsResponse'WaitingCloseChannel'_constructor
        {_PendingChannelsResponse'WaitingCloseChannel'channel = Prelude.Nothing,
         _PendingChannelsResponse'WaitingCloseChannel'limboBalance = Data.ProtoLens.fieldDefault,
         _PendingChannelsResponse'WaitingCloseChannel'commitments = Prelude.Nothing,
         _PendingChannelsResponse'WaitingCloseChannel'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingChannelsResponse'WaitingCloseChannel
          -> Data.ProtoLens.Encoding.Bytes.Parser PendingChannelsResponse'WaitingCloseChannel
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "channel"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"channel") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "limbo_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"limboBalance") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "commitments"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"commitments") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "WaitingCloseChannel"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'channel") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just _v)
                  -> (Data.Monoid.<>)
                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                       ((Prelude..)
                          (\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                          Data.ProtoLens.encodeMessage _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"limboBalance") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (case
                        Lens.Family2.view
                          (Data.ProtoLens.Field.field @"maybe'commitments") _x
                    of
                      Prelude.Nothing -> Data.Monoid.mempty
                      (Prelude.Just _v)
                        -> (Data.Monoid.<>)
                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                             ((Prelude..)
                                (\ bs
                                   -> (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                           (Prelude.fromIntegral (Data.ByteString.length bs)))
                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                Data.ProtoLens.encodeMessage _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData PendingChannelsResponse'WaitingCloseChannel where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingChannelsResponse'WaitingCloseChannel'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingChannelsResponse'WaitingCloseChannel'channel x__)
                (Control.DeepSeq.deepseq
                   (_PendingChannelsResponse'WaitingCloseChannel'limboBalance x__)
                   (Control.DeepSeq.deepseq
                      (_PendingChannelsResponse'WaitingCloseChannel'commitments x__)
                      ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.incoming' @:: Lens' PendingHTLC Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.amount' @:: Lens' PendingHTLC Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.outpoint' @:: Lens' PendingHTLC Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.maturityHeight' @:: Lens' PendingHTLC Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.blocksTilMaturity' @:: Lens' PendingHTLC Data.Int.Int32@
         * 'Proto.Lnrpc.Ln0_Fields.stage' @:: Lens' PendingHTLC Data.Word.Word32@ -}
data PendingHTLC
  = PendingHTLC'_constructor {_PendingHTLC'incoming :: !Prelude.Bool,
                              _PendingHTLC'amount :: !Data.Int.Int64,
                              _PendingHTLC'outpoint :: !Data.Text.Text,
                              _PendingHTLC'maturityHeight :: !Data.Word.Word32,
                              _PendingHTLC'blocksTilMaturity :: !Data.Int.Int32,
                              _PendingHTLC'stage :: !Data.Word.Word32,
                              _PendingHTLC'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingHTLC where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingHTLC
instance Data.ProtoLens.Field.HasField PendingHTLC "incoming" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'incoming
           (\ x__ y__ -> x__ {_PendingHTLC'incoming = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingHTLC "amount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'amount (\ x__ y__ -> x__ {_PendingHTLC'amount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingHTLC "outpoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'outpoint
           (\ x__ y__ -> x__ {_PendingHTLC'outpoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingHTLC "maturityHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'maturityHeight
           (\ x__ y__ -> x__ {_PendingHTLC'maturityHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingHTLC "blocksTilMaturity" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'blocksTilMaturity
           (\ x__ y__ -> x__ {_PendingHTLC'blocksTilMaturity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingHTLC "stage" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingHTLC'stage (\ x__ y__ -> x__ {_PendingHTLC'stage = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingHTLC where
  messageName _ = Data.Text.pack "lnrpc.PendingHTLC"
  packedMessageDescriptor _
    = "\n\
      \\vPendingHTLC\DC2\SUB\n\
      \\bincoming\CAN\SOH \SOH(\bR\bincoming\DC2\SYN\n\
      \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\SUB\n\
      \\boutpoint\CAN\ETX \SOH(\tR\boutpoint\DC2'\n\
      \\SImaturity_height\CAN\EOT \SOH(\rR\SOmaturityHeight\DC2.\n\
      \\DC3blocks_til_maturity\CAN\ENQ \SOH(\ENQR\DC1blocksTilMaturity\DC2\DC4\n\
      \\ENQstage\CAN\ACK \SOH(\rR\ENQstage"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        incoming__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "incoming"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"incoming")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
        amount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amount"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amount")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
        outpoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "outpoint"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"outpoint")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
        maturityHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "maturity_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maturityHeight")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
        blocksTilMaturity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "blocks_til_maturity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blocksTilMaturity")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
        stage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "stage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"stage")) ::
              Data.ProtoLens.FieldDescriptor PendingHTLC
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, incoming__field_descriptor),
           (Data.ProtoLens.Tag 2, amount__field_descriptor),
           (Data.ProtoLens.Tag 3, outpoint__field_descriptor),
           (Data.ProtoLens.Tag 4, maturityHeight__field_descriptor),
           (Data.ProtoLens.Tag 5, blocksTilMaturity__field_descriptor),
           (Data.ProtoLens.Tag 6, stage__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingHTLC'_unknownFields
        (\ x__ y__ -> x__ {_PendingHTLC'_unknownFields = y__})
  defMessage
    = PendingHTLC'_constructor
        {_PendingHTLC'incoming = Data.ProtoLens.fieldDefault,
         _PendingHTLC'amount = Data.ProtoLens.fieldDefault,
         _PendingHTLC'outpoint = Data.ProtoLens.fieldDefault,
         _PendingHTLC'maturityHeight = Data.ProtoLens.fieldDefault,
         _PendingHTLC'blocksTilMaturity = Data.ProtoLens.fieldDefault,
         _PendingHTLC'stage = Data.ProtoLens.fieldDefault,
         _PendingHTLC'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingHTLC -> Data.ProtoLens.Encoding.Bytes.Parser PendingHTLC
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "incoming"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"incoming") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amount"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amount") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "outpoint"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outpoint") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "maturity_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maturityHeight") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "blocks_til_maturity"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"blocksTilMaturity") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "stage"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"stage") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PendingHTLC"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"incoming") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amount") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"outpoint") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                            ((Prelude..)
                               (\ bs
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                               Data.Text.Encoding.encodeUtf8 _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"maturityHeight") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"blocksTilMaturity") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @"stage") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData PendingHTLC where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingHTLC'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingHTLC'incoming x__)
                (Control.DeepSeq.deepseq
                   (_PendingHTLC'amount x__)
                   (Control.DeepSeq.deepseq
                      (_PendingHTLC'outpoint x__)
                      (Control.DeepSeq.deepseq
                         (_PendingHTLC'maturityHeight x__)
                         (Control.DeepSeq.deepseq
                            (_PendingHTLC'blocksTilMaturity x__)
                            (Control.DeepSeq.deepseq (_PendingHTLC'stage x__) ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.txid' @:: Lens' PendingUpdate Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.outputIndex' @:: Lens' PendingUpdate Data.Word.Word32@ -}
data PendingUpdate
  = PendingUpdate'_constructor {_PendingUpdate'txid :: !Data.ByteString.ByteString,
                                _PendingUpdate'outputIndex :: !Data.Word.Word32,
                                _PendingUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PendingUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PendingUpdate
instance Data.ProtoLens.Field.HasField PendingUpdate "txid" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingUpdate'txid (\ x__ y__ -> x__ {_PendingUpdate'txid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PendingUpdate "outputIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PendingUpdate'outputIndex
           (\ x__ y__ -> x__ {_PendingUpdate'outputIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message PendingUpdate where
  messageName _ = Data.Text.pack "lnrpc.PendingUpdate"
  packedMessageDescriptor _
    = "\n\
      \\rPendingUpdate\DC2\DC2\n\
      \\EOTtxid\CAN\SOH \SOH(\fR\EOTtxid\DC2!\n\
      \\foutput_index\CAN\STX \SOH(\rR\voutputIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        txid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txid")) ::
              Data.ProtoLens.FieldDescriptor PendingUpdate
        outputIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "output_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"outputIndex")) ::
              Data.ProtoLens.FieldDescriptor PendingUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, txid__field_descriptor),
           (Data.ProtoLens.Tag 2, outputIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PendingUpdate'_unknownFields
        (\ x__ y__ -> x__ {_PendingUpdate'_unknownFields = y__})
  defMessage
    = PendingUpdate'_constructor
        {_PendingUpdate'txid = Data.ProtoLens.fieldDefault,
         _PendingUpdate'outputIndex = Data.ProtoLens.fieldDefault,
         _PendingUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PendingUpdate -> Data.ProtoLens.Encoding.Bytes.Parser PendingUpdate
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "txid"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"txid") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "output_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outputIndex") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PendingUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"txid") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"outputIndex") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData PendingUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PendingUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PendingUpdate'txid x__)
                (Control.DeepSeq.deepseq (_PendingUpdate'outputIndex x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.pendingChanId' @:: Lens' PsbtShim Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.basePsbt' @:: Lens' PsbtShim Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.noPublish' @:: Lens' PsbtShim Prelude.Bool@ -}
data PsbtShim
  = PsbtShim'_constructor {_PsbtShim'pendingChanId :: !Data.ByteString.ByteString,
                           _PsbtShim'basePsbt :: !Data.ByteString.ByteString,
                           _PsbtShim'noPublish :: !Prelude.Bool,
                           _PsbtShim'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show PsbtShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out PsbtShim
instance Data.ProtoLens.Field.HasField PsbtShim "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PsbtShim'pendingChanId
           (\ x__ y__ -> x__ {_PsbtShim'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PsbtShim "basePsbt" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PsbtShim'basePsbt (\ x__ y__ -> x__ {_PsbtShim'basePsbt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PsbtShim "noPublish" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PsbtShim'noPublish (\ x__ y__ -> x__ {_PsbtShim'noPublish = y__}))
        Prelude.id
instance Data.ProtoLens.Message PsbtShim where
  messageName _ = Data.Text.pack "lnrpc.PsbtShim"
  packedMessageDescriptor _
    = "\n\
      \\bPsbtShim\DC2&\n\
      \\SIpending_chan_id\CAN\SOH \SOH(\fR\rpendingChanId\DC2\ESC\n\
      \\tbase_psbt\CAN\STX \SOH(\fR\bbasePsbt\DC2\GS\n\
      \\n\
      \no_publish\CAN\ETX \SOH(\bR\tnoPublish"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pendingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingChanId")) ::
              Data.ProtoLens.FieldDescriptor PsbtShim
        basePsbt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "base_psbt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"basePsbt")) ::
              Data.ProtoLens.FieldDescriptor PsbtShim
        noPublish__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "no_publish"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"noPublish")) ::
              Data.ProtoLens.FieldDescriptor PsbtShim
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 2, basePsbt__field_descriptor),
           (Data.ProtoLens.Tag 3, noPublish__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PsbtShim'_unknownFields
        (\ x__ y__ -> x__ {_PsbtShim'_unknownFields = y__})
  defMessage
    = PsbtShim'_constructor
        {_PsbtShim'pendingChanId = Data.ProtoLens.fieldDefault,
         _PsbtShim'basePsbt = Data.ProtoLens.fieldDefault,
         _PsbtShim'noPublish = Data.ProtoLens.fieldDefault,
         _PsbtShim'_unknownFields = []}
  parseMessage
    = let
        loop :: PsbtShim -> Data.ProtoLens.Encoding.Bytes.Parser PsbtShim
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "pending_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingChanId") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "base_psbt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"basePsbt") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "no_publish"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"noPublish") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "PsbtShim"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"pendingChanId") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((\ bs
                          -> (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"basePsbt") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"noPublish") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
                               _v))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData PsbtShim where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PsbtShim'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PsbtShim'pendingChanId x__)
                (Control.DeepSeq.deepseq
                   (_PsbtShim'basePsbt x__)
                   (Control.DeepSeq.deepseq (_PsbtShim'noPublish x__) ())))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.pubKey' @:: Lens' QueryRoutesRequest Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.amt' @:: Lens' QueryRoutesRequest Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.amtMsat' @:: Lens' QueryRoutesRequest Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.finalCltvDelta' @:: Lens' QueryRoutesRequest Data.Int.Int32@
         * 'Proto.Lnrpc.Ln0_Fields.feeLimit' @:: Lens' QueryRoutesRequest FeeLimit@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'feeLimit' @:: Lens' QueryRoutesRequest (Prelude.Maybe FeeLimit)@
         * 'Proto.Lnrpc.Ln0_Fields.ignoredNodes' @:: Lens' QueryRoutesRequest [Data.ByteString.ByteString]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'ignoredNodes' @:: Lens' QueryRoutesRequest (Data.Vector.Vector Data.ByteString.ByteString)@
         * 'Proto.Lnrpc.Ln0_Fields.ignoredEdges' @:: Lens' QueryRoutesRequest [EdgeLocator]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'ignoredEdges' @:: Lens' QueryRoutesRequest (Data.Vector.Vector EdgeLocator)@
         * 'Proto.Lnrpc.Ln0_Fields.sourcePubKey' @:: Lens' QueryRoutesRequest Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.useMissionControl' @:: Lens' QueryRoutesRequest Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.ignoredPairs' @:: Lens' QueryRoutesRequest [NodePair]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'ignoredPairs' @:: Lens' QueryRoutesRequest (Data.Vector.Vector NodePair)@
         * 'Proto.Lnrpc.Ln0_Fields.cltvLimit' @:: Lens' QueryRoutesRequest Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.destCustomRecords' @:: Lens' QueryRoutesRequest (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString)@
         * 'Proto.Lnrpc.Ln0_Fields.outgoingChanId' @:: Lens' QueryRoutesRequest Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.lastHopPubkey' @:: Lens' QueryRoutesRequest Data.ByteString.ByteString@
         * 'Proto.Lnrpc.Ln0_Fields.routeHints' @:: Lens' QueryRoutesRequest [RouteHint]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'routeHints' @:: Lens' QueryRoutesRequest (Data.Vector.Vector RouteHint)@
         * 'Proto.Lnrpc.Ln0_Fields.destFeatures' @:: Lens' QueryRoutesRequest [FeatureBit]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'destFeatures' @:: Lens' QueryRoutesRequest (Data.Vector.Vector FeatureBit)@ -}
data QueryRoutesRequest
  = QueryRoutesRequest'_constructor {_QueryRoutesRequest'pubKey :: !Data.Text.Text,
                                     _QueryRoutesRequest'amt :: !Data.Int.Int64,
                                     _QueryRoutesRequest'amtMsat :: !Data.Int.Int64,
                                     _QueryRoutesRequest'finalCltvDelta :: !Data.Int.Int32,
                                     _QueryRoutesRequest'feeLimit :: !(Prelude.Maybe FeeLimit),
                                     _QueryRoutesRequest'ignoredNodes :: !(Data.Vector.Vector Data.ByteString.ByteString),
                                     _QueryRoutesRequest'ignoredEdges :: !(Data.Vector.Vector EdgeLocator),
                                     _QueryRoutesRequest'sourcePubKey :: !Data.Text.Text,
                                     _QueryRoutesRequest'useMissionControl :: !Prelude.Bool,
                                     _QueryRoutesRequest'ignoredPairs :: !(Data.Vector.Vector NodePair),
                                     _QueryRoutesRequest'cltvLimit :: !Data.Word.Word32,
                                     _QueryRoutesRequest'destCustomRecords :: !(Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString),
                                     _QueryRoutesRequest'outgoingChanId :: !Data.Word.Word64,
                                     _QueryRoutesRequest'lastHopPubkey :: !Data.ByteString.ByteString,
                                     _QueryRoutesRequest'routeHints :: !(Data.Vector.Vector RouteHint),
                                     _QueryRoutesRequest'destFeatures :: !(Data.Vector.Vector FeatureBit),
                                     _QueryRoutesRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show QueryRoutesRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out QueryRoutesRequest
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'pubKey
           (\ x__ y__ -> x__ {_QueryRoutesRequest'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "amt" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'amt
           (\ x__ y__ -> x__ {_QueryRoutesRequest'amt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "amtMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'amtMsat
           (\ x__ y__ -> x__ {_QueryRoutesRequest'amtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "finalCltvDelta" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'finalCltvDelta
           (\ x__ y__ -> x__ {_QueryRoutesRequest'finalCltvDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "feeLimit" FeeLimit where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'feeLimit
           (\ x__ y__ -> x__ {_QueryRoutesRequest'feeLimit = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "maybe'feeLimit" (Prelude.Maybe FeeLimit) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'feeLimit
           (\ x__ y__ -> x__ {_QueryRoutesRequest'feeLimit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "ignoredNodes" [Data.ByteString.ByteString] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredNodes
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredNodes = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "vec'ignoredNodes" (Data.Vector.Vector Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredNodes
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredNodes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "ignoredEdges" [EdgeLocator] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredEdges
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredEdges = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "vec'ignoredEdges" (Data.Vector.Vector EdgeLocator) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredEdges
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredEdges = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "sourcePubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'sourcePubKey
           (\ x__ y__ -> x__ {_QueryRoutesRequest'sourcePubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "useMissionControl" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'useMissionControl
           (\ x__ y__ -> x__ {_QueryRoutesRequest'useMissionControl = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "ignoredPairs" [NodePair] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredPairs
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredPairs = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "vec'ignoredPairs" (Data.Vector.Vector NodePair) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'ignoredPairs
           (\ x__ y__ -> x__ {_QueryRoutesRequest'ignoredPairs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "cltvLimit" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'cltvLimit
           (\ x__ y__ -> x__ {_QueryRoutesRequest'cltvLimit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "destCustomRecords" (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'destCustomRecords
           (\ x__ y__ -> x__ {_QueryRoutesRequest'destCustomRecords = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "outgoingChanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'outgoingChanId
           (\ x__ y__ -> x__ {_QueryRoutesRequest'outgoingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "lastHopPubkey" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'lastHopPubkey
           (\ x__ y__ -> x__ {_QueryRoutesRequest'lastHopPubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "routeHints" [RouteHint] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'routeHints
           (\ x__ y__ -> x__ {_QueryRoutesRequest'routeHints = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "vec'routeHints" (Data.Vector.Vector RouteHint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'routeHints
           (\ x__ y__ -> x__ {_QueryRoutesRequest'routeHints = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "destFeatures" [FeatureBit] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'destFeatures
           (\ x__ y__ -> x__ {_QueryRoutesRequest'destFeatures = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesRequest "vec'destFeatures" (Data.Vector.Vector FeatureBit) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'destFeatures
           (\ x__ y__ -> x__ {_QueryRoutesRequest'destFeatures = y__}))
        Prelude.id
instance Data.ProtoLens.Message QueryRoutesRequest where
  messageName _ = Data.Text.pack "lnrpc.QueryRoutesRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2QueryRoutesRequest\DC2\ETB\n\
      \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2\DLE\n\
      \\ETXamt\CAN\STX \SOH(\ETXR\ETXamt\DC2\EM\n\
      \\bamt_msat\CAN\f \SOH(\ETXR\aamtMsat\DC2(\n\
      \\DLEfinal_cltv_delta\CAN\EOT \SOH(\ENQR\SOfinalCltvDelta\DC2,\n\
      \\tfee_limit\CAN\ENQ \SOH(\v2\SI.lnrpc.FeeLimitR\bfeeLimit\DC2#\n\
      \\rignored_nodes\CAN\ACK \ETX(\fR\fignoredNodes\DC2;\n\
      \\rignored_edges\CAN\a \ETX(\v2\DC2.lnrpc.EdgeLocatorR\fignoredEdgesB\STX\CAN\SOH\DC2$\n\
      \\SOsource_pub_key\CAN\b \SOH(\tR\fsourcePubKey\DC2.\n\
      \\DC3use_mission_control\CAN\t \SOH(\bR\DC1useMissionControl\DC24\n\
      \\rignored_pairs\CAN\n\
      \ \ETX(\v2\SI.lnrpc.NodePairR\fignoredPairs\DC2\GS\n\
      \\n\
      \cltv_limit\CAN\v \SOH(\rR\tcltvLimit\DC2`\n\
      \\DC3dest_custom_records\CAN\r \ETX(\v20.lnrpc.QueryRoutesRequest.DestCustomRecordsEntryR\DC1destCustomRecords\DC2,\n\
      \\DLEoutgoing_chan_id\CAN\SO \SOH(\EOTR\SOoutgoingChanIdB\STX0\SOH\DC2&\n\
      \\SIlast_hop_pubkey\CAN\SI \SOH(\fR\rlastHopPubkey\DC21\n\
      \\vroute_hints\CAN\DLE \ETX(\v2\DLE.lnrpc.RouteHintR\n\
      \routeHints\DC26\n\
      \\rdest_features\CAN\DC1 \ETX(\SO2\DC1.lnrpc.FeatureBitR\fdestFeatures\SUBD\n\
      \\SYNDestCustomRecordsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOHJ\EOT\b\ETX\DLE\EOT"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pubKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pub_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pubKey")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        amt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amt")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        amtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amtMsat")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        finalCltvDelta__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "final_cltv_delta"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"finalCltvDelta")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        feeLimit__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_limit"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FeeLimit)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'feeLimit")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        ignoredNodes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "ignored_nodes"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"ignoredNodes")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        ignoredEdges__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "ignored_edges"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor EdgeLocator)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"ignoredEdges")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        sourcePubKey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "source_pub_key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"sourcePubKey")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        useMissionControl__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "use_mission_control"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"useMissionControl")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        ignoredPairs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "ignored_pairs"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor NodePair)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"ignoredPairs")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        cltvLimit__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cltv_limit"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cltvLimit")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        destCustomRecords__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest_custom_records"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor QueryRoutesRequest'DestCustomRecordsEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"destCustomRecords")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        outgoingChanId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "outgoing_chan_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"outgoingChanId")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        lastHopPubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_hop_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastHopPubkey")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        routeHints__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "route_hints"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor RouteHint)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"routeHints")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
        destFeatures__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest_features"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor FeatureBit)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Packed
                 (Data.ProtoLens.Field.field @"destFeatures")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 2, amt__field_descriptor),
           (Data.ProtoLens.Tag 12, amtMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, finalCltvDelta__field_descriptor),
           (Data.ProtoLens.Tag 5, feeLimit__field_descriptor),
           (Data.ProtoLens.Tag 6, ignoredNodes__field_descriptor),
           (Data.ProtoLens.Tag 7, ignoredEdges__field_descriptor),
           (Data.ProtoLens.Tag 8, sourcePubKey__field_descriptor),
           (Data.ProtoLens.Tag 9, useMissionControl__field_descriptor),
           (Data.ProtoLens.Tag 10, ignoredPairs__field_descriptor),
           (Data.ProtoLens.Tag 11, cltvLimit__field_descriptor),
           (Data.ProtoLens.Tag 13, destCustomRecords__field_descriptor),
           (Data.ProtoLens.Tag 14, outgoingChanId__field_descriptor),
           (Data.ProtoLens.Tag 15, lastHopPubkey__field_descriptor),
           (Data.ProtoLens.Tag 16, routeHints__field_descriptor),
           (Data.ProtoLens.Tag 17, destFeatures__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _QueryRoutesRequest'_unknownFields
        (\ x__ y__ -> x__ {_QueryRoutesRequest'_unknownFields = y__})
  defMessage
    = QueryRoutesRequest'_constructor
        {_QueryRoutesRequest'pubKey = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'amt = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'amtMsat = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'finalCltvDelta = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'feeLimit = Prelude.Nothing,
         _QueryRoutesRequest'ignoredNodes = Data.Vector.Generic.empty,
         _QueryRoutesRequest'ignoredEdges = Data.Vector.Generic.empty,
         _QueryRoutesRequest'sourcePubKey = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'useMissionControl = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'ignoredPairs = Data.Vector.Generic.empty,
         _QueryRoutesRequest'cltvLimit = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'destCustomRecords = Data.Map.empty,
         _QueryRoutesRequest'outgoingChanId = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'lastHopPubkey = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'routeHints = Data.Vector.Generic.empty,
         _QueryRoutesRequest'destFeatures = Data.Vector.Generic.empty,
         _QueryRoutesRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          QueryRoutesRequest
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FeatureBit
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EdgeLocator
                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.ByteString.ByteString
                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NodePair
                      -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld RouteHint
                         -> Data.ProtoLens.Encoding.Bytes.Parser QueryRoutesRequest
        loop
          x
          mutable'destFeatures
          mutable'ignoredEdges
          mutable'ignoredNodes
          mutable'ignoredPairs
          mutable'routeHints
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'destFeatures <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'destFeatures)
                      frozen'ignoredEdges <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'ignoredEdges)
                      frozen'ignoredNodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'ignoredNodes)
                      frozen'ignoredPairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'ignoredPairs)
                      frozen'routeHints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                mutable'routeHints)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'destFeatures")
                              frozen'destFeatures
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'ignoredEdges")
                                 frozen'ignoredEdges
                                 (Lens.Family2.set
                                    (Data.ProtoLens.Field.field @"vec'ignoredNodes")
                                    frozen'ignoredNodes
                                    (Lens.Family2.set
                                       (Data.ProtoLens.Field.field @"vec'ignoredPairs")
                                       frozen'ignoredPairs
                                       (Lens.Family2.set
                                          (Data.ProtoLens.Field.field @"vec'routeHints")
                                          frozen'routeHints x))))))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "pub_key"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pubKey") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amt") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        96
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtMsat") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "final_cltv_delta"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"finalCltvDelta") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "fee_limit"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feeLimit") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        50
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.getBytes
                                              (Prelude.fromIntegral len))
                                        "ignored_nodes"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'ignoredNodes y)
                                loop
                                  x mutable'destFeatures mutable'ignoredEdges v mutable'ignoredPairs
                                  mutable'routeHints
                        58
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "ignored_edges"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'ignoredEdges y)
                                loop
                                  x mutable'destFeatures v mutable'ignoredNodes mutable'ignoredPairs
                                  mutable'routeHints
                        66
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "source_pub_key"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"sourcePubKey") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "use_mission_control"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"useMissionControl") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        82
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "ignored_pairs"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'ignoredPairs y)
                                loop
                                  x mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes v
                                  mutable'routeHints
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "cltv_limit"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cltvLimit") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        106
                          -> do !(entry :: QueryRoutesRequest'DestCustomRecordsEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                           (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                               Data.ProtoLens.Encoding.Bytes.isolate
                                                                                                 (Prelude.fromIntegral
                                                                                                    len)
                                                                                                 Data.ProtoLens.parseMessage)
                                                                                           "dest_custom_records"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"destCustomRecords")
                                        (\ !t -> Data.Map.insert key value t) x)
                                     mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                     mutable'ignoredPairs mutable'routeHints)
                        112
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "outgoing_chan_id"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"outgoingChanId") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        122
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "last_hop_pubkey"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"lastHopPubkey") y x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
                        130
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "route_hints"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'routeHints y)
                                loop
                                  x mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs v
                        136
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (Prelude.fmap
                                           Prelude.toEnum
                                           (Prelude.fmap
                                              Prelude.fromIntegral
                                              Data.ProtoLens.Encoding.Bytes.getVarInt))
                                        "dest_features"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'destFeatures y)
                                loop
                                  x v mutable'ignoredEdges mutable'ignoredNodes mutable'ignoredPairs
                                  mutable'routeHints
                        138
                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                        Data.ProtoLens.Encoding.Bytes.isolate
                                          (Prelude.fromIntegral len)
                                          ((let
                                              ploop qs
                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
                                                     if packedEnd then
                                                         Prelude.return qs
                                                     else
                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                    (Prelude.fmap
                                                                       Prelude.toEnum
                                                                       (Prelude.fmap
                                                                          Prelude.fromIntegral
                                                                          Data.ProtoLens.Encoding.Bytes.getVarInt))
                                                                    "dest_features"
                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                                     (Data.ProtoLens.Encoding.Growing.append
                                                                        qs q)
                                                            ploop qs'
                                            in ploop)
                                             mutable'destFeatures)
                                loop
                                  x y mutable'ignoredEdges mutable'ignoredNodes mutable'ignoredPairs
                                  mutable'routeHints
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'destFeatures mutable'ignoredEdges mutable'ignoredNodes
                                  mutable'ignoredPairs mutable'routeHints
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'destFeatures <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              mutable'ignoredEdges <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              mutable'ignoredNodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              mutable'ignoredPairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              mutable'routeHints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                      Data.ProtoLens.Encoding.Growing.new
              loop
                Data.ProtoLens.defMessage mutable'destFeatures mutable'ignoredEdges
                mutable'ignoredNodes mutable'ignoredPairs mutable'routeHints)
          "QueryRoutesRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"pubKey") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amt") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amtMsat") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 96)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"finalCltvDelta") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (case
                              Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'feeLimit") _x
                          of
                            Prelude.Nothing -> Data.Monoid.mempty
                            (Prelude.Just _v)
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                   ((Prelude..)
                                      (\ bs
                                         -> (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))
                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                      Data.ProtoLens.encodeMessage _v))
                         ((Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                               (\ _v
                                  -> (Data.Monoid.<>)
                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
                                       ((\ bs
                                           -> (Data.Monoid.<>)
                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                   (Prelude.fromIntegral
                                                      (Data.ByteString.length bs)))
                                                (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                          _v))
                               (Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"vec'ignoredNodes") _x))
                            ((Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                  (\ _v
                                     -> (Data.Monoid.<>)
                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
                                          ((Prelude..)
                                             (\ bs
                                                -> (Data.Monoid.<>)
                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                        (Prelude.fromIntegral
                                                           (Data.ByteString.length bs)))
                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                             Data.ProtoLens.encodeMessage _v))
                                  (Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"vec'ignoredEdges") _x))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"sourcePubKey") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
                                           ((Prelude..)
                                              (\ bs
                                                 -> (Data.Monoid.<>)
                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                         (Prelude.fromIntegral
                                                            (Data.ByteString.length bs)))
                                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                              Data.Text.Encoding.encodeUtf8 _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"useMissionControl") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 (\ b -> if b then 1 else 0) _v))
                                     ((Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                           (\ _v
                                              -> (Data.Monoid.<>)
                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 82)
                                                   ((Prelude..)
                                                      (\ bs
                                                         -> (Data.Monoid.<>)
                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                 (Prelude.fromIntegral
                                                                    (Data.ByteString.length bs)))
                                                              (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                 bs))
                                                      Data.ProtoLens.encodeMessage _v))
                                           (Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"vec'ignoredPairs") _x))
                                        ((Data.Monoid.<>)
                                           (let
                                              _v
                                                = Lens.Family2.view
                                                    (Data.ProtoLens.Field.field @"cltvLimit") _x
                                            in
                                              if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                  Data.Monoid.mempty
                                              else
                                                  (Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 88)
                                                    ((Prelude..)
                                                       Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       Prelude.fromIntegral _v))
                                           ((Data.Monoid.<>)
                                              (Data.Monoid.mconcat
                                                 (Prelude.map
                                                    (\ _v
                                                       -> (Data.Monoid.<>)
                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                               106)
                                                            ((Prelude..)
                                                               (\ bs
                                                                  -> (Data.Monoid.<>)
                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                          (Prelude.fromIntegral
                                                                             (Data.ByteString.length
                                                                                bs)))
                                                                       (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                          bs))
                                                               Data.ProtoLens.encodeMessage
                                                               (Lens.Family2.set
                                                                  (Data.ProtoLens.Field.field
                                                                     @"key")
                                                                  (Prelude.fst _v)
                                                                  (Lens.Family2.set
                                                                     (Data.ProtoLens.Field.field
                                                                        @"value")
                                                                     (Prelude.snd _v)
                                                                     (Data.ProtoLens.defMessage ::
                                                                        QueryRoutesRequest'DestCustomRecordsEntry)))))
                                                    (Data.Map.toList
                                                       (Lens.Family2.view
                                                          (Data.ProtoLens.Field.field
                                                             @"destCustomRecords")
                                                          _x))))
                                              ((Data.Monoid.<>)
                                                 (let
                                                    _v
                                                      = Lens.Family2.view
                                                          (Data.ProtoLens.Field.field
                                                             @"outgoingChanId")
                                                          _x
                                                  in
                                                    if (Prelude.==)
                                                         _v Data.ProtoLens.fieldDefault then
                                                        Data.Monoid.mempty
                                                    else
                                                        (Data.Monoid.<>)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             112)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             _v))
                                                 ((Data.Monoid.<>)
                                                    (let
                                                       _v
                                                         = Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"lastHopPubkey")
                                                             _x
                                                     in
                                                       if (Prelude.==)
                                                            _v Data.ProtoLens.fieldDefault then
                                                           Data.Monoid.mempty
                                                       else
                                                           (Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                122)
                                                             ((\ bs
                                                                 -> (Data.Monoid.<>)
                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                         (Prelude.fromIntegral
                                                                            (Data.ByteString.length
                                                                               bs)))
                                                                      (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                         bs))
                                                                _v))
                                                    ((Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                          (\ _v
                                                             -> (Data.Monoid.<>)
                                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                     130)
                                                                  ((Prelude..)
                                                                     (\ bs
                                                                        -> (Data.Monoid.<>)
                                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                (Prelude.fromIntegral
                                                                                   (Data.ByteString.length
                                                                                      bs)))
                                                                             (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                                bs))
                                                                     Data.ProtoLens.encodeMessage
                                                                     _v))
                                                          (Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"vec'routeHints")
                                                             _x))
                                                       ((Data.Monoid.<>)
                                                          (let
                                                             p = Lens.Family2.view
                                                                   (Data.ProtoLens.Field.field
                                                                      @"vec'destFeatures")
                                                                   _x
                                                           in
                                                             if Data.Vector.Generic.null p then
                                                                 Data.Monoid.mempty
                                                             else
                                                                 (Data.Monoid.<>)
                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                      138)
                                                                   ((\ bs
                                                                       -> (Data.Monoid.<>)
                                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                               (Prelude.fromIntegral
                                                                                  (Data.ByteString.length
                                                                                     bs)))
                                                                            (Data.ProtoLens.Encoding.Bytes.putBytes
                                                                               bs))
                                                                      (Data.ProtoLens.Encoding.Bytes.runBuilder
                                                                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                                            ((Prelude..)
                                                                               ((Prelude..)
                                                                                  Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                  Prelude.fromIntegral)
                                                                               Prelude.fromEnum)
                                                                            p))))
                                                          (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                                             (Lens.Family2.view
                                                                Data.ProtoLens.unknownFields
                                                                _x)))))))))))))))))
instance Control.DeepSeq.NFData QueryRoutesRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_QueryRoutesRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_QueryRoutesRequest'pubKey x__)
                (Control.DeepSeq.deepseq
                   (_QueryRoutesRequest'amt x__)
                   (Control.DeepSeq.deepseq
                      (_QueryRoutesRequest'amtMsat x__)
                      (Control.DeepSeq.deepseq
                         (_QueryRoutesRequest'finalCltvDelta x__)
                         (Control.DeepSeq.deepseq
                            (_QueryRoutesRequest'feeLimit x__)
                            (Control.DeepSeq.deepseq
                               (_QueryRoutesRequest'ignoredNodes x__)
                               (Control.DeepSeq.deepseq
                                  (_QueryRoutesRequest'ignoredEdges x__)
                                  (Control.DeepSeq.deepseq
                                     (_QueryRoutesRequest'sourcePubKey x__)
                                     (Control.DeepSeq.deepseq
                                        (_QueryRoutesRequest'useMissionControl x__)
                                        (Control.DeepSeq.deepseq
                                           (_QueryRoutesRequest'ignoredPairs x__)
                                           (Control.DeepSeq.deepseq
                                              (_QueryRoutesRequest'cltvLimit x__)
                                              (Control.DeepSeq.deepseq
                                                 (_QueryRoutesRequest'destCustomRecords x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_QueryRoutesRequest'outgoingChanId x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_QueryRoutesRequest'lastHopPubkey x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_QueryRoutesRequest'routeHints x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_QueryRoutesRequest'destFeatures x__)
                                                             ()))))))))))))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' QueryRoutesRequest'DestCustomRecordsEntry Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' QueryRoutesRequest'DestCustomRecordsEntry Data.ByteString.ByteString@ -}
data QueryRoutesRequest'DestCustomRecordsEntry
  = QueryRoutesRequest'DestCustomRecordsEntry'_constructor {_QueryRoutesRequest'DestCustomRecordsEntry'key :: !Data.Word.Word64,
                                                            _QueryRoutesRequest'DestCustomRecordsEntry'value :: !Data.ByteString.ByteString,
                                                            _QueryRoutesRequest'DestCustomRecordsEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show QueryRoutesRequest'DestCustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out QueryRoutesRequest'DestCustomRecordsEntry
instance Data.ProtoLens.Field.HasField QueryRoutesRequest'DestCustomRecordsEntry "key" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'DestCustomRecordsEntry'key
           (\ x__ y__
              -> x__ {_QueryRoutesRequest'DestCustomRecordsEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesRequest'DestCustomRecordsEntry "value" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesRequest'DestCustomRecordsEntry'value
           (\ x__ y__
              -> x__ {_QueryRoutesRequest'DestCustomRecordsEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message QueryRoutesRequest'DestCustomRecordsEntry where
  messageName _
    = Data.Text.pack "lnrpc.QueryRoutesRequest.DestCustomRecordsEntry"
  packedMessageDescriptor _
    = "\n\
      \\SYNDestCustomRecordsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest'DestCustomRecordsEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesRequest'DestCustomRecordsEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _QueryRoutesRequest'DestCustomRecordsEntry'_unknownFields
        (\ x__ y__
           -> x__
                {_QueryRoutesRequest'DestCustomRecordsEntry'_unknownFields = y__})
  defMessage
    = QueryRoutesRequest'DestCustomRecordsEntry'_constructor
        {_QueryRoutesRequest'DestCustomRecordsEntry'key = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'DestCustomRecordsEntry'value = Data.ProtoLens.fieldDefault,
         _QueryRoutesRequest'DestCustomRecordsEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          QueryRoutesRequest'DestCustomRecordsEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser QueryRoutesRequest'DestCustomRecordsEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "DestCustomRecordsEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"value") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                         ((\ bs
                             -> (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                            _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData QueryRoutesRequest'DestCustomRecordsEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_QueryRoutesRequest'DestCustomRecordsEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_QueryRoutesRequest'DestCustomRecordsEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_QueryRoutesRequest'DestCustomRecordsEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.routes' @:: Lens' QueryRoutesResponse [Route]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'routes' @:: Lens' QueryRoutesResponse (Data.Vector.Vector Route)@
         * 'Proto.Lnrpc.Ln0_Fields.successProb' @:: Lens' QueryRoutesResponse Prelude.Double@ -}
data QueryRoutesResponse
  = QueryRoutesResponse'_constructor {_QueryRoutesResponse'routes :: !(Data.Vector.Vector Route),
                                      _QueryRoutesResponse'successProb :: !Prelude.Double,
                                      _QueryRoutesResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show QueryRoutesResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out QueryRoutesResponse
instance Data.ProtoLens.Field.HasField QueryRoutesResponse "routes" [Route] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesResponse'routes
           (\ x__ y__ -> x__ {_QueryRoutesResponse'routes = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField QueryRoutesResponse "vec'routes" (Data.Vector.Vector Route) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesResponse'routes
           (\ x__ y__ -> x__ {_QueryRoutesResponse'routes = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField QueryRoutesResponse "successProb" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _QueryRoutesResponse'successProb
           (\ x__ y__ -> x__ {_QueryRoutesResponse'successProb = y__}))
        Prelude.id
instance Data.ProtoLens.Message QueryRoutesResponse where
  messageName _ = Data.Text.pack "lnrpc.QueryRoutesResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3QueryRoutesResponse\DC2$\n\
      \\ACKroutes\CAN\SOH \ETX(\v2\f.lnrpc.RouteR\ACKroutes\DC2!\n\
      \\fsuccess_prob\CAN\STX \SOH(\SOHR\vsuccessProb"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        routes__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "routes"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Route)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"routes")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesResponse
        successProb__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "success_prob"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"successProb")) ::
              Data.ProtoLens.FieldDescriptor QueryRoutesResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, routes__field_descriptor),
           (Data.ProtoLens.Tag 2, successProb__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _QueryRoutesResponse'_unknownFields
        (\ x__ y__ -> x__ {_QueryRoutesResponse'_unknownFields = y__})
  defMessage
    = QueryRoutesResponse'_constructor
        {_QueryRoutesResponse'routes = Data.Vector.Generic.empty,
         _QueryRoutesResponse'successProb = Data.ProtoLens.fieldDefault,
         _QueryRoutesResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          QueryRoutesResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Route
             -> Data.ProtoLens.Encoding.Bytes.Parser QueryRoutesResponse
        loop x mutable'routes
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'routes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                            mutable'routes)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'routes") frozen'routes x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "routes"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'routes y)
                                loop x v
                        17
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "success_prob"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"successProb") y x)
                                  mutable'routes
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'routes
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'routes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                  Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'routes)
          "QueryRoutesResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _v
                   -> (Data.Monoid.<>)
                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                        ((Prelude..)
                           (\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                           Data.ProtoLens.encodeMessage _v))
                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'routes") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"successProb") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 17)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putFixed64
                            Data.ProtoLens.Encoding.Bytes.doubleToWord _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData QueryRoutesResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_QueryRoutesResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_QueryRoutesResponse'routes x__)
                (Control.DeepSeq.deepseq
                   (_QueryRoutesResponse'successProb x__) ()))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.resolutionType' @:: Lens' Resolution ResolutionType@
         * 'Proto.Lnrpc.Ln0_Fields.outcome' @:: Lens' Resolution ResolutionOutcome@
         * 'Proto.Lnrpc.Ln0_Fields.outpoint' @:: Lens' Resolution OutPoint@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'outpoint' @:: Lens' Resolution (Prelude.Maybe OutPoint)@
         * 'Proto.Lnrpc.Ln0_Fields.amountSat' @:: Lens' Resolution Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.sweepTxid' @:: Lens' Resolution Data.Text.Text@ -}
data Resolution
  = Resolution'_constructor {_Resolution'resolutionType :: !ResolutionType,
                             _Resolution'outcome :: !ResolutionOutcome,
                             _Resolution'outpoint :: !(Prelude.Maybe OutPoint),
                             _Resolution'amountSat :: !Data.Word.Word64,
                             _Resolution'sweepTxid :: !Data.Text.Text,
                             _Resolution'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Resolution where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Resolution
instance Data.ProtoLens.Field.HasField Resolution "resolutionType" ResolutionType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'resolutionType
           (\ x__ y__ -> x__ {_Resolution'resolutionType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Resolution "outcome" ResolutionOutcome where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'outcome (\ x__ y__ -> x__ {_Resolution'outcome = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Resolution "outpoint" OutPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'outpoint
           (\ x__ y__ -> x__ {_Resolution'outpoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Resolution "maybe'outpoint" (Prelude.Maybe OutPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'outpoint
           (\ x__ y__ -> x__ {_Resolution'outpoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Resolution "amountSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'amountSat
           (\ x__ y__ -> x__ {_Resolution'amountSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Resolution "sweepTxid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Resolution'sweepTxid
           (\ x__ y__ -> x__ {_Resolution'sweepTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Message Resolution where
  messageName _ = Data.Text.pack "lnrpc.Resolution"
  packedMessageDescriptor _
    = "\n\
      \\n\
      \Resolution\DC2>\n\
      \\SIresolution_type\CAN\SOH \SOH(\SO2\NAK.lnrpc.ResolutionTypeR\SOresolutionType\DC22\n\
      \\aoutcome\CAN\STX \SOH(\SO2\CAN.lnrpc.ResolutionOutcomeR\aoutcome\DC2+\n\
      \\boutpoint\CAN\ETX \SOH(\v2\SI.lnrpc.OutPointR\boutpoint\DC2\GS\n\
      \\n\
      \amount_sat\CAN\EOT \SOH(\EOTR\tamountSat\DC2\GS\n\
      \\n\
      \sweep_txid\CAN\ENQ \SOH(\tR\tsweepTxid"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        resolutionType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "resolution_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor ResolutionType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"resolutionType")) ::
              Data.ProtoLens.FieldDescriptor Resolution
        outcome__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "outcome"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor ResolutionOutcome)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"outcome")) ::
              Data.ProtoLens.FieldDescriptor Resolution
        outpoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "outpoint"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor OutPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'outpoint")) ::
              Data.ProtoLens.FieldDescriptor Resolution
        amountSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amount_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amountSat")) ::
              Data.ProtoLens.FieldDescriptor Resolution
        sweepTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sweep_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"sweepTxid")) ::
              Data.ProtoLens.FieldDescriptor Resolution
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, resolutionType__field_descriptor),
           (Data.ProtoLens.Tag 2, outcome__field_descriptor),
           (Data.ProtoLens.Tag 3, outpoint__field_descriptor),
           (Data.ProtoLens.Tag 4, amountSat__field_descriptor),
           (Data.ProtoLens.Tag 5, sweepTxid__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Resolution'_unknownFields
        (\ x__ y__ -> x__ {_Resolution'_unknownFields = y__})
  defMessage
    = Resolution'_constructor
        {_Resolution'resolutionType = Data.ProtoLens.fieldDefault,
         _Resolution'outcome = Data.ProtoLens.fieldDefault,
         _Resolution'outpoint = Prelude.Nothing,
         _Resolution'amountSat = Data.ProtoLens.fieldDefault,
         _Resolution'sweepTxid = Data.ProtoLens.fieldDefault,
         _Resolution'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Resolution -> Data.ProtoLens.Encoding.Bytes.Parser Resolution
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "resolution_type"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"resolutionType") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "outcome"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"outcome") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "outpoint"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outpoint") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amount_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amountSat") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "sweep_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"sweepTxid") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "Resolution"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"resolutionType") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
                         Prelude.fromEnum _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"outcome") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
                            Prelude.fromEnum _v))
                ((Data.Monoid.<>)
                   (case
                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'outpoint") _x
                    of
                      Prelude.Nothing -> Data.Monoid.mempty
                      (Prelude.Just _v)
                        -> (Data.Monoid.<>)
                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
                             ((Prelude..)
                                (\ bs
                                   -> (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt
                                           (Prelude.fromIntegral (Data.ByteString.length bs)))
                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                Data.ProtoLens.encodeMessage _v))
                   ((Data.Monoid.<>)
                      (let
                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"amountSat") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"sweepTxid") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
                                  ((Prelude..)
                                     (\ bs
                                        -> (Data.Monoid.<>)
                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                     Data.Text.Encoding.encodeUtf8 _v))
                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData Resolution where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Resolution'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Resolution'resolutionType x__)
                (Control.DeepSeq.deepseq
                   (_Resolution'outcome x__)
                   (Control.DeepSeq.deepseq
                      (_Resolution'outpoint x__)
                      (Control.DeepSeq.deepseq
                         (_Resolution'amountSat x__)
                         (Control.DeepSeq.deepseq (_Resolution'sweepTxid x__) ())))))
newtype ResolutionOutcome'UnrecognizedValue
  = ResolutionOutcome'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ResolutionOutcome'UnrecognizedValue
data ResolutionOutcome
  = OUTCOME_UNKNOWN |
    CLAIMED |
    UNCLAIMED |
    ABANDONED |
    FIRST_STAGE |
    TIMEOUT |
    ResolutionOutcome'Unrecognized !ResolutionOutcome'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum ResolutionOutcome where
  maybeToEnum 0 = Prelude.Just OUTCOME_UNKNOWN
  maybeToEnum 1 = Prelude.Just CLAIMED
  maybeToEnum 2 = Prelude.Just UNCLAIMED
  maybeToEnum 3 = Prelude.Just ABANDONED
  maybeToEnum 4 = Prelude.Just FIRST_STAGE
  maybeToEnum 5 = Prelude.Just TIMEOUT
  maybeToEnum k
    = Prelude.Just
        (ResolutionOutcome'Unrecognized
           (ResolutionOutcome'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum OUTCOME_UNKNOWN = "OUTCOME_UNKNOWN"
  showEnum CLAIMED = "CLAIMED"
  showEnum UNCLAIMED = "UNCLAIMED"
  showEnum ABANDONED = "ABANDONED"
  showEnum FIRST_STAGE = "FIRST_STAGE"
  showEnum TIMEOUT = "TIMEOUT"
  showEnum
    (ResolutionOutcome'Unrecognized (ResolutionOutcome'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "OUTCOME_UNKNOWN" = Prelude.Just OUTCOME_UNKNOWN
    | (Prelude.==) k "CLAIMED" = Prelude.Just CLAIMED
    | (Prelude.==) k "UNCLAIMED" = Prelude.Just UNCLAIMED
    | (Prelude.==) k "ABANDONED" = Prelude.Just ABANDONED
    | (Prelude.==) k "FIRST_STAGE" = Prelude.Just FIRST_STAGE
    | (Prelude.==) k "TIMEOUT" = Prelude.Just TIMEOUT
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded ResolutionOutcome where
  minBound = OUTCOME_UNKNOWN
  maxBound = TIMEOUT
instance Prelude.Enum ResolutionOutcome where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum ResolutionOutcome: "
              (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum OUTCOME_UNKNOWN = 0
  fromEnum CLAIMED = 1
  fromEnum UNCLAIMED = 2
  fromEnum ABANDONED = 3
  fromEnum FIRST_STAGE = 4
  fromEnum TIMEOUT = 5
  fromEnum
    (ResolutionOutcome'Unrecognized (ResolutionOutcome'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ TIMEOUT
    = Prelude.error
        "ResolutionOutcome.succ: bad argument TIMEOUT. This value would be out of bounds."
  succ OUTCOME_UNKNOWN = CLAIMED
  succ CLAIMED = UNCLAIMED
  succ UNCLAIMED = ABANDONED
  succ ABANDONED = FIRST_STAGE
  succ FIRST_STAGE = TIMEOUT
  succ (ResolutionOutcome'Unrecognized _)
    = Prelude.error
        "ResolutionOutcome.succ: bad argument: unrecognized value"
  pred OUTCOME_UNKNOWN
    = Prelude.error
        "ResolutionOutcome.pred: bad argument OUTCOME_UNKNOWN. This value would be out of bounds."
  pred CLAIMED = OUTCOME_UNKNOWN
  pred UNCLAIMED = CLAIMED
  pred ABANDONED = UNCLAIMED
  pred FIRST_STAGE = ABANDONED
  pred TIMEOUT = FIRST_STAGE
  pred (ResolutionOutcome'Unrecognized _)
    = Prelude.error
        "ResolutionOutcome.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault ResolutionOutcome where
  fieldDefault = OUTCOME_UNKNOWN
instance Control.DeepSeq.NFData ResolutionOutcome where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out ResolutionOutcome
newtype ResolutionType'UnrecognizedValue
  = ResolutionType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq,
                  Prelude.Ord,
                  Prelude.Show,
                  GHC.Generics.Generic)
instance Text.PrettyPrint.GenericPretty.Out ResolutionType'UnrecognizedValue
data ResolutionType
  = TYPE_UNKNOWN |
    ANCHOR |
    INCOMING_HTLC |
    OUTGOING_HTLC |
    COMMIT |
    ResolutionType'Unrecognized !ResolutionType'UnrecognizedValue
  deriving stock (Prelude.Show,
                  Prelude.Eq,
                  Prelude.Ord,
                  GHC.Generics.Generic)
instance Data.ProtoLens.MessageEnum ResolutionType where
  maybeToEnum 0 = Prelude.Just TYPE_UNKNOWN
  maybeToEnum 1 = Prelude.Just ANCHOR
  maybeToEnum 2 = Prelude.Just INCOMING_HTLC
  maybeToEnum 3 = Prelude.Just OUTGOING_HTLC
  maybeToEnum 4 = Prelude.Just COMMIT
  maybeToEnum k
    = Prelude.Just
        (ResolutionType'Unrecognized
           (ResolutionType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum TYPE_UNKNOWN = "TYPE_UNKNOWN"
  showEnum ANCHOR = "ANCHOR"
  showEnum INCOMING_HTLC = "INCOMING_HTLC"
  showEnum OUTGOING_HTLC = "OUTGOING_HTLC"
  showEnum COMMIT = "COMMIT"
  showEnum
    (ResolutionType'Unrecognized (ResolutionType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "TYPE_UNKNOWN" = Prelude.Just TYPE_UNKNOWN
    | (Prelude.==) k "ANCHOR" = Prelude.Just ANCHOR
    | (Prelude.==) k "INCOMING_HTLC" = Prelude.Just INCOMING_HTLC
    | (Prelude.==) k "OUTGOING_HTLC" = Prelude.Just OUTGOING_HTLC
    | (Prelude.==) k "COMMIT" = Prelude.Just COMMIT
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded ResolutionType where
  minBound = TYPE_UNKNOWN
  maxBound = COMMIT
instance Prelude.Enum ResolutionType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum ResolutionType: "
              (Prelude.show k__)))
        Prelude.id (Data.ProtoLens.maybeToEnum k__)
  fromEnum TYPE_UNKNOWN = 0
  fromEnum ANCHOR = 1
  fromEnum INCOMING_HTLC = 2
  fromEnum OUTGOING_HTLC = 3
  fromEnum COMMIT = 4
  fromEnum
    (ResolutionType'Unrecognized (ResolutionType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ COMMIT
    = Prelude.error
        "ResolutionType.succ: bad argument COMMIT. This value would be out of bounds."
  succ TYPE_UNKNOWN = ANCHOR
  succ ANCHOR = INCOMING_HTLC
  succ INCOMING_HTLC = OUTGOING_HTLC
  succ OUTGOING_HTLC = COMMIT
  succ (ResolutionType'Unrecognized _)
    = Prelude.error
        "ResolutionType.succ: bad argument: unrecognized value"
  pred TYPE_UNKNOWN
    = Prelude.error
        "ResolutionType.pred: bad argument TYPE_UNKNOWN. This value would be out of bounds."
  pred ANCHOR = TYPE_UNKNOWN
  pred INCOMING_HTLC = ANCHOR
  pred OUTGOING_HTLC = INCOMING_HTLC
  pred COMMIT = OUTGOING_HTLC
  pred (ResolutionType'Unrecognized _)
    = Prelude.error
        "ResolutionType.pred: bad argument: unrecognized value"
  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
instance Data.ProtoLens.FieldDefault ResolutionType where
  fieldDefault = TYPE_UNKNOWN
instance Control.DeepSeq.NFData ResolutionType where
  rnf x__ = Prelude.seq x__ ()
instance Text.PrettyPrint.GenericPretty.Out ResolutionType
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.totalTimeLock' @:: Lens' Route Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.totalFees' @:: Lens' Route Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.totalAmt' @:: Lens' Route Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.hops' @:: Lens' Route [Hop]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'hops' @:: Lens' Route (Data.Vector.Vector Hop)@
         * 'Proto.Lnrpc.Ln0_Fields.totalFeesMsat' @:: Lens' Route Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.totalAmtMsat' @:: Lens' Route Data.Int.Int64@ -}
data Route
  = Route'_constructor {_Route'totalTimeLock :: !Data.Word.Word32,
                        _Route'totalFees :: !Data.Int.Int64,
                        _Route'totalAmt :: !Data.Int.Int64,
                        _Route'hops :: !(Data.Vector.Vector Hop),
                        _Route'totalFeesMsat :: !Data.Int.Int64,
                        _Route'totalAmtMsat :: !Data.Int.Int64,
                        _Route'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show Route where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out Route
instance Data.ProtoLens.Field.HasField Route "totalTimeLock" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'totalTimeLock
           (\ x__ y__ -> x__ {_Route'totalTimeLock = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Route "totalFees" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'totalFees (\ x__ y__ -> x__ {_Route'totalFees = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Route "totalAmt" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'totalAmt (\ x__ y__ -> x__ {_Route'totalAmt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Route "hops" [Hop] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'hops (\ x__ y__ -> x__ {_Route'hops = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Route "vec'hops" (Data.Vector.Vector Hop) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'hops (\ x__ y__ -> x__ {_Route'hops = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Route "totalFeesMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'totalFeesMsat
           (\ x__ y__ -> x__ {_Route'totalFeesMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Route "totalAmtMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Route'totalAmtMsat (\ x__ y__ -> x__ {_Route'totalAmtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Message Route where
  messageName _ = Data.Text.pack "lnrpc.Route"
  packedMessageDescriptor _
    = "\n\
      \\ENQRoute\DC2&\n\
      \\SItotal_time_lock\CAN\SOH \SOH(\rR\rtotalTimeLock\DC2!\n\
      \\n\
      \total_fees\CAN\STX \SOH(\ETXR\ttotalFeesB\STX\CAN\SOH\DC2\US\n\
      \\ttotal_amt\CAN\ETX \SOH(\ETXR\btotalAmtB\STX\CAN\SOH\DC2\RS\n\
      \\EOThops\CAN\EOT \ETX(\v2\n\
      \.lnrpc.HopR\EOThops\DC2&\n\
      \\SItotal_fees_msat\CAN\ENQ \SOH(\ETXR\rtotalFeesMsat\DC2$\n\
      \\SOtotal_amt_msat\CAN\ACK \SOH(\ETXR\ftotalAmtMsat"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        totalTimeLock__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_time_lock"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalTimeLock")) ::
              Data.ProtoLens.FieldDescriptor Route
        totalFees__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_fees"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalFees")) ::
              Data.ProtoLens.FieldDescriptor Route
        totalAmt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_amt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalAmt")) ::
              Data.ProtoLens.FieldDescriptor Route
        hops__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "hops"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Hop)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"hops")) ::
              Data.ProtoLens.FieldDescriptor Route
        totalFeesMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_fees_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalFeesMsat")) ::
              Data.ProtoLens.FieldDescriptor Route
        totalAmtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalAmtMsat")) ::
              Data.ProtoLens.FieldDescriptor Route
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, totalTimeLock__field_descriptor),
           (Data.ProtoLens.Tag 2, totalFees__field_descriptor),
           (Data.ProtoLens.Tag 3, totalAmt__field_descriptor),
           (Data.ProtoLens.Tag 4, hops__field_descriptor),
           (Data.ProtoLens.Tag 5, totalFeesMsat__field_descriptor),
           (Data.ProtoLens.Tag 6, totalAmtMsat__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Route'_unknownFields
        (\ x__ y__ -> x__ {_Route'_unknownFields = y__})
  defMessage
    = Route'_constructor
        {_Route'totalTimeLock = Data.ProtoLens.fieldDefault,
         _Route'totalFees = Data.ProtoLens.fieldDefault,
         _Route'totalAmt = Data.ProtoLens.fieldDefault,
         _Route'hops = Data.Vector.Generic.empty,
         _Route'totalFeesMsat = Data.ProtoLens.fieldDefault,
         _Route'totalAmtMsat = Data.ProtoLens.fieldDefault,
         _Route'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Route
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Hop
             -> Data.ProtoLens.Encoding.Bytes.Parser Route
        loop x mutable'hops
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'hops <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'hops)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'hops") frozen'hops x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_time_lock"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalTimeLock") y x)
                                  mutable'hops
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_fees"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"totalFees") y x)
                                  mutable'hops
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_amt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"totalAmt") y x)
                                  mutable'hops
                        34
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "hops"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'hops y)
                                loop x v
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_fees_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalFeesMsat") y x)
                                  mutable'hops
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_amt_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalAmtMsat") y x)
                                  mutable'hops
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'hops
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'hops <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'hops)
          "Route"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"totalTimeLock") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"totalFees") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"totalAmt") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                         (\ _v
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                 ((Prelude..)
                                    (\ bs
                                       -> (Data.Monoid.<>)
                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                    Data.ProtoLens.encodeMessage _v))
                         (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'hops") _x))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"totalFeesMsat") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                     _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view (Data.ProtoLens.Field.field @"totalAmtMsat") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     ((Prelude..)
                                        Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral
                                        _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData Route where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Route'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Route'totalTimeLock x__)
                (Control.DeepSeq.deepseq
                   (_Route'totalFees x__)
                   (Control.DeepSeq.deepseq
                      (_Route'totalAmt x__)
                      (Control.DeepSeq.deepseq
                         (_Route'hops x__)
                         (Control.DeepSeq.deepseq
                            (_Route'totalFeesMsat x__)
                            (Control.DeepSeq.deepseq (_Route'totalAmtMsat x__) ()))))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.hopHints' @:: Lens' RouteHint [HopHint]@
         * 'Proto.Lnrpc.Ln0_Fields.vec'hopHints' @:: Lens' RouteHint (Data.Vector.Vector HopHint)@ -}
data RouteHint
  = RouteHint'_constructor {_RouteHint'hopHints :: !(Data.Vector.Vector HopHint),
                            _RouteHint'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show RouteHint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out RouteHint
instance Data.ProtoLens.Field.HasField RouteHint "hopHints" [HopHint] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RouteHint'hopHints (\ x__ y__ -> x__ {_RouteHint'hopHints = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField RouteHint "vec'hopHints" (Data.Vector.Vector HopHint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RouteHint'hopHints (\ x__ y__ -> x__ {_RouteHint'hopHints = y__}))
        Prelude.id
instance Data.ProtoLens.Message RouteHint where
  messageName _ = Data.Text.pack "lnrpc.RouteHint"
  packedMessageDescriptor _
    = "\n\
      \\tRouteHint\DC2+\n\
      \\thop_hints\CAN\SOH \ETX(\v2\SO.lnrpc.HopHintR\bhopHints"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        hopHints__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "hop_hints"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor HopHint)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"hopHints")) ::
              Data.ProtoLens.FieldDescriptor RouteHint
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, hopHints__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _RouteHint'_unknownFields
        (\ x__ y__ -> x__ {_RouteHint'_unknownFields = y__})
  defMessage
    = RouteHint'_constructor
        {_RouteHint'hopHints = Data.Vector.Generic.empty,
         _RouteHint'_unknownFields = []}
  parseMessage
    = let
        loop ::
          RouteHint
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld HopHint
             -> Data.ProtoLens.Encoding.Bytes.Parser RouteHint
        loop x mutable'hopHints
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'hopHints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                              mutable'hopHints)
                      (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
                           (Lens.Family2.set
                              (Data.ProtoLens.Field.field @"vec'hopHints") frozen'hopHints x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "hop_hints"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'hopHints y)
                                loop x v
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'hopHints
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'hopHints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                    Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'hopHints)
          "RouteHint"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _v
                   -> (Data.Monoid.<>)
                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                        ((Prelude..)
                           (\ bs
                              -> (Data.Monoid.<>)
                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                      (Prelude.fromIntegral (Data.ByteString.length bs)))
                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                           Data.ProtoLens.encodeMessage _v))
                (Lens.Family2.view
                   (Data.ProtoLens.Field.field @"vec'hopHints") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData RouteHint where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_RouteHint'_unknownFields x__)
             (Control.DeepSeq.deepseq (_RouteHint'hopHints x__) ())
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.timeLockDelta' @:: Lens' RoutingPolicy Data.Word.Word32@
         * 'Proto.Lnrpc.Ln0_Fields.minHtlc' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.feeBaseMsat' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.feeRateMilliMsat' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.disabled' @:: Lens' RoutingPolicy Prelude.Bool@
         * 'Proto.Lnrpc.Ln0_Fields.maxHtlcMsat' @:: Lens' RoutingPolicy Data.Word.Word64@
         * 'Proto.Lnrpc.Ln0_Fields.lastUpdate' @:: Lens' RoutingPolicy Data.Word.Word32@ -}
data RoutingPolicy
  = RoutingPolicy'_constructor {_RoutingPolicy'timeLockDelta :: !Data.Word.Word32,
                                _RoutingPolicy'minHtlc :: !Data.Int.Int64,
                                _RoutingPolicy'feeBaseMsat :: !Data.Int.Int64,
                                _RoutingPolicy'feeRateMilliMsat :: !Data.Int.Int64,
                                _RoutingPolicy'disabled :: !Prelude.Bool,
                                _RoutingPolicy'maxHtlcMsat :: !Data.Word.Word64,
                                _RoutingPolicy'lastUpdate :: !Data.Word.Word32,
                                _RoutingPolicy'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show RoutingPolicy where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out RoutingPolicy
instance Data.ProtoLens.Field.HasField RoutingPolicy "timeLockDelta" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'timeLockDelta
           (\ x__ y__ -> x__ {_RoutingPolicy'timeLockDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "minHtlc" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'minHtlc
           (\ x__ y__ -> x__ {_RoutingPolicy'minHtlc = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "feeBaseMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'feeBaseMsat
           (\ x__ y__ -> x__ {_RoutingPolicy'feeBaseMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "feeRateMilliMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'feeRateMilliMsat
           (\ x__ y__ -> x__ {_RoutingPolicy'feeRateMilliMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "disabled" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'disabled
           (\ x__ y__ -> x__ {_RoutingPolicy'disabled = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "maxHtlcMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'maxHtlcMsat
           (\ x__ y__ -> x__ {_RoutingPolicy'maxHtlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RoutingPolicy "lastUpdate" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RoutingPolicy'lastUpdate
           (\ x__ y__ -> x__ {_RoutingPolicy'lastUpdate = y__}))
        Prelude.id
instance Data.ProtoLens.Message RoutingPolicy where
  messageName _ = Data.Text.pack "lnrpc.RoutingPolicy"
  packedMessageDescriptor _
    = "\n\
      \\rRoutingPolicy\DC2&\n\
      \\SItime_lock_delta\CAN\SOH \SOH(\rR\rtimeLockDelta\DC2\EM\n\
      \\bmin_htlc\CAN\STX \SOH(\ETXR\aminHtlc\DC2\"\n\
      \\rfee_base_msat\CAN\ETX \SOH(\ETXR\vfeeBaseMsat\DC2-\n\
      \\DC3fee_rate_milli_msat\CAN\EOT \SOH(\ETXR\DLEfeeRateMilliMsat\DC2\SUB\n\
      \\bdisabled\CAN\ENQ \SOH(\bR\bdisabled\DC2\"\n\
      \\rmax_htlc_msat\CAN\ACK \SOH(\EOTR\vmaxHtlcMsat\DC2\US\n\
      \\vlast_update\CAN\a \SOH(\rR\n\
      \lastUpdate"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        timeLockDelta__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "time_lock_delta"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timeLockDelta")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        minHtlc__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"minHtlc")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        feeBaseMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_base_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feeBaseMsat")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        feeRateMilliMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_rate_milli_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feeRateMilliMsat")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        disabled__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "disabled"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"disabled")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        maxHtlcMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_htlc_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxHtlcMsat")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
        lastUpdate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_update"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastUpdate")) ::
              Data.ProtoLens.FieldDescriptor RoutingPolicy
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, timeLockDelta__field_descriptor),
           (Data.ProtoLens.Tag 2, minHtlc__field_descriptor),
           (Data.ProtoLens.Tag 3, feeBaseMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, feeRateMilliMsat__field_descriptor),
           (Data.ProtoLens.Tag 5, disabled__field_descriptor),
           (Data.ProtoLens.Tag 6, maxHtlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 7, lastUpdate__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _RoutingPolicy'_unknownFields
        (\ x__ y__ -> x__ {_RoutingPolicy'_unknownFields = y__})
  defMessage
    = RoutingPolicy'_constructor
        {_RoutingPolicy'timeLockDelta = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'minHtlc = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'feeBaseMsat = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'feeRateMilliMsat = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'disabled = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'maxHtlcMsat = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'lastUpdate = Data.ProtoLens.fieldDefault,
         _RoutingPolicy'_unknownFields = []}
  parseMessage
    = let
        loop ::
          RoutingPolicy -> Data.ProtoLens.Encoding.Bytes.Parser RoutingPolicy
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "time_lock_delta"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"timeLockDelta") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_htlc"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlc") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_base_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feeBaseMsat") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_rate_milli_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"feeRateMilliMsat") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "disabled"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"disabled") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "max_htlc_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"maxHtlcMsat") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "last_update"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lastUpdate") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "RoutingPolicy"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"timeLockDelta") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"minHtlc") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"feeBaseMsat") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (let
                         _v
                           = Lens.Family2.view
                               (Data.ProtoLens.Field.field @"feeRateMilliMsat") _x
                       in
                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                             Data.Monoid.mempty
                         else
                             (Data.Monoid.<>)
                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"disabled") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
                                  ((Prelude..)
                                     Data.ProtoLens.Encoding.Bytes.putVarInt
                                     (\ b -> if b then 1 else 0) _v))
                         ((Data.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view (Data.ProtoLens.Field.field @"maxHtlcMsat") _x
                             in
                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                   Data.Monoid.mempty
                               else
                                   (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"lastUpdate") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (Data.Monoid.<>)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)
                                        ((Prelude..)
                                           Data.ProtoLens.Encoding.Bytes.putVarInt
                                           Prelude.fromIntegral _v))
                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
instance Control.DeepSeq.NFData RoutingPolicy where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_RoutingPolicy'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_RoutingPolicy'timeLockDelta x__)
                (Control.DeepSeq.deepseq
                   (_RoutingPolicy'minHtlc x__)
                   (Control.DeepSeq.deepseq
                      (_RoutingPolicy'feeBaseMsat x__)
                      (Control.DeepSeq.deepseq
                         (_RoutingPolicy'feeRateMilliMsat x__)
                         (Control.DeepSeq.deepseq
                            (_RoutingPolicy'disabled x__)
                            (Control.DeepSeq.deepseq
                               (_RoutingPolicy'maxHtlcMsat x__)
                               (Control.DeepSeq.deepseq (_RoutingPolicy'lastUpdate x__) ())))))))
{- | Fields :
      -}
data StopRequest
  = StopRequest'_constructor {_StopRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show StopRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out StopRequest
instance Data.ProtoLens.Message StopRequest where
  messageName _ = Data.Text.pack "lnrpc.StopRequest"
  packedMessageDescriptor _
    = "\n\
      \\vStopRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _StopRequest'_unknownFields
        (\ x__ y__ -> x__ {_StopRequest'_unknownFields = y__})
  defMessage
    = StopRequest'_constructor {_StopRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          StopRequest -> Data.ProtoLens.Encoding.Bytes.Parser StopRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "StopRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData StopRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq (_StopRequest'_unknownFields x__) ()
{- | Fields :
      -}
data StopResponse
  = StopResponse'_constructor {_StopResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show StopResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out StopResponse
instance Data.ProtoLens.Message StopResponse where
  messageName _ = Data.Text.pack "lnrpc.StopResponse"
  packedMessageDescriptor _
    = "\n\
      \\fStopResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _StopResponse'_unknownFields
        (\ x__ y__ -> x__ {_StopResponse'_unknownFields = y__})
  defMessage
    = StopResponse'_constructor {_StopResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          StopResponse -> Data.ProtoLens.Encoding.Bytes.Parser StopResponse
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "StopResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData StopResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq (_StopResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.confirmedBalance' @:: Lens' WalletAccountBalance Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.unconfirmedBalance' @:: Lens' WalletAccountBalance Data.Int.Int64@ -}
data WalletAccountBalance
  = WalletAccountBalance'_constructor {_WalletAccountBalance'confirmedBalance :: !Data.Int.Int64,
                                       _WalletAccountBalance'unconfirmedBalance :: !Data.Int.Int64,
                                       _WalletAccountBalance'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show WalletAccountBalance where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out WalletAccountBalance
instance Data.ProtoLens.Field.HasField WalletAccountBalance "confirmedBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletAccountBalance'confirmedBalance
           (\ x__ y__ -> x__ {_WalletAccountBalance'confirmedBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField WalletAccountBalance "unconfirmedBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletAccountBalance'unconfirmedBalance
           (\ x__ y__
              -> x__ {_WalletAccountBalance'unconfirmedBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Message WalletAccountBalance where
  messageName _ = Data.Text.pack "lnrpc.WalletAccountBalance"
  packedMessageDescriptor _
    = "\n\
      \\DC4WalletAccountBalance\DC2+\n\
      \\DC1confirmed_balance\CAN\SOH \SOH(\ETXR\DLEconfirmedBalance\DC2/\n\
      \\DC3unconfirmed_balance\CAN\STX \SOH(\ETXR\DC2unconfirmedBalance"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        confirmedBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "confirmed_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"confirmedBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletAccountBalance
        unconfirmedBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "unconfirmed_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"unconfirmedBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletAccountBalance
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, confirmedBalance__field_descriptor),
           (Data.ProtoLens.Tag 2, unconfirmedBalance__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _WalletAccountBalance'_unknownFields
        (\ x__ y__ -> x__ {_WalletAccountBalance'_unknownFields = y__})
  defMessage
    = WalletAccountBalance'_constructor
        {_WalletAccountBalance'confirmedBalance = Data.ProtoLens.fieldDefault,
         _WalletAccountBalance'unconfirmedBalance = Data.ProtoLens.fieldDefault,
         _WalletAccountBalance'_unknownFields = []}
  parseMessage
    = let
        loop ::
          WalletAccountBalance
          -> Data.ProtoLens.Encoding.Bytes.Parser WalletAccountBalance
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "confirmed_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"confirmedBalance") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "unconfirmed_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"unconfirmedBalance") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "WalletAccountBalance"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"confirmedBalance") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"unconfirmedBalance") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData WalletAccountBalance where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_WalletAccountBalance'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_WalletAccountBalance'confirmedBalance x__)
                (Control.DeepSeq.deepseq
                   (_WalletAccountBalance'unconfirmedBalance x__) ()))
{- | Fields :
      -}
data WalletBalanceRequest
  = WalletBalanceRequest'_constructor {_WalletBalanceRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show WalletBalanceRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out WalletBalanceRequest
instance Data.ProtoLens.Message WalletBalanceRequest where
  messageName _ = Data.Text.pack "lnrpc.WalletBalanceRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC4WalletBalanceRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _WalletBalanceRequest'_unknownFields
        (\ x__ y__ -> x__ {_WalletBalanceRequest'_unknownFields = y__})
  defMessage
    = WalletBalanceRequest'_constructor
        {_WalletBalanceRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          WalletBalanceRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser WalletBalanceRequest
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of {
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x) }
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "WalletBalanceRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData WalletBalanceRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_WalletBalanceRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.totalBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.confirmedBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.unconfirmedBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.Lnrpc.Ln0_Fields.accountBalance' @:: Lens' WalletBalanceResponse (Data.Map.Map Data.Text.Text WalletAccountBalance)@ -}
data WalletBalanceResponse
  = WalletBalanceResponse'_constructor {_WalletBalanceResponse'totalBalance :: !Data.Int.Int64,
                                        _WalletBalanceResponse'confirmedBalance :: !Data.Int.Int64,
                                        _WalletBalanceResponse'unconfirmedBalance :: !Data.Int.Int64,
                                        _WalletBalanceResponse'accountBalance :: !(Data.Map.Map Data.Text.Text WalletAccountBalance),
                                        _WalletBalanceResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show WalletBalanceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out WalletBalanceResponse
instance Data.ProtoLens.Field.HasField WalletBalanceResponse "totalBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'totalBalance
           (\ x__ y__ -> x__ {_WalletBalanceResponse'totalBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField WalletBalanceResponse "confirmedBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'confirmedBalance
           (\ x__ y__ -> x__ {_WalletBalanceResponse'confirmedBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField WalletBalanceResponse "unconfirmedBalance" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'unconfirmedBalance
           (\ x__ y__
              -> x__ {_WalletBalanceResponse'unconfirmedBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField WalletBalanceResponse "accountBalance" (Data.Map.Map Data.Text.Text WalletAccountBalance) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'accountBalance
           (\ x__ y__ -> x__ {_WalletBalanceResponse'accountBalance = y__}))
        Prelude.id
instance Data.ProtoLens.Message WalletBalanceResponse where
  messageName _ = Data.Text.pack "lnrpc.WalletBalanceResponse"
  packedMessageDescriptor _
    = "\n\
      \\NAKWalletBalanceResponse\DC2#\n\
      \\rtotal_balance\CAN\SOH \SOH(\ETXR\ftotalBalance\DC2+\n\
      \\DC1confirmed_balance\CAN\STX \SOH(\ETXR\DLEconfirmedBalance\DC2/\n\
      \\DC3unconfirmed_balance\CAN\ETX \SOH(\ETXR\DC2unconfirmedBalance\DC2Y\n\
      \\SIaccount_balance\CAN\EOT \ETX(\v20.lnrpc.WalletBalanceResponse.AccountBalanceEntryR\SOaccountBalance\SUB^\n\
      \\DC3AccountBalanceEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC21\n\
      \\ENQvalue\CAN\STX \SOH(\v2\ESC.lnrpc.WalletAccountBalanceR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        totalBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "total_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"totalBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse
        confirmedBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "confirmed_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"confirmedBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse
        unconfirmedBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "unconfirmed_balance"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"unconfirmedBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse
        accountBalance__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "account_balance"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor WalletBalanceResponse'AccountBalanceEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"accountBalance")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, totalBalance__field_descriptor),
           (Data.ProtoLens.Tag 2, confirmedBalance__field_descriptor),
           (Data.ProtoLens.Tag 3, unconfirmedBalance__field_descriptor),
           (Data.ProtoLens.Tag 4, accountBalance__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _WalletBalanceResponse'_unknownFields
        (\ x__ y__ -> x__ {_WalletBalanceResponse'_unknownFields = y__})
  defMessage
    = WalletBalanceResponse'_constructor
        {_WalletBalanceResponse'totalBalance = Data.ProtoLens.fieldDefault,
         _WalletBalanceResponse'confirmedBalance = Data.ProtoLens.fieldDefault,
         _WalletBalanceResponse'unconfirmedBalance = Data.ProtoLens.fieldDefault,
         _WalletBalanceResponse'accountBalance = Data.Map.empty,
         _WalletBalanceResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          WalletBalanceResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser WalletBalanceResponse
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "total_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"totalBalance") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "confirmed_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"confirmedBalance") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "unconfirmed_balance"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"unconfirmedBalance") y x)
                        34
                          -> do !(entry :: WalletBalanceResponse'AccountBalanceEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                           (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                               Data.ProtoLens.Encoding.Bytes.isolate
                                                                                                 (Prelude.fromIntegral
                                                                                                    len)
                                                                                                 Data.ProtoLens.parseMessage)
                                                                                           "account_balance"
                                (let
                                   key = Lens.Family2.view (Data.ProtoLens.Field.field @"key") entry
                                   value
                                     = Lens.Family2.view (Data.ProtoLens.Field.field @"value") entry
                                 in
                                   loop
                                     (Lens.Family2.over
                                        (Data.ProtoLens.Field.field @"accountBalance")
                                        (\ !t -> Data.Map.insert key value t) x))
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "WalletBalanceResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"totalBalance") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                      ((Prelude..)
                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"confirmedBalance") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                ((Data.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view
                            (Data.ProtoLens.Field.field @"unconfirmedBalance") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                   ((Data.Monoid.<>)
                      (Data.Monoid.mconcat
                         (Prelude.map
                            (\ _v
                               -> (Data.Monoid.<>)
                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
                                    ((Prelude..)
                                       (\ bs
                                          -> (Data.Monoid.<>)
                                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                  (Prelude.fromIntegral
                                                     (Data.ByteString.length bs)))
                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                                       Data.ProtoLens.encodeMessage
                                       (Lens.Family2.set
                                          (Data.ProtoLens.Field.field @"key") (Prelude.fst _v)
                                          (Lens.Family2.set
                                             (Data.ProtoLens.Field.field @"value") (Prelude.snd _v)
                                             (Data.ProtoLens.defMessage ::
                                                WalletBalanceResponse'AccountBalanceEntry)))))
                            (Data.Map.toList
                               (Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"accountBalance") _x))))
                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData WalletBalanceResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_WalletBalanceResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_WalletBalanceResponse'totalBalance x__)
                (Control.DeepSeq.deepseq
                   (_WalletBalanceResponse'confirmedBalance x__)
                   (Control.DeepSeq.deepseq
                      (_WalletBalanceResponse'unconfirmedBalance x__)
                      (Control.DeepSeq.deepseq
                         (_WalletBalanceResponse'accountBalance x__) ()))))
{- | Fields :
     
         * 'Proto.Lnrpc.Ln0_Fields.key' @:: Lens' WalletBalanceResponse'AccountBalanceEntry Data.Text.Text@
         * 'Proto.Lnrpc.Ln0_Fields.value' @:: Lens' WalletBalanceResponse'AccountBalanceEntry WalletAccountBalance@
         * 'Proto.Lnrpc.Ln0_Fields.maybe'value' @:: Lens' WalletBalanceResponse'AccountBalanceEntry (Prelude.Maybe WalletAccountBalance)@ -}
data WalletBalanceResponse'AccountBalanceEntry
  = WalletBalanceResponse'AccountBalanceEntry'_constructor {_WalletBalanceResponse'AccountBalanceEntry'key :: !Data.Text.Text,
                                                            _WalletBalanceResponse'AccountBalanceEntry'value :: !(Prelude.Maybe WalletAccountBalance),
                                                            _WalletBalanceResponse'AccountBalanceEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord, GHC.Generics.Generic)
instance Prelude.Show WalletBalanceResponse'AccountBalanceEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Text.PrettyPrint.GenericPretty.Out WalletBalanceResponse'AccountBalanceEntry
instance Data.ProtoLens.Field.HasField WalletBalanceResponse'AccountBalanceEntry "key" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'AccountBalanceEntry'key
           (\ x__ y__
              -> x__ {_WalletBalanceResponse'AccountBalanceEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField WalletBalanceResponse'AccountBalanceEntry "value" WalletAccountBalance where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'AccountBalanceEntry'value
           (\ x__ y__
              -> x__ {_WalletBalanceResponse'AccountBalanceEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField WalletBalanceResponse'AccountBalanceEntry "maybe'value" (Prelude.Maybe WalletAccountBalance) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _WalletBalanceResponse'AccountBalanceEntry'value
           (\ x__ y__
              -> x__ {_WalletBalanceResponse'AccountBalanceEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message WalletBalanceResponse'AccountBalanceEntry where
  messageName _
    = Data.Text.pack "lnrpc.WalletBalanceResponse.AccountBalanceEntry"
  packedMessageDescriptor _
    = "\n\
      \\DC3AccountBalanceEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC21\n\
      \\ENQvalue\CAN\STX \SOH(\v2\ESC.lnrpc.WalletAccountBalanceR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        key__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "key"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"key")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse'AccountBalanceEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor WalletAccountBalance)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'value")) ::
              Data.ProtoLens.FieldDescriptor WalletBalanceResponse'AccountBalanceEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _WalletBalanceResponse'AccountBalanceEntry'_unknownFields
        (\ x__ y__
           -> x__
                {_WalletBalanceResponse'AccountBalanceEntry'_unknownFields = y__})
  defMessage
    = WalletBalanceResponse'AccountBalanceEntry'_constructor
        {_WalletBalanceResponse'AccountBalanceEntry'key = Data.ProtoLens.fieldDefault,
         _WalletBalanceResponse'AccountBalanceEntry'value = Prelude.Nothing,
         _WalletBalanceResponse'AccountBalanceEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          WalletBalanceResponse'AccountBalanceEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser WalletBalanceResponse'AccountBalanceEntry
        loop x
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do (let missing = []
                       in
                         if Prelude.null missing then
                             Prelude.return ()
                         else
                             Prelude.fail
                               ((Prelude.++)
                                  "Missing required fields: "
                                  (Prelude.show (missing :: [Prelude.String]))))
                      Prelude.return
                        (Lens.Family2.over
                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        10
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                       Data.ProtoLens.Encoding.Bytes.getBytes
                                                         (Prelude.fromIntegral len)
                                           Data.ProtoLens.Encoding.Bytes.runEither
                                             (case Data.Text.Encoding.decodeUtf8' value of
                                                (Prelude.Left err)
                                                  -> Prelude.Left (Prelude.show err)
                                                (Prelude.Right r) -> Prelude.Right r))
                                       "key"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"key") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "value"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do loop Data.ProtoLens.defMessage) "AccountBalanceEntry"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"key") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
                      ((Prelude..)
                         (\ bs
                            -> (Data.Monoid.<>)
                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                         Data.Text.Encoding.encodeUtf8 _v))
             ((Data.Monoid.<>)
                (case
                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'value") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just _v)
                     -> (Data.Monoid.<>)
                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
                          ((Prelude..)
                             (\ bs
                                -> (Data.Monoid.<>)
                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
                             Data.ProtoLens.encodeMessage _v))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData WalletBalanceResponse'AccountBalanceEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_WalletBalanceResponse'AccountBalanceEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_WalletBalanceResponse'AccountBalanceEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_WalletBalanceResponse'AccountBalanceEntry'value x__) ()))
packedFileDescriptor :: Data.ByteString.ByteString
packedFileDescriptor
  = "\n\
    \\SIlnrpc/ln0.proto\DC2\ENQlnrpc\"Y\n\
    \\aFeature\DC2\DC2\n\
    \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\US\n\
    \\vis_required\CAN\ETX \SOH(\bR\n\
    \isRequired\DC2\EM\n\
    \\bis_known\CAN\EOT \SOH(\bR\aisKnown\"8\n\
    \\tRouteHint\DC2+\n\
    \\thop_hints\CAN\SOH \ETX(\v2\SO.lnrpc.HopHintR\bhopHints\"\207\SOH\n\
    \\aHopHint\DC2\ETB\n\
    \\anode_id\CAN\SOH \SOH(\tR\ACKnodeId\DC2\ESC\n\
    \\achan_id\CAN\STX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\"\n\
    \\rfee_base_msat\CAN\ETX \SOH(\rR\vfeeBaseMsat\DC2>\n\
    \\ESCfee_proportional_millionths\CAN\EOT \SOH(\rR\EMfeeProportionalMillionths\DC2*\n\
    \\DC1cltv_expiry_delta\CAN\ENQ \SOH(\rR\SIcltvExpiryDelta\"\157\SOH\n\
    \\fChannelPoint\DC2.\n\
    \\DC2funding_txid_bytes\CAN\SOH \SOH(\fH\NULR\DLEfundingTxidBytes\DC2*\n\
    \\DLEfunding_txid_str\CAN\STX \SOH(\tH\NULR\SOfundingTxidStr\DC2!\n\
    \\foutput_index\CAN\ETX \SOH(\rR\voutputIndexB\SO\n\
    \\ffunding_txid\"g\n\
    \\bOutPoint\DC2\GS\n\
    \\n\
    \txid_bytes\CAN\SOH \SOH(\fR\ttxidBytes\DC2\EM\n\
    \\btxid_str\CAN\STX \SOH(\tR\atxidStr\DC2!\n\
    \\foutput_index\CAN\ETX \SOH(\rR\voutputIndex\"\132\STX\n\
    \\DC2ChannelConstraints\DC2\ESC\n\
    \\tcsv_delay\CAN\SOH \SOH(\rR\bcsvDelay\DC2(\n\
    \\DLEchan_reserve_sat\CAN\STX \SOH(\EOTR\SOchanReserveSat\DC2$\n\
    \\SOdust_limit_sat\CAN\ETX \SOH(\EOTR\fdustLimitSat\DC2/\n\
    \\DC4max_pending_amt_msat\CAN\EOT \SOH(\EOTR\DC1maxPendingAmtMsat\DC2\"\n\
    \\rmin_htlc_msat\CAN\ENQ \SOH(\EOTR\vminHtlcMsat\DC2,\n\
    \\DC2max_accepted_htlcs\CAN\ACK \SOH(\rR\DLEmaxAcceptedHtlcs\"\215\t\n\
    \\aChannel\DC2\SYN\n\
    \\ACKactive\CAN\SOH \SOH(\bR\ACKactive\DC2#\n\
    \\rremote_pubkey\CAN\STX \SOH(\tR\fremotePubkey\DC2#\n\
    \\rchannel_point\CAN\ETX \SOH(\tR\fchannelPoint\DC2\ESC\n\
    \\achan_id\CAN\EOT \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\SUB\n\
    \\bcapacity\CAN\ENQ \SOH(\ETXR\bcapacity\DC2#\n\
    \\rlocal_balance\CAN\ACK \SOH(\ETXR\flocalBalance\DC2%\n\
    \\SOremote_balance\CAN\a \SOH(\ETXR\rremoteBalance\DC2\GS\n\
    \\n\
    \commit_fee\CAN\b \SOH(\ETXR\tcommitFee\DC2#\n\
    \\rcommit_weight\CAN\t \SOH(\ETXR\fcommitWeight\DC2\FS\n\
    \\n\
    \fee_per_kw\CAN\n\
    \ \SOH(\ETXR\bfeePerKw\DC2+\n\
    \\DC1unsettled_balance\CAN\v \SOH(\ETXR\DLEunsettledBalance\DC2.\n\
    \\DC3total_satoshis_sent\CAN\f \SOH(\ETXR\DC1totalSatoshisSent\DC26\n\
    \\ETBtotal_satoshis_received\CAN\r \SOH(\ETXR\NAKtotalSatoshisReceived\DC2\US\n\
    \\vnum_updates\CAN\SO \SOH(\EOTR\n\
    \numUpdates\DC20\n\
    \\rpending_htlcs\CAN\SI \ETX(\v2\v.lnrpc.HTLCR\fpendingHtlcs\DC2\US\n\
    \\tcsv_delay\CAN\DLE \SOH(\rR\bcsvDelayB\STX\CAN\SOH\DC2\CAN\n\
    \\aprivate\CAN\DC1 \SOH(\bR\aprivate\DC2\FS\n\
    \\tinitiator\CAN\DC2 \SOH(\bR\tinitiator\DC2*\n\
    \\DC1chan_status_flags\CAN\DC3 \SOH(\tR\SIchanStatusFlags\DC27\n\
    \\SYNlocal_chan_reserve_sat\CAN\DC4 \SOH(\ETXR\DC3localChanReserveSatB\STX\CAN\SOH\DC29\n\
    \\ETBremote_chan_reserve_sat\CAN\NAK \SOH(\ETXR\DC4remoteChanReserveSatB\STX\CAN\SOH\DC2.\n\
    \\DC1static_remote_key\CAN\SYN \SOH(\bR\SIstaticRemoteKeyB\STX\CAN\SOH\DC2>\n\
    \\SIcommitment_type\CAN\SUB \SOH(\SO2\NAK.lnrpc.CommitmentTypeR\SOcommitmentType\DC2\SUB\n\
    \\blifetime\CAN\ETB \SOH(\ETXR\blifetime\DC2\SYN\n\
    \\ACKuptime\CAN\CAN \SOH(\ETXR\ACKuptime\DC2#\n\
    \\rclose_address\CAN\EM \SOH(\tR\fcloseAddress\DC2&\n\
    \\SIpush_amount_sat\CAN\ESC \SOH(\EOTR\rpushAmountSat\DC2\US\n\
    \\vthaw_height\CAN\FS \SOH(\rR\n\
    \thawHeight\DC2F\n\
    \\DC1local_constraints\CAN\GS \SOH(\v2\EM.lnrpc.ChannelConstraintsR\DLElocalConstraints\DC2H\n\
    \\DC2remote_constraints\CAN\RS \SOH(\v2\EM.lnrpc.ChannelConstraintsR\DC1remoteConstraints\"\216\ENQ\n\
    \\DC3ChannelCloseSummary\DC2#\n\
    \\rchannel_point\CAN\SOH \SOH(\tR\fchannelPoint\DC2\ESC\n\
    \\achan_id\CAN\STX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\GS\n\
    \\n\
    \chain_hash\CAN\ETX \SOH(\tR\tchainHash\DC2&\n\
    \\SIclosing_tx_hash\CAN\EOT \SOH(\tR\rclosingTxHash\DC2#\n\
    \\rremote_pubkey\CAN\ENQ \SOH(\tR\fremotePubkey\DC2\SUB\n\
    \\bcapacity\CAN\ACK \SOH(\ETXR\bcapacity\DC2!\n\
    \\fclose_height\CAN\a \SOH(\rR\vcloseHeight\DC2'\n\
    \\SIsettled_balance\CAN\b \SOH(\ETXR\SOsettledBalance\DC2.\n\
    \\DC3time_locked_balance\CAN\t \SOH(\ETXR\DC1timeLockedBalance\DC2E\n\
    \\n\
    \close_type\CAN\n\
    \ \SOH(\SO2&.lnrpc.ChannelCloseSummary.ClosureTypeR\tcloseType\DC27\n\
    \\SOopen_initiator\CAN\v \SOH(\SO2\DLE.lnrpc.InitiatorR\ropenInitiator\DC29\n\
    \\SIclose_initiator\CAN\f \SOH(\SO2\DLE.lnrpc.InitiatorR\SOcloseInitiator\DC23\n\
    \\vresolutions\CAN\r \ETX(\v2\DC1.lnrpc.ResolutionR\vresolutions\"\138\SOH\n\
    \\vClosureType\DC2\NAK\n\
    \\DC1COOPERATIVE_CLOSE\DLE\NUL\DC2\NAK\n\
    \\DC1LOCAL_FORCE_CLOSE\DLE\SOH\DC2\SYN\n\
    \\DC2REMOTE_FORCE_CLOSE\DLE\STX\DC2\DLE\n\
    \\fBREACH_CLOSE\DLE\ETX\DC2\DC4\n\
    \\DLEFUNDING_CANCELED\DLE\EOT\DC2\r\n\
    \\tABANDONED\DLE\ENQ\"F\n\
    \\rPendingUpdate\DC2\DC2\n\
    \\EOTtxid\CAN\SOH \SOH(\fR\EOTtxid\DC2!\n\
    \\foutput_index\CAN\STX \SOH(\rR\voutputIndex\"\235\SOH\n\
    \\n\
    \Resolution\DC2>\n\
    \\SIresolution_type\CAN\SOH \SOH(\SO2\NAK.lnrpc.ResolutionTypeR\SOresolutionType\DC22\n\
    \\aoutcome\CAN\STX \SOH(\SO2\CAN.lnrpc.ResolutionOutcomeR\aoutcome\DC2+\n\
    \\boutpoint\CAN\ETX \SOH(\v2\SI.lnrpc.OutPointR\boutpoint\DC2\GS\n\
    \\n\
    \amount_sat\CAN\EOT \SOH(\EOTR\tamountSat\DC2\GS\n\
    \\n\
    \sweep_txid\CAN\ENQ \SOH(\tR\tsweepTxid\"h\n\
    \\bFeeLimit\DC2\SYN\n\
    \\ENQfixed\CAN\SOH \SOH(\ETXH\NULR\ENQfixed\DC2\US\n\
    \\n\
    \fixed_msat\CAN\ETX \SOH(\ETXH\NULR\tfixedMsat\DC2\SUB\n\
    \\apercent\CAN\STX \SOH(\ETXH\NULR\apercentB\a\n\
    \\ENQlimit\"\134\STX\n\
    \\EOTHTLC\DC2\SUB\n\
    \\bincoming\CAN\SOH \SOH(\bR\bincoming\DC2\SYN\n\
    \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\ESC\n\
    \\thash_lock\CAN\ETX \SOH(\fR\bhashLock\DC2+\n\
    \\DC1expiration_height\CAN\EOT \SOH(\rR\DLEexpirationHeight\DC2\GS\n\
    \\n\
    \htlc_index\CAN\ENQ \SOH(\EOTR\thtlcIndex\DC2-\n\
    \\DC2forwarding_channel\CAN\ACK \SOH(\EOTR\DC1forwardingChannel\DC22\n\
    \\NAKforwarding_htlc_index\CAN\a \SOH(\EOTR\DC3forwardingHtlcIndex\"H\n\
    \\n\
    \KeyLocator\DC2\GS\n\
    \\n\
    \key_family\CAN\SOH \SOH(\ENQR\tkeyFamily\DC2\ESC\n\
    \\tkey_index\CAN\STX \SOH(\ENQR\bkeyIndex\"_\n\
    \\rKeyDescriptor\DC2\"\n\
    \\rraw_key_bytes\CAN\SOH \SOH(\fR\vrawKeyBytes\DC2*\n\
    \\akey_loc\CAN\STX \SOH(\v2\DC1.lnrpc.KeyLocatorR\ACKkeyLoc\"\240\SOH\n\
    \\rChanPointShim\DC2\DLE\n\
    \\ETXamt\CAN\SOH \SOH(\ETXR\ETXamt\DC22\n\
    \\n\
    \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC21\n\
    \\tlocal_key\CAN\ETX \SOH(\v2\DC4.lnrpc.KeyDescriptorR\blocalKey\DC2\GS\n\
    \\n\
    \remote_key\CAN\EOT \SOH(\fR\tremoteKey\DC2&\n\
    \\SIpending_chan_id\CAN\ENQ \SOH(\fR\rpendingChanId\DC2\US\n\
    \\vthaw_height\CAN\ACK \SOH(\rR\n\
    \thawHeight\"n\n\
    \\bPsbtShim\DC2&\n\
    \\SIpending_chan_id\CAN\SOH \SOH(\fR\rpendingChanId\DC2\ESC\n\
    \\tbase_psbt\CAN\STX \SOH(\fR\bbasePsbt\DC2\GS\n\
    \\n\
    \no_publish\CAN\ETX \SOH(\bR\tnoPublish\"\133\SOH\n\
    \\vFundingShim\DC2>\n\
    \\SIchan_point_shim\CAN\SOH \SOH(\v2\DC4.lnrpc.ChanPointShimH\NULR\rchanPointShim\DC2.\n\
    \\tpsbt_shim\CAN\STX \SOH(\v2\SI.lnrpc.PsbtShimH\NULR\bpsbtShimB\ACK\n\
    \\EOTshim\";\n\
    \\DC1FundingShimCancel\DC2&\n\
    \\SIpending_chan_id\CAN\SOH \SOH(\fR\rpendingChanId\"\129\SOH\n\
    \\DC1FundingPsbtVerify\DC2\US\n\
    \\vfunded_psbt\CAN\SOH \SOH(\fR\n\
    \fundedPsbt\DC2&\n\
    \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2#\n\
    \\rskip_finalize\CAN\ETX \SOH(\bR\fskipFinalize\"\128\SOH\n\
    \\DC3FundingPsbtFinalize\DC2\US\n\
    \\vsigned_psbt\CAN\SOH \SOH(\fR\n\
    \signedPsbt\DC2&\n\
    \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2 \n\
    \\ffinal_raw_tx\CAN\ETX \SOH(\fR\n\
    \finalRawTx\"\153\STX\n\
    \\DC4FundingTransitionMsg\DC29\n\
    \\rshim_register\CAN\SOH \SOH(\v2\DC2.lnrpc.FundingShimH\NULR\fshimRegister\DC2;\n\
    \\vshim_cancel\CAN\STX \SOH(\v2\CAN.lnrpc.FundingShimCancelH\NULR\n\
    \shimCancel\DC2;\n\
    \\vpsbt_verify\CAN\ETX \SOH(\v2\CAN.lnrpc.FundingPsbtVerifyH\NULR\n\
    \psbtVerify\DC2A\n\
    \\rpsbt_finalize\CAN\EOT \SOH(\v2\SUB.lnrpc.FundingPsbtFinalizeH\NULR\fpsbtFinalizeB\t\n\
    \\atrigger\"\SYN\n\
    \\DC4FundingStateStepResp\"\204\SOH\n\
    \\vPendingHTLC\DC2\SUB\n\
    \\bincoming\CAN\SOH \SOH(\bR\bincoming\DC2\SYN\n\
    \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\SUB\n\
    \\boutpoint\CAN\ETX \SOH(\tR\boutpoint\DC2'\n\
    \\SImaturity_height\CAN\EOT \SOH(\rR\SOmaturityHeight\DC2.\n\
    \\DC3blocks_til_maturity\CAN\ENQ \SOH(\ENQR\DC1blocksTilMaturity\DC2\DC4\n\
    \\ENQstage\CAN\ACK \SOH(\rR\ENQstage\"\CAN\n\
    \\SYNPendingChannelsRequest\"\181\DC2\n\
    \\ETBPendingChannelsResponse\DC2.\n\
    \\DC3total_limbo_balance\CAN\SOH \SOH(\ETXR\DC1totalLimboBalance\DC2e\n\
    \\NAKpending_open_channels\CAN\STX \ETX(\v21.lnrpc.PendingChannelsResponse.PendingOpenChannelR\DC3pendingOpenChannels\DC2j\n\
    \\CANpending_closing_channels\CAN\ETX \ETX(\v2,.lnrpc.PendingChannelsResponse.ClosedChannelR\SYNpendingClosingChannelsB\STX\CAN\SOH\DC2v\n\
    \\RSpending_force_closing_channels\CAN\EOT \ETX(\v21.lnrpc.PendingChannelsResponse.ForceClosedChannelR\ESCpendingForceClosingChannels\DC2h\n\
    \\SYNwaiting_close_channels\CAN\ENQ \ETX(\v22.lnrpc.PendingChannelsResponse.WaitingCloseChannelR\DC4waitingCloseChannels\SUB\217\ETX\n\
    \\SOPendingChannel\DC2&\n\
    \\SIremote_node_pub\CAN\SOH \SOH(\tR\rremoteNodePub\DC2#\n\
    \\rchannel_point\CAN\STX \SOH(\tR\fchannelPoint\DC2\SUB\n\
    \\bcapacity\CAN\ETX \SOH(\ETXR\bcapacity\DC2#\n\
    \\rlocal_balance\CAN\EOT \SOH(\ETXR\flocalBalance\DC2%\n\
    \\SOremote_balance\CAN\ENQ \SOH(\ETXR\rremoteBalance\DC23\n\
    \\SYNlocal_chan_reserve_sat\CAN\ACK \SOH(\ETXR\DC3localChanReserveSat\DC25\n\
    \\ETBremote_chan_reserve_sat\CAN\a \SOH(\ETXR\DC4remoteChanReserveSat\DC2.\n\
    \\tinitiator\CAN\b \SOH(\SO2\DLE.lnrpc.InitiatorR\tinitiator\DC2>\n\
    \\SIcommitment_type\CAN\t \SOH(\SO2\NAK.lnrpc.CommitmentTypeR\SOcommitmentType\DC26\n\
    \\ETBnum_forwarding_packages\CAN\n\
    \ \SOH(\ETXR\NAKnumForwardingPackages\SUB\240\SOH\n\
    \\DC2PendingOpenChannel\DC2G\n\
    \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2/\n\
    \\DC3confirmation_height\CAN\STX \SOH(\rR\DC2confirmationHeight\DC2\GS\n\
    \\n\
    \commit_fee\CAN\EOT \SOH(\ETXR\tcommitFee\DC2#\n\
    \\rcommit_weight\CAN\ENQ \SOH(\ETXR\fcommitWeight\DC2\FS\n\
    \\n\
    \fee_per_kw\CAN\ACK \SOH(\ETXR\bfeePerKw\SUB\209\SOH\n\
    \\DC3WaitingCloseChannel\DC2G\n\
    \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2#\n\
    \\rlimbo_balance\CAN\STX \SOH(\ETXR\flimboBalance\DC2L\n\
    \\vcommitments\CAN\ETX \SOH(\v2*.lnrpc.PendingChannelsResponse.CommitmentsR\vcommitments\SUB\163\STX\n\
    \\vCommitments\DC2\GS\n\
    \\n\
    \local_txid\CAN\SOH \SOH(\tR\tlocalTxid\DC2\US\n\
    \\vremote_txid\CAN\STX \SOH(\tR\n\
    \remoteTxid\DC2.\n\
    \\DC3remote_pending_txid\CAN\ETX \SOH(\tR\DC1remotePendingTxid\DC2/\n\
    \\DC4local_commit_fee_sat\CAN\EOT \SOH(\EOTR\DC1localCommitFeeSat\DC21\n\
    \\NAKremote_commit_fee_sat\CAN\ENQ \SOH(\EOTR\DC2remoteCommitFeeSat\DC2@\n\
    \\GSremote_pending_commit_fee_sat\CAN\ACK \SOH(\EOTR\EMremotePendingCommitFeeSat\SUB{\n\
    \\rClosedChannel\DC2G\n\
    \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
    \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid\SUB\238\ETX\n\
    \\DC2ForceClosedChannel\DC2G\n\
    \\achannel\CAN\SOH \SOH(\v2-.lnrpc.PendingChannelsResponse.PendingChannelR\achannel\DC2!\n\
    \\fclosing_txid\CAN\STX \SOH(\tR\vclosingTxid\DC2#\n\
    \\rlimbo_balance\CAN\ETX \SOH(\ETXR\flimboBalance\DC2'\n\
    \\SImaturity_height\CAN\EOT \SOH(\rR\SOmaturityHeight\DC2.\n\
    \\DC3blocks_til_maturity\CAN\ENQ \SOH(\ENQR\DC1blocksTilMaturity\DC2+\n\
    \\DC1recovered_balance\CAN\ACK \SOH(\ETXR\DLErecoveredBalance\DC27\n\
    \\rpending_htlcs\CAN\b \ETX(\v2\DC2.lnrpc.PendingHTLCR\fpendingHtlcs\DC2U\n\
    \\ACKanchor\CAN\t \SOH(\SO2=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorStateR\ACKanchor\"1\n\
    \\vAnchorState\DC2\t\n\
    \\ENQLIMBO\DLE\NUL\DC2\r\n\
    \\tRECOVERED\DLE\SOH\DC2\b\n\
    \\EOTLOST\DLE\STX\"\SUB\n\
    \\CANChannelEventSubscription\"\255\EOT\n\
    \\DC2ChannelEventUpdate\DC23\n\
    \\fopen_channel\CAN\SOH \SOH(\v2\SO.lnrpc.ChannelH\NULR\vopenChannel\DC2C\n\
    \\SOclosed_channel\CAN\STX \SOH(\v2\SUB.lnrpc.ChannelCloseSummaryH\NULR\rclosedChannel\DC2<\n\
    \\SOactive_channel\CAN\ETX \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\ractiveChannel\DC2@\n\
    \\DLEinactive_channel\CAN\EOT \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\SIinactiveChannel\DC2H\n\
    \\DC4pending_open_channel\CAN\ACK \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\DC2pendingOpenChannel\DC2K\n\
    \\SYNfully_resolved_channel\CAN\a \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\DC4fullyResolvedChannel\DC28\n\
    \\EOTtype\CAN\ENQ \SOH(\SO2$.lnrpc.ChannelEventUpdate.UpdateTypeR\EOTtype\"\146\SOH\n\
    \\n\
    \UpdateType\DC2\DLE\n\
    \\fOPEN_CHANNEL\DLE\NUL\DC2\DC2\n\
    \\SOCLOSED_CHANNEL\DLE\SOH\DC2\DC2\n\
    \\SOACTIVE_CHANNEL\DLE\STX\DC2\DC4\n\
    \\DLEINACTIVE_CHANNEL\DLE\ETX\DC2\CAN\n\
    \\DC4PENDING_OPEN_CHANNEL\DLE\EOT\DC2\SUB\n\
    \\SYNFULLY_RESOLVED_CHANNEL\DLE\ENQB\t\n\
    \\achannel\"t\n\
    \\DC4WalletAccountBalance\DC2+\n\
    \\DC1confirmed_balance\CAN\SOH \SOH(\ETXR\DLEconfirmedBalance\DC2/\n\
    \\DC3unconfirmed_balance\CAN\STX \SOH(\ETXR\DC2unconfirmedBalance\"\SYN\n\
    \\DC4WalletBalanceRequest\"\213\STX\n\
    \\NAKWalletBalanceResponse\DC2#\n\
    \\rtotal_balance\CAN\SOH \SOH(\ETXR\ftotalBalance\DC2+\n\
    \\DC1confirmed_balance\CAN\STX \SOH(\ETXR\DLEconfirmedBalance\DC2/\n\
    \\DC3unconfirmed_balance\CAN\ETX \SOH(\ETXR\DC2unconfirmedBalance\DC2Y\n\
    \\SIaccount_balance\CAN\EOT \ETX(\v20.lnrpc.WalletBalanceResponse.AccountBalanceEntryR\SOaccountBalance\SUB^\n\
    \\DC3AccountBalanceEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC21\n\
    \\ENQvalue\CAN\STX \SOH(\v2\ESC.lnrpc.WalletAccountBalanceR\ENQvalue:\STX8\SOH\".\n\
    \\ACKAmount\DC2\DLE\n\
    \\ETXsat\CAN\SOH \SOH(\EOTR\ETXsat\DC2\DC2\n\
    \\EOTmsat\CAN\STX \SOH(\EOTR\EOTmsat\"\ETB\n\
    \\NAKChannelBalanceRequest\"\128\EOT\n\
    \\SYNChannelBalanceResponse\DC2\FS\n\
    \\abalance\CAN\SOH \SOH(\ETXR\abalanceB\STX\CAN\SOH\DC24\n\
    \\DC4pending_open_balance\CAN\STX \SOH(\ETXR\DC2pendingOpenBalanceB\STX\CAN\SOH\DC22\n\
    \\rlocal_balance\CAN\ETX \SOH(\v2\r.lnrpc.AmountR\flocalBalance\DC24\n\
    \\SOremote_balance\CAN\EOT \SOH(\v2\r.lnrpc.AmountR\rremoteBalance\DC2E\n\
    \\ETBunsettled_local_balance\CAN\ENQ \SOH(\v2\r.lnrpc.AmountR\NAKunsettledLocalBalance\DC2G\n\
    \\CANunsettled_remote_balance\CAN\ACK \SOH(\v2\r.lnrpc.AmountR\SYNunsettledRemoteBalance\DC2J\n\
    \\SUBpending_open_local_balance\CAN\a \SOH(\v2\r.lnrpc.AmountR\ETBpendingOpenLocalBalance\DC2L\n\
    \\ESCpending_open_remote_balance\CAN\b \SOH(\v2\r.lnrpc.AmountR\CANpendingOpenRemoteBalance\"\174\ACK\n\
    \\DC2QueryRoutesRequest\DC2\ETB\n\
    \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2\DLE\n\
    \\ETXamt\CAN\STX \SOH(\ETXR\ETXamt\DC2\EM\n\
    \\bamt_msat\CAN\f \SOH(\ETXR\aamtMsat\DC2(\n\
    \\DLEfinal_cltv_delta\CAN\EOT \SOH(\ENQR\SOfinalCltvDelta\DC2,\n\
    \\tfee_limit\CAN\ENQ \SOH(\v2\SI.lnrpc.FeeLimitR\bfeeLimit\DC2#\n\
    \\rignored_nodes\CAN\ACK \ETX(\fR\fignoredNodes\DC2;\n\
    \\rignored_edges\CAN\a \ETX(\v2\DC2.lnrpc.EdgeLocatorR\fignoredEdgesB\STX\CAN\SOH\DC2$\n\
    \\SOsource_pub_key\CAN\b \SOH(\tR\fsourcePubKey\DC2.\n\
    \\DC3use_mission_control\CAN\t \SOH(\bR\DC1useMissionControl\DC24\n\
    \\rignored_pairs\CAN\n\
    \ \ETX(\v2\SI.lnrpc.NodePairR\fignoredPairs\DC2\GS\n\
    \\n\
    \cltv_limit\CAN\v \SOH(\rR\tcltvLimit\DC2`\n\
    \\DC3dest_custom_records\CAN\r \ETX(\v20.lnrpc.QueryRoutesRequest.DestCustomRecordsEntryR\DC1destCustomRecords\DC2,\n\
    \\DLEoutgoing_chan_id\CAN\SO \SOH(\EOTR\SOoutgoingChanIdB\STX0\SOH\DC2&\n\
    \\SIlast_hop_pubkey\CAN\SI \SOH(\fR\rlastHopPubkey\DC21\n\
    \\vroute_hints\CAN\DLE \ETX(\v2\DLE.lnrpc.RouteHintR\n\
    \routeHints\DC26\n\
    \\rdest_features\CAN\DC1 \ETX(\SO2\DC1.lnrpc.FeatureBitR\fdestFeatures\SUBD\n\
    \\SYNDestCustomRecordsEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOHJ\EOT\b\ETX\DLE\EOT\".\n\
    \\bNodePair\DC2\DC2\n\
    \\EOTfrom\CAN\SOH \SOH(\fR\EOTfrom\DC2\SO\n\
    \\STXto\CAN\STX \SOH(\fR\STXto\"]\n\
    \\vEdgeLocator\DC2!\n\
    \\n\
    \channel_id\CAN\SOH \SOH(\EOTR\tchannelIdB\STX0\SOH\DC2+\n\
    \\DC1direction_reverse\CAN\STX \SOH(\bR\DLEdirectionReverse\"^\n\
    \\DC3QueryRoutesResponse\DC2$\n\
    \\ACKroutes\CAN\SOH \ETX(\v2\f.lnrpc.RouteR\ACKroutes\DC2!\n\
    \\fsuccess_prob\CAN\STX \SOH(\SOHR\vsuccessProb\"\145\EOT\n\
    \\ETXHop\DC2\ESC\n\
    \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2'\n\
    \\rchan_capacity\CAN\STX \SOH(\ETXR\fchanCapacityB\STX\CAN\SOH\DC2(\n\
    \\SOamt_to_forward\CAN\ETX \SOH(\ETXR\famtToForwardB\STX\CAN\SOH\DC2\DC4\n\
    \\ETXfee\CAN\EOT \SOH(\ETXR\ETXfeeB\STX\CAN\SOH\DC2\SYN\n\
    \\ACKexpiry\CAN\ENQ \SOH(\rR\ACKexpiry\DC2-\n\
    \\DC3amt_to_forward_msat\CAN\ACK \SOH(\ETXR\DLEamtToForwardMsat\DC2\EM\n\
    \\bfee_msat\CAN\a \SOH(\ETXR\afeeMsat\DC2\ETB\n\
    \\apub_key\CAN\b \SOH(\tR\ACKpubKey\DC2\US\n\
    \\vtlv_payload\CAN\t \SOH(\bR\n\
    \tlvPayload\DC2/\n\
    \\n\
    \mpp_record\CAN\n\
    \ \SOH(\v2\DLE.lnrpc.MPPRecordR\tmppRecord\DC2/\n\
    \\n\
    \amp_record\CAN\f \SOH(\v2\DLE.lnrpc.AMPRecordR\tampRecord\DC2D\n\
    \\SOcustom_records\CAN\v \ETX(\v2\GS.lnrpc.Hop.CustomRecordsEntryR\rcustomRecords\SUB@\n\
    \\DC2CustomRecordsEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH\"T\n\
    \\tMPPRecord\DC2!\n\
    \\fpayment_addr\CAN\v \SOH(\fR\vpaymentAddr\DC2$\n\
    \\SOtotal_amt_msat\CAN\n\
    \ \SOH(\ETXR\ftotalAmtMsat\"b\n\
    \\tAMPRecord\DC2\GS\n\
    \\n\
    \root_share\CAN\SOH \SOH(\fR\trootShare\DC2\NAK\n\
    \\ACKset_id\CAN\STX \SOH(\fR\ENQsetId\DC2\US\n\
    \\vchild_index\CAN\ETX \SOH(\rR\n\
    \childIndex\"\225\SOH\n\
    \\ENQRoute\DC2&\n\
    \\SItotal_time_lock\CAN\SOH \SOH(\rR\rtotalTimeLock\DC2!\n\
    \\n\
    \total_fees\CAN\STX \SOH(\ETXR\ttotalFeesB\STX\CAN\SOH\DC2\US\n\
    \\ttotal_amt\CAN\ETX \SOH(\ETXR\btotalAmtB\STX\CAN\SOH\DC2\RS\n\
    \\EOThops\CAN\EOT \ETX(\v2\n\
    \.lnrpc.HopR\EOThops\DC2&\n\
    \\SItotal_fees_msat\CAN\ENQ \SOH(\ETXR\rtotalFeesMsat\DC2$\n\
    \\SOtotal_amt_msat\CAN\ACK \SOH(\ETXR\ftotalAmtMsat\"U\n\
    \\SINodeInfoRequest\DC2\ETB\n\
    \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2)\n\
    \\DLEinclude_channels\CAN\STX \SOH(\bR\SIincludeChannels\"\174\SOH\n\
    \\bNodeInfo\DC2(\n\
    \\EOTnode\CAN\SOH \SOH(\v2\DC4.lnrpc.LightningNodeR\EOTnode\DC2!\n\
    \\fnum_channels\CAN\STX \SOH(\rR\vnumChannels\DC2%\n\
    \\SOtotal_capacity\CAN\ETX \SOH(\ETXR\rtotalCapacity\DC2.\n\
    \\bchannels\CAN\EOT \ETX(\v2\DC2.lnrpc.ChannelEdgeR\bchannels\"\180\STX\n\
    \\rLightningNode\DC2\US\n\
    \\vlast_update\CAN\SOH \SOH(\rR\n\
    \lastUpdate\DC2\ETB\n\
    \\apub_key\CAN\STX \SOH(\tR\ACKpubKey\DC2\DC4\n\
    \\ENQalias\CAN\ETX \SOH(\tR\ENQalias\DC20\n\
    \\taddresses\CAN\EOT \ETX(\v2\DC2.lnrpc.NodeAddressR\taddresses\DC2\DC4\n\
    \\ENQcolor\CAN\ENQ \SOH(\tR\ENQcolor\DC2>\n\
    \\bfeatures\CAN\ACK \ETX(\v2\".lnrpc.LightningNode.FeaturesEntryR\bfeatures\SUBK\n\
    \\rFeaturesEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
    \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH\";\n\
    \\vNodeAddress\DC2\CAN\n\
    \\anetwork\CAN\SOH \SOH(\tR\anetwork\DC2\DC2\n\
    \\EOTaddr\CAN\STX \SOH(\tR\EOTaddr\"\134\STX\n\
    \\rRoutingPolicy\DC2&\n\
    \\SItime_lock_delta\CAN\SOH \SOH(\rR\rtimeLockDelta\DC2\EM\n\
    \\bmin_htlc\CAN\STX \SOH(\ETXR\aminHtlc\DC2\"\n\
    \\rfee_base_msat\CAN\ETX \SOH(\ETXR\vfeeBaseMsat\DC2-\n\
    \\DC3fee_rate_milli_msat\CAN\EOT \SOH(\ETXR\DLEfeeRateMilliMsat\DC2\SUB\n\
    \\bdisabled\CAN\ENQ \SOH(\bR\bdisabled\DC2\"\n\
    \\rmax_htlc_msat\CAN\ACK \SOH(\EOTR\vmaxHtlcMsat\DC2\US\n\
    \\vlast_update\CAN\a \SOH(\rR\n\
    \lastUpdate\"\188\STX\n\
    \\vChannelEdge\DC2!\n\
    \\n\
    \channel_id\CAN\SOH \SOH(\EOTR\tchannelIdB\STX0\SOH\DC2\GS\n\
    \\n\
    \chan_point\CAN\STX \SOH(\tR\tchanPoint\DC2#\n\
    \\vlast_update\CAN\ETX \SOH(\rR\n\
    \lastUpdateB\STX\CAN\SOH\DC2\ESC\n\
    \\tnode1_pub\CAN\EOT \SOH(\tR\bnode1Pub\DC2\ESC\n\
    \\tnode2_pub\CAN\ENQ \SOH(\tR\bnode2Pub\DC2\SUB\n\
    \\bcapacity\CAN\ACK \SOH(\ETXR\bcapacity\DC27\n\
    \\fnode1_policy\CAN\a \SOH(\v2\DC4.lnrpc.RoutingPolicyR\vnode1Policy\DC27\n\
    \\fnode2_policy\CAN\b \SOH(\v2\DC4.lnrpc.RoutingPolicyR\vnode2Policy\"F\n\
    \\DC3ChannelGraphRequest\DC2/\n\
    \\DC3include_unannounced\CAN\SOH \SOH(\bR\DC2includeUnannounced\"d\n\
    \\fChannelGraph\DC2*\n\
    \\ENQnodes\CAN\SOH \ETX(\v2\DC4.lnrpc.LightningNodeR\ENQnodes\DC2(\n\
    \\ENQedges\CAN\STX \ETX(\v2\DC2.lnrpc.ChannelEdgeR\ENQedges\"A\n\
    \\DC2NodeMetricsRequest\DC2+\n\
    \\ENQtypes\CAN\SOH \ETX(\SO2\NAK.lnrpc.NodeMetricTypeR\ENQtypes\"\225\SOH\n\
    \\DC3NodeMetricsResponse\DC2l\n\
    \\SYNbetweenness_centrality\CAN\SOH \ETX(\v25.lnrpc.NodeMetricsResponse.BetweennessCentralityEntryR\NAKbetweennessCentrality\SUB\\\n\
    \\SUBBetweennessCentralityEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2(\n\
    \\ENQvalue\CAN\STX \SOH(\v2\DC2.lnrpc.FloatMetricR\ENQvalue:\STX8\SOH\"N\n\
    \\vFloatMetric\DC2\DC4\n\
    \\ENQvalue\CAN\SOH \SOH(\SOHR\ENQvalue\DC2)\n\
    \\DLEnormalized_value\CAN\STX \SOH(\SOHR\SInormalizedValue\".\n\
    \\SIChanInfoRequest\DC2\ESC\n\
    \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\"\DC4\n\
    \\DC2NetworkInfoRequest\"\213\ETX\n\
    \\vNetworkInfo\DC2%\n\
    \\SOgraph_diameter\CAN\SOH \SOH(\rR\rgraphDiameter\DC2$\n\
    \\SOavg_out_degree\CAN\STX \SOH(\SOHR\favgOutDegree\DC2$\n\
    \\SOmax_out_degree\CAN\ETX \SOH(\rR\fmaxOutDegree\DC2\ESC\n\
    \\tnum_nodes\CAN\EOT \SOH(\rR\bnumNodes\DC2!\n\
    \\fnum_channels\CAN\ENQ \SOH(\rR\vnumChannels\DC24\n\
    \\SYNtotal_network_capacity\CAN\ACK \SOH(\ETXR\DC4totalNetworkCapacity\DC2(\n\
    \\DLEavg_channel_size\CAN\a \SOH(\SOHR\SOavgChannelSize\DC2(\n\
    \\DLEmin_channel_size\CAN\b \SOH(\ETXR\SOminChannelSize\DC2(\n\
    \\DLEmax_channel_size\CAN\t \SOH(\ETXR\SOmaxChannelSize\DC25\n\
    \\ETBmedian_channel_size_sat\CAN\n\
    \ \SOH(\ETXR\DC4medianChannelSizeSat\DC2(\n\
    \\DLEnum_zombie_chans\CAN\v \SOH(\EOTR\SOnumZombieChans\"\r\n\
    \\vStopRequest\"\SO\n\
    \\fStopResponse\"\ESC\n\
    \\EMGraphTopologySubscription\"\205\SOH\n\
    \\DC3GraphTopologyUpdate\DC24\n\
    \\fnode_updates\CAN\SOH \ETX(\v2\DC1.lnrpc.NodeUpdateR\vnodeUpdates\DC2A\n\
    \\SIchannel_updates\CAN\STX \ETX(\v2\CAN.lnrpc.ChannelEdgeUpdateR\SOchannelUpdates\DC2=\n\
    \\fclosed_chans\CAN\ETX \ETX(\v2\SUB.lnrpc.ClosedChannelUpdateR\vclosedChans\"\239\STX\n\
    \\n\
    \NodeUpdate\DC2 \n\
    \\taddresses\CAN\SOH \ETX(\tR\taddressesB\STX\CAN\SOH\DC2!\n\
    \\fidentity_key\CAN\STX \SOH(\tR\videntityKey\DC2+\n\
    \\SIglobal_features\CAN\ETX \SOH(\fR\SOglobalFeaturesB\STX\CAN\SOH\DC2\DC4\n\
    \\ENQalias\CAN\EOT \SOH(\tR\ENQalias\DC2\DC4\n\
    \\ENQcolor\CAN\ENQ \SOH(\tR\ENQcolor\DC29\n\
    \\SOnode_addresses\CAN\a \ETX(\v2\DC2.lnrpc.NodeAddressR\rnodeAddresses\DC2;\n\
    \\bfeatures\CAN\ACK \ETX(\v2\US.lnrpc.NodeUpdate.FeaturesEntryR\bfeatures\SUBK\n\
    \\rFeaturesEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\rR\ETXkey\DC2$\n\
    \\ENQvalue\CAN\STX \SOH(\v2\SO.lnrpc.FeatureR\ENQvalue:\STX8\SOH\"\145\STX\n\
    \\DC1ChannelEdgeUpdate\DC2\ESC\n\
    \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC22\n\
    \\n\
    \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC2\SUB\n\
    \\bcapacity\CAN\ETX \SOH(\ETXR\bcapacity\DC2;\n\
    \\SOrouting_policy\CAN\EOT \SOH(\v2\DC4.lnrpc.RoutingPolicyR\rroutingPolicy\DC2)\n\
    \\DLEadvertising_node\CAN\ENQ \SOH(\tR\SIadvertisingNode\DC2'\n\
    \\SIconnecting_node\CAN\ACK \SOH(\tR\SOconnectingNode\"\167\SOH\n\
    \\DC3ClosedChannelUpdate\DC2\ESC\n\
    \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\SUB\n\
    \\bcapacity\CAN\STX \SOH(\ETXR\bcapacity\DC2#\n\
    \\rclosed_height\CAN\ETX \SOH(\rR\fclosedHeight\DC22\n\
    \\n\
    \chan_point\CAN\EOT \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint*\207\EOT\n\
    \\n\
    \FeatureBit\DC2\CAN\n\
    \\DC4DATALOSS_PROTECT_REQ\DLE\NUL\DC2\CAN\n\
    \\DC4DATALOSS_PROTECT_OPT\DLE\SOH\DC2\ETB\n\
    \\DC3INITIAL_ROUING_SYNC\DLE\ETX\DC2\US\n\
    \\ESCUPFRONT_SHUTDOWN_SCRIPT_REQ\DLE\EOT\DC2\US\n\
    \\ESCUPFRONT_SHUTDOWN_SCRIPT_OPT\DLE\ENQ\DC2\SYN\n\
    \\DC2GOSSIP_QUERIES_REQ\DLE\ACK\DC2\SYN\n\
    \\DC2GOSSIP_QUERIES_OPT\DLE\a\DC2\DC1\n\
    \\rTLV_ONION_REQ\DLE\b\DC2\DC1\n\
    \\rTLV_ONION_OPT\DLE\t\DC2\SUB\n\
    \\SYNEXT_GOSSIP_QUERIES_REQ\DLE\n\
    \\DC2\SUB\n\
    \\SYNEXT_GOSSIP_QUERIES_OPT\DLE\v\DC2\EM\n\
    \\NAKSTATIC_REMOTE_KEY_REQ\DLE\f\DC2\EM\n\
    \\NAKSTATIC_REMOTE_KEY_OPT\DLE\r\DC2\DC4\n\
    \\DLEPAYMENT_ADDR_REQ\DLE\SO\DC2\DC4\n\
    \\DLEPAYMENT_ADDR_OPT\DLE\SI\DC2\v\n\
    \\aMPP_REQ\DLE\DLE\DC2\v\n\
    \\aMPP_OPT\DLE\DC1\DC2\SYN\n\
    \\DC2WUMBO_CHANNELS_REQ\DLE\DC2\DC2\SYN\n\
    \\DC2WUMBO_CHANNELS_OPT\DLE\DC3\DC2\SI\n\
    \\vANCHORS_REQ\DLE\DC4\DC2\SI\n\
    \\vANCHORS_OPT\DLE\NAK\DC2\GS\n\
    \\EMANCHORS_ZERO_FEE_HTLC_REQ\DLE\SYN\DC2\GS\n\
    \\EMANCHORS_ZERO_FEE_HTLC_OPT\DLE\ETB\DC2\v\n\
    \\aAMP_REQ\DLE\RS\DC2\v\n\
    \\aAMP_OPT\DLE\US*a\n\
    \\tInitiator\DC2\NAK\n\
    \\DC1INITIATOR_UNKNOWN\DLE\NUL\DC2\DC3\n\
    \\SIINITIATOR_LOCAL\DLE\SOH\DC2\DC4\n\
    \\DLEINITIATOR_REMOTE\DLE\STX\DC2\DC2\n\
    \\SOINITIATOR_BOTH\DLE\ETX*x\n\
    \\SOCommitmentType\DC2\ESC\n\
    \\ETBUNKNOWN_COMMITMENT_TYPE\DLE\NUL\DC2\n\
    \\n\
    \\ACKLEGACY\DLE\SOH\DC2\NAK\n\
    \\DC1STATIC_REMOTE_KEY\DLE\STX\DC2\v\n\
    \\aANCHORS\DLE\ETX\DC2\EM\n\
    \\NAKSCRIPT_ENFORCED_LEASE\DLE\EOT*`\n\
    \\SOResolutionType\DC2\DLE\n\
    \\fTYPE_UNKNOWN\DLE\NUL\DC2\n\
    \\n\
    \\ACKANCHOR\DLE\SOH\DC2\DC1\n\
    \\rINCOMING_HTLC\DLE\STX\DC2\DC1\n\
    \\rOUTGOING_HTLC\DLE\ETX\DC2\n\
    \\n\
    \\ACKCOMMIT\DLE\EOT*q\n\
    \\DC1ResolutionOutcome\DC2\DC3\n\
    \\SIOUTCOME_UNKNOWN\DLE\NUL\DC2\v\n\
    \\aCLAIMED\DLE\SOH\DC2\r\n\
    \\tUNCLAIMED\DLE\STX\DC2\r\n\
    \\tABANDONED\DLE\ETX\DC2\SI\n\
    \\vFIRST_STAGE\DLE\EOT\DC2\v\n\
    \\aTIMEOUT\DLE\ENQ*9\n\
    \\SONodeMetricType\DC2\v\n\
    \\aUNKNOWN\DLE\NUL\DC2\SUB\n\
    \\SYNBETWEENNESS_CENTRALITY\DLE\SOHB'Z%github.com/lightningnetwork/lnd/lnrpcJ\232\133\ETX\n\
    \\a\DC2\ENQ\NUL\NUL\178\v\SOH\n\
    \\b\n\
    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\
    \\b\n\
    \\SOH\STX\DC2\ETX\STX\NUL\SO\n\
    \\b\n\
    \\SOH\b\DC2\ETX\EOT\NUL<\n\
    \\t\n\
    \\STX\b\v\DC2\ETX\EOT\NUL<\n\
    \\RS\n\
    \\STX\EOT\NUL\DC2\EOT\n\
    \\NUL\SO\SOH2\DC2\n\
    \ LowLevel stuff\n\
    \\n\
    \\n\
    \\n\
    \\n\
    \\ETX\EOT\NUL\SOH\DC2\ETX\n\
    \\b\SI\n\
    \\v\n\
    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\v\EOT\DC4\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\v\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\v\v\SI\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\v\DC2\DC3\n\
    \\v\n\
    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\f\EOT\EM\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\SOH\ENQ\DC2\ETX\f\EOT\b\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\f\t\DC4\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\f\ETB\CAN\n\
    \\v\n\
    \\EOT\EOT\NUL\STX\STX\DC2\ETX\r\EOT\SYN\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\STX\ENQ\DC2\ETX\r\EOT\b\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX\r\t\DC1\n\
    \\f\n\
    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX\r\DC4\NAK\n\
    \\n\
    \\n\
    \\STX\ENQ\NUL\DC2\EOT\DLE\NUL*\SOH\n\
    \\n\
    \\n\
    \\ETX\ENQ\NUL\SOH\DC2\ETX\DLE\ENQ\SI\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX\DC1\EOT\GS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX\DC1\EOT\CAN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX\DC1\ESC\FS\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\SOH\DC2\ETX\DC2\EOT\GS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\ETX\DC2\EOT\CAN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\ETX\DC2\ESC\FS\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\STX\DC2\ETX\DC3\EOT\FS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\ETX\DC3\EOT\ETB\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\STX\STX\DC2\ETX\DC3\SUB\ESC\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\ETX\DC2\ETX\DC4\EOT$\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\ETX\DC4\EOT\US\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\ETX\DC4\"#\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\EOT\DC2\ETX\NAK\EOT$\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\EOT\SOH\DC2\ETX\NAK\EOT\US\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\EOT\STX\DC2\ETX\NAK\"#\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\ENQ\DC2\ETX\SYN\EOT\ESC\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ENQ\SOH\DC2\ETX\SYN\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ENQ\STX\DC2\ETX\SYN\EM\SUB\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\ACK\DC2\ETX\ETB\EOT\ESC\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ACK\SOH\DC2\ETX\ETB\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ACK\STX\DC2\ETX\ETB\EM\SUB\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\a\DC2\ETX\CAN\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\a\SOH\DC2\ETX\CAN\EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\a\STX\DC2\ETX\CAN\DC4\NAK\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\b\DC2\ETX\EM\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\b\SOH\DC2\ETX\EM\EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\b\STX\DC2\ETX\EM\DC4\NAK\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\t\DC2\ETX\SUB\EOT \n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\t\SOH\DC2\ETX\SUB\EOT\SUB\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\t\STX\DC2\ETX\SUB\GS\US\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\n\
    \\DC2\ETX\ESC\EOT \n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\n\
    \\SOH\DC2\ETX\ESC\EOT\SUB\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\n\
    \\STX\DC2\ETX\ESC\GS\US\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\v\DC2\ETX\FS\EOT\US\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\v\SOH\DC2\ETX\FS\EOT\EM\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\v\STX\DC2\ETX\FS\FS\RS\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\f\DC2\ETX\GS\EOT\US\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\f\SOH\DC2\ETX\GS\EOT\EM\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\f\STX\DC2\ETX\GS\FS\RS\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\r\DC2\ETX\RS\EOT\SUB\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\r\SOH\DC2\ETX\RS\EOT\DC4\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\r\STX\DC2\ETX\RS\ETB\EM\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\SO\DC2\ETX\US\EOT\SUB\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SO\SOH\DC2\ETX\US\EOT\DC4\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SO\STX\DC2\ETX\US\ETB\EM\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\SI\DC2\ETX \EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SI\SOH\DC2\ETX \EOT\v\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SI\STX\DC2\ETX \SO\DLE\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\DLE\DC2\ETX!\EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DLE\SOH\DC2\ETX!\EOT\v\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DLE\STX\DC2\ETX!\SO\DLE\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\DC1\DC2\ETX\"\EOT\FS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC1\SOH\DC2\ETX\"\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC1\STX\DC2\ETX\"\EM\ESC\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\DC2\DC2\ETX#\EOT\FS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC2\SOH\DC2\ETX#\EOT\SYN\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC2\STX\DC2\ETX#\EM\ESC\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\DC3\DC2\ETX$\EOT\NAK\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC3\SOH\DC2\ETX$\EOT\SI\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC3\STX\DC2\ETX$\DC2\DC4\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\DC4\DC2\ETX%\EOT\NAK\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC4\SOH\DC2\ETX%\EOT\SI\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\DC4\STX\DC2\ETX%\DC2\DC4\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\NAK\DC2\ETX&\EOT#\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\NAK\SOH\DC2\ETX&\EOT\GS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\NAK\STX\DC2\ETX& \"\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\SYN\DC2\ETX'\EOT#\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SYN\SOH\DC2\ETX'\EOT\GS\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\SYN\STX\DC2\ETX' \"\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\ETB\DC2\ETX(\EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ETB\SOH\DC2\ETX(\EOT\v\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\ETB\STX\DC2\ETX(\SO\DLE\n\
    \\v\n\
    \\EOT\ENQ\NUL\STX\CAN\DC2\ETX)\EOT\DC1\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\CAN\SOH\DC2\ETX)\EOT\v\n\
    \\f\n\
    \\ENQ\ENQ\NUL\STX\CAN\STX\DC2\ETX)\SO\DLE\n\
    \\n\
    \\n\
    \\STX\EOT\SOH\DC2\EOT,\NUL2\SOH\n\
    \\n\
    \\n\
    \\ETX\EOT\SOH\SOH\DC2\ETX,\b\DC1\n\
    \l\n\
    \\EOT\EOT\SOH\STX\NUL\DC2\ETX1\EOT#\SUB_\n\
    \A list of hop hints that when chained together can assist in reaching a\n\
    \specific destination.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\ETX1\EOT\f\n\
    \\f\n\
    \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX1\r\DC4\n\
    \\f\n\
    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX1\NAK\RS\n\
    \\f\n\
    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX1!\"\n\
    \\n\
    \\n\
    \\STX\EOT\STX\DC2\EOT4\NULF\SOH\n\
    \\n\
    \\n\
    \\ETX\EOT\STX\SOH\DC2\ETX4\b\SI\n\
    \F\n\
    \\EOT\EOT\STX\STX\NUL\DC2\ETX6\EOT\ETB\SUB9 The public key of the node at the start of the channel.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX6\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX6\v\DC2\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX6\NAK\SYN\n\
    \4\n\
    \\EOT\EOT\STX\STX\SOH\DC2\ETX9\EOT,\SUB' The unique identifier of the channel.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETX9\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX9\v\DC2\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX9\NAK\SYN\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\SOH\b\DC2\ETX9\ETB+\n\
    \\r\n\
    \\ACK\EOT\STX\STX\SOH\b\ACK\DC2\ETX9\CAN*\n\
    \H\n\
    \\EOT\EOT\STX\STX\STX\DC2\ETX<\EOT\GS\SUB; The base fee of the channel denominated in millisatoshis.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETX<\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETX<\v\CAN\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETX<\ESC\FS\n\
    \t\n\
    \\EOT\EOT\STX\STX\ETX\DC2\ETXB\EOT+\SUBg\n\
    \The fee rate of the channel for sending one satoshi across it denominated in\n\
    \millionths of a satoshi.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\ETX\ENQ\DC2\ETXB\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\ETX\SOH\DC2\ETXB\v&\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\ETX\ETX\DC2\ETXB)*\n\
    \2\n\
    \\EOT\EOT\STX\STX\EOT\DC2\ETXE\EOT!\SUB% The time-lock delta of the channel.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\EOT\ENQ\DC2\ETXE\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\EOT\SOH\DC2\ETXE\v\FS\n\
    \\f\n\
    \\ENQ\EOT\STX\STX\EOT\ETX\DC2\ETXE\US \n\
    \\n\
    \\n\
    \\STX\EOT\ETX\DC2\EOTH\NULY\SOH\n\
    \\n\
    \\n\
    \\ETX\EOT\ETX\SOH\DC2\ETXH\b\DC4\n\
    \\f\n\
    \\EOT\EOT\ETX\b\NUL\DC2\EOTI\EOTU\ENQ\n\
    \\f\n\
    \\ENQ\EOT\ETX\b\NUL\SOH\DC2\ETXI\n\
    \\SYN\n\
    \f\n\
    \\EOT\EOT\ETX\STX\NUL\DC2\ETXN\b%\SUBY\n\
    \Txid of the funding transaction. When using REST, this field must be\n\
    \encoded as base64.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETXN\b\r\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETXN\SO \n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETXN#$\n\
    \a\n\
    \\EOT\EOT\ETX\STX\SOH\DC2\ETXT\b$\SUBT\n\
    \Hex-encoded string representing the byte-reversed hash of the funding\n\
    \transaction.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETXT\b\SO\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETXT\SI\US\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETXT\"#\n\
    \A\n\
    \\EOT\EOT\ETX\STX\STX\DC2\ETXX\EOT\FS\SUB4 The index of the output of the funding transaction\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\STX\ENQ\DC2\ETXX\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETXX\v\ETB\n\
    \\f\n\
    \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETXX\SUB\ESC\n\
    \\n\
    \\n\
    \\STX\EOT\EOT\DC2\EOT[\NULd\SOH\n\
    \\n\
    \\n\
    \\ETX\EOT\EOT\SOH\DC2\ETX[\b\DLE\n\
    \9\n\
    \\EOT\EOT\EOT\STX\NUL\DC2\ETX]\EOT\EM\SUB, Raw bytes representing the transaction id.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\ETX]\EOT\t\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX]\n\
    \\DC4\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX]\ETB\CAN\n\
    \L\n\
    \\EOT\EOT\EOT\STX\SOH\DC2\ETX`\EOT\CAN\SUB? Reversed, hex-encoded string representing the transaction id.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\SOH\ENQ\DC2\ETX`\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\ETX`\v\DC3\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\ETX`\SYN\ETB\n\
    \:\n\
    \\EOT\EOT\EOT\STX\STX\DC2\ETXc\EOT\FS\SUB- The index of the output on the transaction.\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\STX\ENQ\DC2\ETXc\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\ETXc\v\ETB\n\
    \\f\n\
    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\ETXc\SUB\ESC\n\
    \\n\
    \\n\
    \\STX\ENQ\SOH\DC2\EOTf\NULk\SOH\n\
    \\n\
    \\n\
    \\ETX\ENQ\SOH\SOH\DC2\ETXf\ENQ\SO\n\
    \\v\n\
    \\EOT\ENQ\SOH\STX\NUL\DC2\ETXg\EOT\SUB\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETXg\EOT\NAK\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETXg\CAN\EM\n\
    \\v\n\
    \\EOT\ENQ\SOH\STX\SOH\DC2\ETXh\EOT\CAN\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETXh\EOT\DC3\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETXh\SYN\ETB\n\
    \\v\n\
    \\EOT\ENQ\SOH\STX\STX\DC2\ETXi\EOT\EM\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETXi\EOT\DC4\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETXi\ETB\CAN\n\
    \\v\n\
    \\EOT\ENQ\SOH\STX\ETX\DC2\ETXj\EOT\ETB\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\ETX\SOH\DC2\ETXj\EOT\DC2\n\
    \\f\n\
    \\ENQ\ENQ\SOH\STX\ETX\STX\DC2\ETXj\NAK\SYN\n\
    \\v\n\
    \\STX\ENQ\STX\DC2\ENQm\NUL\144\SOH\SOH\n\
    \\n\
    \\n\
    \\ETX\ENQ\STX\SOH\DC2\ETXm\ENQ\DC3\n\
    \L\n\
    \\EOT\ENQ\STX\STX\NUL\DC2\ETXq\EOT \SUB?\n\
    \Returned when the commitment type isn't known or unavailable.\n\
    \\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\ETXq\EOT\ESC\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\NUL\STX\DC2\ETXq\RS\US\n\
    \Z\n\
    \\EOT\ENQ\STX\STX\SOH\DC2\ETXw\EOT\SI\SUBM\n\
    \A channel using the legacy commitment format having tweaked to_remote\n\
    \keys.\n\
    \\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\ETXw\EOT\n\
    \\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\SOH\STX\DC2\ETXw\r\SO\n\
    \\245\SOH\n\
    \\EOT\ENQ\STX\STX\STX\DC2\ETX\DEL\EOT\SUB\SUB\231\SOH\n\
    \A channel that uses the modern commitment format where the key in the\n\
    \output of the remote party does not change each state. This makes back\n\
    \up and recovery easier as when the channel is closed, the funds go\n\
    \directly to that key.\n\
    \\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\STX\SOH\DC2\ETX\DEL\EOT\NAK\n\
    \\f\n\
    \\ENQ\ENQ\STX\STX\STX\STX\DC2\ETX\DEL\CAN\EM\n\
    \\173\SOH\n\
    \\EOT\ENQ\STX\STX\ETX\DC2\EOT\134\SOH\EOT\DLE\SUB\158\SOH\n\
    \A channel that uses a commitment format that has anchor outputs on the\n\
    \commitments, allowing fee bumping after a force close transaction has\n\
    \been broadcast.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\134\SOH\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\134\SOH\SO\SI\n\
    \\217\STX\n\
    \\EOT\ENQ\STX\STX\EOT\DC2\EOT\143\SOH\EOT\RS\SUB\202\STX\n\
    \A channel that uses a commitment type that builds upon the anchors\n\
    \commitment format, but in addition requires a CLTV clause to spend outputs\n\
    \paying to the channel initiator. This is intended for use on leased channels\n\
    \to guarantee that the channel initiator has no incentives to close a leased\n\
    \channel before its maturity date.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\EOT\SOH\DC2\EOT\143\SOH\EOT\EM\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\EOT\STX\DC2\EOT\143\SOH\FS\GS\n\
    \\f\n\
    \\STX\EOT\ENQ\DC2\ACK\146\SOH\NUL\168\SOH\SOH\n\
    \\v\n\
    \\ETX\EOT\ENQ\SOH\DC2\EOT\146\SOH\b\SUB\n\
    \\166\SOH\n\
    \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\151\SOH\EOT\EM\SUB\151\SOH\n\
    \The CSV delay expressed in relative blocks. If the channel is force closed,\n\
    \we will need to wait for this many blocks before we can regain our funds.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\151\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\151\SOH\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\151\SOH\ETB\CAN\n\
    \U\n\
    \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\154\SOH\EOT \SUBG The minimum satoshis this node is required to reserve in its balance.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\154\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\154\SOH\v\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\154\SOH\RS\US\n\
    \N\n\
    \\EOT\EOT\ENQ\STX\STX\DC2\EOT\157\SOH\EOT\RS\SUB@ The dust limit (in satoshis) of the initiator's commitment tx.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\157\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\157\SOH\v\EM\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\157\SOH\FS\GS\n\
    \b\n\
    \\EOT\EOT\ENQ\STX\ETX\DC2\EOT\161\SOH\EOT$\SUBT The maximum amount of coins in millisatoshis that can be pending in this\n\
    \ channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\ENQ\DC2\EOT\161\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\SOH\DC2\EOT\161\SOH\v\US\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\ETX\DC2\EOT\161\SOH\"#\n\
    \R\n\
    \\EOT\EOT\ENQ\STX\EOT\DC2\EOT\164\SOH\EOT\GS\SUBD The smallest HTLC in millisatoshis that the initiator will accept.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\ENQ\DC2\EOT\164\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\SOH\DC2\EOT\164\SOH\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\ETX\DC2\EOT\164\SOH\ESC\FS\n\
    \S\n\
    \\EOT\EOT\ENQ\STX\ENQ\DC2\EOT\167\SOH\EOT\"\SUBE The total number of incoming HTLC's that the initiator will accept.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\ENQ\DC2\EOT\167\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\SOH\DC2\EOT\167\SOH\v\GS\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\ETX\DC2\EOT\167\SOH !\n\
    \\f\n\
    \\STX\EOT\ACK\DC2\ACK\170\SOH\NUL\193\STX\SOH\n\
    \\v\n\
    \\ETX\EOT\ACK\SOH\DC2\EOT\170\SOH\b\SI\n\
    \5\n\
    \\EOT\EOT\ACK\STX\NUL\DC2\EOT\172\SOH\EOT\DC4\SUB' Whether this channel is active or not\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\172\SOH\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\172\SOH\t\SI\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\172\SOH\DC2\DC3\n\
    \6\n\
    \\EOT\EOT\ACK\STX\SOH\DC2\EOT\175\SOH\EOT\GS\SUB( The identity pubkey of the remote node\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\175\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\175\SOH\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\175\SOH\ESC\FS\n\
    \\179\SOH\n\
    \\EOT\EOT\ACK\STX\STX\DC2\EOT\182\SOH\EOT\GS\SUB\164\SOH\n\
    \The outpoint (txid:index) of the funding transaction. With this value, Bob\n\
    \will be able to generate a signature for Alice's version of the commitment\n\
    \transaction.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\ENQ\DC2\EOT\182\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\182\SOH\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\182\SOH\ESC\FS\n\
    \\193\SOH\n\
    \\EOT\EOT\ACK\STX\ETX\DC2\EOT\189\SOH\EOT,\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\ENQ\DC2\EOT\189\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\SOH\DC2\EOT\189\SOH\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\ETX\DC2\EOT\189\SOH\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\b\DC2\EOT\189\SOH\ETB+\n\
    \\SO\n\
    \\ACK\EOT\ACK\STX\ETX\b\ACK\DC2\EOT\189\SOH\CAN*\n\
    \>\n\
    \\EOT\EOT\ACK\STX\EOT\DC2\EOT\192\SOH\EOT\ETB\SUB0 The total amount of funds held in this channel\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EOT\ENQ\DC2\EOT\192\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EOT\SOH\DC2\EOT\192\SOH\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EOT\ETX\DC2\EOT\192\SOH\NAK\SYN\n\
    \;\n\
    \\EOT\EOT\ACK\STX\ENQ\DC2\EOT\195\SOH\EOT\FS\SUB- This node's current balance in this channel\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ENQ\ENQ\DC2\EOT\195\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ENQ\SOH\DC2\EOT\195\SOH\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ENQ\ETX\DC2\EOT\195\SOH\SUB\ESC\n\
    \B\n\
    \\EOT\EOT\ACK\STX\ACK\DC2\EOT\198\SOH\EOT\GS\SUB4 The counterparty's current balance in this channel\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ACK\ENQ\DC2\EOT\198\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ACK\SOH\DC2\EOT\198\SOH\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ACK\ETX\DC2\EOT\198\SOH\ESC\FS\n\
    \\172\STX\n\
    \\EOT\EOT\ACK\STX\a\DC2\EOT\206\SOH\EOT\EM\SUB\157\STX\n\
    \The amount calculated to be paid in fees for the current set of commitment\n\
    \transactions. The fee amount is persisted with the channel in order to\n\
    \allow the fee amount to be removed and recalculated with each channel state\n\
    \update, including updates that happen after a system restart.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\a\ENQ\DC2\EOT\206\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\a\SOH\DC2\EOT\206\SOH\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\a\ETX\DC2\EOT\206\SOH\ETB\CAN\n\
    \8\n\
    \\EOT\EOT\ACK\STX\b\DC2\EOT\209\SOH\EOT\FS\SUB* The weight of the commitment transaction\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\b\ENQ\DC2\EOT\209\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\b\SOH\DC2\EOT\209\SOH\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\b\ETX\DC2\EOT\209\SOH\SUB\ESC\n\
    \\225\SOH\n\
    \\EOT\EOT\ACK\STX\t\DC2\EOT\216\SOH\EOT\SUB\SUB\210\SOH\n\
    \The required number of satoshis per kilo-weight that the requester will pay\n\
    \at all times, for both the funding transaction and commitment transaction.\n\
    \This value can later be updated once the channel is open.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\t\ENQ\DC2\EOT\216\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\t\SOH\DC2\EOT\216\SOH\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\t\ETX\DC2\EOT\216\SOH\ETB\EM\n\
    \5\n\
    \\EOT\EOT\ACK\STX\n\
    \\DC2\EOT\219\SOH\EOT!\SUB' The unsettled balance in this channel\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\n\
    \\ENQ\DC2\EOT\219\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\n\
    \\SOH\DC2\EOT\219\SOH\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\n\
    \\ETX\DC2\EOT\219\SOH\RS \n\
    \L\n\
    \\EOT\EOT\ACK\STX\v\DC2\EOT\224\SOH\EOT#\SUB>\n\
    \The total number of satoshis we've sent within this channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\v\ENQ\DC2\EOT\224\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\v\SOH\DC2\EOT\224\SOH\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\v\ETX\DC2\EOT\224\SOH \"\n\
    \P\n\
    \\EOT\EOT\ACK\STX\f\DC2\EOT\229\SOH\EOT'\SUBB\n\
    \The total number of satoshis we've received within this channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\f\ENQ\DC2\EOT\229\SOH\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\f\SOH\DC2\EOT\229\SOH\n\
    \!\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\f\ETX\DC2\EOT\229\SOH$&\n\
    \J\n\
    \\EOT\EOT\ACK\STX\r\DC2\EOT\234\SOH\EOT\FS\SUB<\n\
    \The total number of updates conducted within this channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\r\ENQ\DC2\EOT\234\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\r\SOH\DC2\EOT\234\SOH\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\r\ETX\DC2\EOT\234\SOH\EM\ESC\n\
    \Y\n\
    \\EOT\EOT\ACK\STX\SO\DC2\EOT\239\SOH\EOT%\SUBK\n\
    \The list of active, uncleared HTLCs currently pending within the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SO\EOT\DC2\EOT\239\SOH\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SO\ACK\DC2\EOT\239\SOH\r\DC1\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SO\SOH\DC2\EOT\239\SOH\DC2\US\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SO\ETX\DC2\EOT\239\SOH\"$\n\
    \\178\SOH\n\
    \\EOT\EOT\ACK\STX\SI\DC2\EOT\246\SOH\EOT.\SUB\163\SOH\n\
    \Deprecated. The CSV delay expressed in relative blocks. If the channel is\n\
    \force closed, we will need to wait for this many blocks before we can regain\n\
    \our funds.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SI\ENQ\DC2\EOT\246\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SI\SOH\DC2\EOT\246\SOH\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SI\ETX\DC2\EOT\246\SOH\ETB\EM\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SI\b\DC2\EOT\246\SOH\SUB-\n\
    \\SO\n\
    \\ACK\EOT\ACK\STX\SI\b\ETX\DC2\EOT\246\SOH\ESC,\n\
    \I\n\
    \\EOT\EOT\ACK\STX\DLE\DC2\EOT\249\SOH\EOT\SYN\SUB; Whether this channel is advertised to the network or not.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DLE\ENQ\DC2\EOT\249\SOH\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DLE\SOH\DC2\EOT\249\SOH\t\DLE\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DLE\ETX\DC2\EOT\249\SOH\DC3\NAK\n\
    \B\n\
    \\EOT\EOT\ACK\STX\DC1\DC2\EOT\252\SOH\EOT\CAN\SUB4 True if we were the ones that created the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC1\ENQ\DC2\EOT\252\SOH\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC1\SOH\DC2\EOT\252\SOH\t\DC2\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC1\ETX\DC2\EOT\252\SOH\NAK\ETB\n\
    \H\n\
    \\EOT\EOT\ACK\STX\DC2\DC2\EOT\255\SOH\EOT\"\SUB: A set of flags showing the current state of the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC2\ENQ\DC2\EOT\255\SOH\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC2\SOH\DC2\EOT\255\SOH\v\FS\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC2\ETX\DC2\EOT\255\SOH\US!\n\
    \b\n\
    \\EOT\EOT\ACK\STX\DC3\DC2\EOT\131\STX\EOT:\SUBT Deprecated. The minimum satoshis this node is required to reserve in its\n\
    \ balance.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC3\ENQ\DC2\EOT\131\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC3\SOH\DC2\EOT\131\STX\n\
    \ \n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC3\ETX\DC2\EOT\131\STX#%\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC3\b\DC2\EOT\131\STX&9\n\
    \\SO\n\
    \\ACK\EOT\ACK\STX\DC3\b\ETX\DC2\EOT\131\STX'8\n\
    \f\n\
    \\EOT\EOT\ACK\STX\DC4\DC2\EOT\137\STX\EOT;\SUBX\n\
    \Deprecated. The minimum satoshis the other node is required to reserve in\n\
    \its balance.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC4\ENQ\DC2\EOT\137\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC4\SOH\DC2\EOT\137\STX\n\
    \!\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC4\ETX\DC2\EOT\137\STX$&\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\DC4\b\DC2\EOT\137\STX':\n\
    \\SO\n\
    \\ACK\EOT\ACK\STX\DC4\b\ETX\DC2\EOT\137\STX(9\n\
    \0\n\
    \\EOT\EOT\ACK\STX\NAK\DC2\EOT\140\STX\EOT4\SUB\" Deprecated. Use commitment_type.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NAK\ENQ\DC2\EOT\140\STX\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NAK\SOH\DC2\EOT\140\STX\t\SUB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NAK\ETX\DC2\EOT\140\STX\GS\US\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NAK\b\DC2\EOT\140\STX 3\n\
    \\SO\n\
    \\ACK\EOT\ACK\STX\NAK\b\ETX\DC2\EOT\140\STX!2\n\
    \9\n\
    \\EOT\EOT\ACK\STX\SYN\DC2\EOT\143\STX\EOT(\SUB+ The commitment type used by this channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SYN\ACK\DC2\EOT\143\STX\EOT\DC2\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SYN\SOH\DC2\EOT\143\STX\DC3\"\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SYN\ETX\DC2\EOT\143\STX%'\n\
    \\216\SOH\n\
    \\EOT\EOT\ACK\STX\ETB\DC2\EOT\150\STX\EOT\CAN\SUB\201\SOH\n\
    \The number of seconds that the channel has been monitored by the channel\n\
    \scoring system. Scores are currently not persisted, so this value may be\n\
    \less than the lifetime of the channel [EXPERIMENTAL].\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETB\ENQ\DC2\EOT\150\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETB\SOH\DC2\EOT\150\STX\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETB\ETX\DC2\EOT\150\STX\NAK\ETB\n\
    \\172\SOH\n\
    \\EOT\EOT\ACK\STX\CAN\DC2\EOT\157\STX\EOT\SYN\SUB\157\SOH\n\
    \The number of seconds that the remote peer has been observed as being online\n\
    \by the channel scoring system over the lifetime of the channel\n\
    \[EXPERIMENTAL].\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\CAN\ENQ\DC2\EOT\157\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\CAN\SOH\DC2\EOT\157\STX\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\CAN\ETX\DC2\EOT\157\STX\DC3\NAK\n\
    \\247\STX\n\
    \\EOT\EOT\ACK\STX\EM\DC2\EOT\166\STX\EOT\RS\SUB\232\STX\n\
    \Close address is the address that we will enforce payout to on cooperative\n\
    \close if the channel was opened utilizing option upfront shutdown. This\n\
    \value can be set on channel open by setting close_address in an open channel\n\
    \request. If this value is not set, you can still choose a payout address by\n\
    \cooperatively closing with the delivery_address field set.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EM\ENQ\DC2\EOT\166\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EM\SOH\DC2\EOT\166\STX\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\EM\ETX\DC2\EOT\166\STX\ESC\GS\n\
    \\206\STX\n\
    \\EOT\EOT\ACK\STX\SUB\DC2\EOT\175\STX\EOT \SUB\191\STX\n\
    \The amount that the initiator of the channel optionally pushed to the remote\n\
    \party on channel open. This amount will be zero if the channel initiator did\n\
    \not push any funds to the remote peer. If the initiator field is true, we\n\
    \pushed this amount to our peer, if it is false, the remote peer pushed this\n\
    \amount to us.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SUB\ENQ\DC2\EOT\175\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SUB\SOH\DC2\EOT\175\STX\v\SUB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SUB\ETX\DC2\EOT\175\STX\GS\US\n\
    \\243\ETX\n\
    \\EOT\EOT\ACK\STX\ESC\DC2\EOT\186\STX\EOT\FS\SUB\228\ETX\n\
    \This uint32 indicates if this channel is to be considered 'frozen'. A\n\
    \frozen channel doest not allow a cooperative channel close by the\n\
    \initiator. The thaw_height is the height that this restriction stops\n\
    \applying to the channel. This field is optional, not setting it or using a\n\
    \value of zero will mean the channel has no additional restrictions. The\n\
    \height can be interpreted in two ways: as a relative height if the value is\n\
    \less than 500,000, or as an absolute height otherwise.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ESC\ENQ\DC2\EOT\186\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ESC\SOH\DC2\EOT\186\STX\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ESC\ETX\DC2\EOT\186\STX\EM\ESC\n\
    \4\n\
    \\EOT\EOT\ACK\STX\FS\DC2\EOT\189\STX\EOT.\SUB& List constraints for the local node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\FS\ACK\DC2\EOT\189\STX\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\FS\SOH\DC2\EOT\189\STX\ETB(\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\FS\ETX\DC2\EOT\189\STX+-\n\
    \5\n\
    \\EOT\EOT\ACK\STX\GS\DC2\EOT\192\STX\EOT/\SUB' List constraints for the remote node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\GS\ACK\DC2\EOT\192\STX\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\GS\SOH\DC2\EOT\192\STX\ETB)\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\GS\ETX\DC2\EOT\192\STX,.\n\
    \\f\n\
    \\STX\EOT\a\DC2\ACK\195\STX\NUL\252\STX\SOH\n\
    \\v\n\
    \\ETX\EOT\a\SOH\DC2\EOT\195\STX\b\ESC\n\
    \E\n\
    \\EOT\EOT\a\STX\NUL\DC2\EOT\197\STX\EOT\GS\SUB7 The outpoint (txid:index) of the funding transaction.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\197\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\197\STX\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\197\STX\ESC\FS\n\
    \7\n\
    \\EOT\EOT\a\STX\SOH\DC2\EOT\200\STX\EOT,\SUB)  The unique channel ID for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\200\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\200\STX\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\200\STX\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\b\DC2\EOT\200\STX\ETB+\n\
    \\SO\n\
    \\ACK\EOT\a\STX\SOH\b\ACK\DC2\EOT\200\STX\CAN*\n\
    \O\n\
    \\EOT\EOT\a\STX\STX\DC2\EOT\203\STX\EOT\SUB\SUBA The hash of the genesis block that this channel resides within.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\ENQ\DC2\EOT\203\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\203\STX\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\203\STX\CAN\EM\n\
    \Q\n\
    \\EOT\EOT\a\STX\ETX\DC2\EOT\206\STX\EOT\US\SUBC The txid of the transaction which ultimately closed this channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ETX\ENQ\DC2\EOT\206\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ETX\SOH\DC2\EOT\206\STX\v\SUB\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ETX\ETX\DC2\EOT\206\STX\GS\RS\n\
    \R\n\
    \\EOT\EOT\a\STX\EOT\DC2\EOT\209\STX\EOT\GS\SUBD Public key of the remote peer that we formerly had a channel with.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\EOT\ENQ\DC2\EOT\209\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\EOT\SOH\DC2\EOT\209\STX\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\a\STX\EOT\ETX\DC2\EOT\209\STX\ESC\FS\n\
    \.\n\
    \\EOT\EOT\a\STX\ENQ\DC2\EOT\212\STX\EOT\ETB\SUB  Total capacity of the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ENQ\ENQ\DC2\EOT\212\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ENQ\SOH\DC2\EOT\212\STX\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ENQ\ETX\DC2\EOT\212\STX\NAK\SYN\n\
    \B\n\
    \\EOT\EOT\a\STX\ACK\DC2\EOT\215\STX\EOT\FS\SUB4 Height at which the funding transaction was spent.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ACK\ENQ\DC2\EOT\215\STX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ACK\SOH\DC2\EOT\215\STX\v\ETB\n\
    \\r\n\
    \\ENQ\EOT\a\STX\ACK\ETX\DC2\EOT\215\STX\SUB\ESC\n\
    \>\n\
    \\EOT\EOT\a\STX\a\DC2\EOT\218\STX\EOT\RS\SUB0 Settled balance at the time of channel closure\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\a\ENQ\DC2\EOT\218\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\a\STX\a\SOH\DC2\EOT\218\STX\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\a\STX\a\ETX\DC2\EOT\218\STX\FS\GS\n\
    \U\n\
    \\EOT\EOT\a\STX\b\DC2\EOT\221\STX\EOT\"\SUBG The sum of all the time-locked outputs at the time of channel closure\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\b\ENQ\DC2\EOT\221\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\a\STX\b\SOH\DC2\EOT\221\STX\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\a\STX\b\ETX\DC2\EOT\221\STX !\n\
    \\SO\n\
    \\EOT\EOT\a\EOT\NUL\DC2\ACK\223\STX\EOT\230\STX\ENQ\n\
    \\r\n\
    \\ENQ\EOT\a\EOT\NUL\SOH\DC2\EOT\223\STX\t\DC4\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\NUL\DC2\EOT\224\STX\b\RS\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\NUL\SOH\DC2\EOT\224\STX\b\EM\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\NUL\STX\DC2\EOT\224\STX\FS\GS\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\SOH\DC2\EOT\225\STX\b\RS\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\SOH\SOH\DC2\EOT\225\STX\b\EM\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\SOH\STX\DC2\EOT\225\STX\FS\GS\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\STX\DC2\EOT\226\STX\b\US\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\STX\SOH\DC2\EOT\226\STX\b\SUB\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\STX\STX\DC2\EOT\226\STX\GS\RS\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\ETX\DC2\EOT\227\STX\b\EM\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\ETX\SOH\DC2\EOT\227\STX\b\DC4\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\ETX\STX\DC2\EOT\227\STX\ETB\CAN\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\EOT\DC2\EOT\228\STX\b\GS\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\EOT\SOH\DC2\EOT\228\STX\b\CAN\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\EOT\STX\DC2\EOT\228\STX\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT\a\EOT\NUL\STX\ENQ\DC2\EOT\229\STX\b\SYN\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\ENQ\SOH\DC2\EOT\229\STX\b\DC1\n\
    \\SI\n\
    \\a\EOT\a\EOT\NUL\STX\ENQ\STX\DC2\EOT\229\STX\DC4\NAK\n\
    \6\n\
    \\EOT\EOT\a\STX\t\DC2\EOT\233\STX\EOT \SUB( Details on how the channel was closed.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\t\ACK\DC2\EOT\233\STX\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT\a\STX\t\SOH\DC2\EOT\233\STX\DLE\SUB\n\
    \\r\n\
    \\ENQ\EOT\a\STX\t\ETX\DC2\EOT\233\STX\GS\US\n\
    \\208\SOH\n\
    \\EOT\EOT\a\STX\n\
    \\DC2\EOT\240\STX\EOT\"\SUB\193\SOH\n\
    \Open initiator is the party that initiated opening the channel. Note that\n\
    \this value may be unknown if the channel was closed before we migrated to\n\
    \store open channel information after close.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\n\
    \\ACK\DC2\EOT\240\STX\EOT\r\n\
    \\r\n\
    \\ENQ\EOT\a\STX\n\
    \\SOH\DC2\EOT\240\STX\SO\FS\n\
    \\r\n\
    \\ENQ\EOT\a\STX\n\
    \\ETX\DC2\EOT\240\STX\US!\n\
    \\132\ETX\n\
    \\EOT\EOT\a\STX\v\DC2\EOT\249\STX\EOT#\SUB\245\STX\n\
    \Close initiator indicates which party initiated the close. This value will\n\
    \be unknown for channels that were cooperatively closed before we started\n\
    \tracking cooperative close initiators. Note that this indicates which party\n\
    \initiated a close, and it is possible for both to initiate cooperative or\n\
    \force closes, although only one party's close will be confirmed on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\v\ACK\DC2\EOT\249\STX\EOT\r\n\
    \\r\n\
    \\ENQ\EOT\a\STX\v\SOH\DC2\EOT\249\STX\SO\GS\n\
    \\r\n\
    \\ENQ\EOT\a\STX\v\ETX\DC2\EOT\249\STX \"\n\
    \\f\n\
    \\EOT\EOT\a\STX\f\DC2\EOT\251\STX\EOT)\n\
    \\r\n\
    \\ENQ\EOT\a\STX\f\EOT\DC2\EOT\251\STX\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\a\STX\f\ACK\DC2\EOT\251\STX\r\ETB\n\
    \\r\n\
    \\ENQ\EOT\a\STX\f\SOH\DC2\EOT\251\STX\CAN#\n\
    \\r\n\
    \\ENQ\EOT\a\STX\f\ETX\DC2\EOT\251\STX&(\n\
    \\f\n\
    \\STX\EOT\b\DC2\ACK\254\STX\NUL\129\ETX\SOH\n\
    \\v\n\
    \\ETX\EOT\b\SOH\DC2\EOT\254\STX\b\NAK\n\
    \\f\n\
    \\EOT\EOT\b\STX\NUL\DC2\EOT\255\STX\EOT\DC3\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\255\STX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\255\STX\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\255\STX\DC1\DC2\n\
    \\f\n\
    \\EOT\EOT\b\STX\SOH\DC2\EOT\128\ETX\EOT\FS\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\ENQ\DC2\EOT\128\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\128\ETX\v\ETB\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\128\ETX\SUB\ESC\n\
    \\f\n\
    \\STX\ENQ\ETX\DC2\ACK\131\ETX\NUL\153\ETX\SOH\n\
    \\v\n\
    \\ETX\ENQ\ETX\SOH\DC2\EOT\131\ETX\ENQ\DC3\n\
    \\f\n\
    \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\132\ETX\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\132\ETX\EOT\DLE\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\132\ETX\DC3\DC4\n\
    \-\n\
    \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\135\ETX\EOT\SI\SUB\US We resolved an anchor output.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\135\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\135\ETX\r\SO\n\
    \\189\SOH\n\
    \\EOT\ENQ\ETX\STX\STX\DC2\EOT\142\ETX\EOT\SYN\SUB\174\SOH\n\
    \We are resolving an incoming htlc on chain. This if this htlc is\n\
    \claimed, we swept the incoming htlc with the preimage. If it is timed\n\
    \out, our peer swept the timeout path.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\142\ETX\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\142\ETX\DC4\NAK\n\
    \\191\SOH\n\
    \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\149\ETX\EOT\SYN\SUB\176\SOH\n\
    \We are resolving an outgoing htlc on chain. If this htlc is claimed,\n\
    \the remote party swept the htlc with the preimage. If it is timed out,\n\
    \we swept it with the timeout path.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\149\ETX\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\149\ETX\DC4\NAK\n\
    \T\n\
    \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\152\ETX\EOT\SI\SUBF We force closed and need to sweep our time locked commitment output.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\152\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\152\ETX\r\SO\n\
    \\f\n\
    \\STX\ENQ\EOT\DC2\ACK\155\ETX\NUL\182\ETX\SOH\n\
    \\v\n\
    \\ETX\ENQ\EOT\SOH\DC2\EOT\155\ETX\ENQ\SYN\n\
    \ \n\
    \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\157\ETX\EOT\CAN\SUB\DC2 Outcome unknown.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\157\ETX\EOT\DC3\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\157\ETX\SYN\ETB\n\
    \/\n\
    \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\160\ETX\EOT\DLE\SUB! An output was claimed on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\160\ETX\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\160\ETX\SO\SI\n\
    \6\n\
    \\EOT\ENQ\EOT\STX\STX\DC2\EOT\163\ETX\EOT\DC2\SUB( An output was left unclaimed on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\163\ETX\EOT\r\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\163\ETX\DLE\DC1\n\
    \\232\SOH\n\
    \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\171\ETX\EOT\DC2\SUB\217\SOH\n\
    \ResolverOutcomeAbandoned indicates that an output that we did not\n\
    \claim on chain, for example an anchor that we did not sweep and a\n\
    \third party claimed on chain, or a htlc that we could not decode\n\
    \so left unclaimed.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\171\ETX\EOT\r\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\171\ETX\DLE\DC1\n\
    \\197\SOH\n\
    \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\178\ETX\EOT\DC4\SUB\182\SOH\n\
    \If we force closed our channel, our htlcs need to be claimed in two\n\
    \stages. This outcome represents the broadcast of a timeout or success\n\
    \transaction for this two stage htlc claim.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\178\ETX\EOT\SI\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\178\ETX\DC2\DC3\n\
    \.\n\
    \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\181\ETX\EOT\DLE\SUB  A htlc was timed out on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\181\ETX\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\181\ETX\SO\SI\n\
    \\f\n\
    \\STX\EOT\t\DC2\ACK\184\ETX\NUL\200\ETX\SOH\n\
    \\v\n\
    \\ETX\EOT\t\SOH\DC2\EOT\184\ETX\b\DC2\n\
    \4\n\
    \\EOT\EOT\t\STX\NUL\DC2\EOT\186\ETX\EOT'\SUB& The type of output we are resolving.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\ACK\DC2\EOT\186\ETX\EOT\DC2\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\186\ETX\DC3\"\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\186\ETX%&\n\
    \N\n\
    \\EOT\EOT\t\STX\SOH\DC2\EOT\189\ETX\EOT\"\SUB@ The outcome of our on chain action that resolved the outpoint.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\ACK\DC2\EOT\189\ETX\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\189\ETX\SYN\GS\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\189\ETX !\n\
    \>\n\
    \\EOT\EOT\t\STX\STX\DC2\EOT\192\ETX\EOT\SUB\SUB0 The outpoint that was spent by the resolution.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\ACK\DC2\EOT\192\ETX\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\192\ETX\r\NAK\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\192\ETX\CAN\EM\n\
    \>\n\
    \\EOT\EOT\t\STX\ETX\DC2\EOT\195\ETX\EOT\SUB\SUB0 The amount that was claimed by the resolution.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\195\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\195\ETX\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\195\ETX\CAN\EM\n\
    \_\n\
    \\EOT\EOT\t\STX\EOT\DC2\EOT\199\ETX\EOT\SUB\SUBQ The hex-encoded transaction ID of the sweep transaction that spent the\n\
    \ output.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\199\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\199\ETX\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\199\ETX\CAN\EM\n\
    \\f\n\
    \\STX\EOT\n\
    \\DC2\ACK\202\ETX\NUL\221\ETX\SOH\n\
    \\v\n\
    \\ETX\EOT\n\
    \\SOH\DC2\EOT\202\ETX\b\DLE\n\
    \\SO\n\
    \\EOT\EOT\n\
    \\b\NUL\DC2\ACK\203\ETX\EOT\220\ETX\ENQ\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\b\NUL\SOH\DC2\EOT\203\ETX\n\
    \\SI\n\
    \\DEL\n\
    \\EOT\EOT\n\
    \\STX\NUL\DC2\EOT\209\ETX\b\CAN\SUBq\n\
    \The fee limit expressed as a fixed amount of satoshis.\n\
    \\n\
    \The fields fixed and fixed_msat are mutually exclusive.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\ENQ\DC2\EOT\209\ETX\b\r\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\SOH\DC2\EOT\209\ETX\SO\DC3\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\ETX\DC2\EOT\209\ETX\SYN\ETB\n\
    \\132\SOH\n\
    \\EOT\EOT\n\
    \\STX\SOH\DC2\EOT\216\ETX\b\GS\SUBv\n\
    \The fee limit expressed as a fixed amount of millisatoshis.\n\
    \\n\
    \The fields fixed and fixed_msat are mutually exclusive.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\ENQ\DC2\EOT\216\ETX\b\r\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\SOH\DC2\EOT\216\ETX\SO\CAN\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\ETX\DC2\EOT\216\ETX\ESC\FS\n\
    \N\n\
    \\EOT\EOT\n\
    \\STX\STX\DC2\EOT\219\ETX\b\SUB\SUB@ The fee limit expressed as a percentage of the payment amount.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\ENQ\DC2\EOT\219\ETX\b\r\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\SOH\DC2\EOT\219\ETX\SO\NAK\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\ETX\DC2\EOT\219\ETX\CAN\EM\n\
    \\f\n\
    \\STX\EOT\v\DC2\ACK\223\ETX\NUL\243\ETX\SOH\n\
    \\v\n\
    \\ETX\EOT\v\SOH\DC2\EOT\223\ETX\b\f\n\
    \\f\n\
    \\EOT\EOT\v\STX\NUL\DC2\EOT\224\ETX\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\ENQ\DC2\EOT\224\ETX\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\224\ETX\t\DC1\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\224\ETX\DC4\NAK\n\
    \\f\n\
    \\EOT\EOT\v\STX\SOH\DC2\EOT\225\ETX\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\225\ETX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\225\ETX\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\225\ETX\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT\v\STX\STX\DC2\EOT\226\ETX\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\226\ETX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\226\ETX\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\226\ETX\SYN\ETB\n\
    \\f\n\
    \\EOT\EOT\v\STX\ETX\DC2\EOT\227\ETX\EOT!\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\227\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\227\ETX\v\FS\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\227\ETX\US \n\
    \:\n\
    \\EOT\EOT\v\STX\EOT\DC2\EOT\230\ETX\EOT\SUB\SUB, Index identifying the htlc on the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\EOT\ENQ\DC2\EOT\230\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\230\ETX\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\230\ETX\CAN\EM\n\
    \\204\ETX\n\
    \\EOT\EOT\v\STX\ENQ\DC2\EOT\239\ETX\EOT\"\SUB\189\ETX If this HTLC is involved in a forwarding operation, this field indicates\n\
    \ the forwarding channel. For an outgoing htlc, it is the incoming channel.\n\
    \ For an incoming htlc, it is the outgoing channel. When the htlc\n\
    \ originates from this node or this node is the final destination,\n\
    \ forwarding_channel will be zero. The forwarding channel will also be zero\n\
    \ for htlcs that need to be forwarded but don't have a forwarding decision\n\
    \ persisted yet.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ENQ\ENQ\DC2\EOT\239\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ENQ\SOH\DC2\EOT\239\ETX\v\GS\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ENQ\ETX\DC2\EOT\239\ETX !\n\
    \E\n\
    \\EOT\EOT\v\STX\ACK\DC2\EOT\242\ETX\EOT%\SUB7 Index identifying the htlc on the forwarding channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ACK\ENQ\DC2\EOT\242\ETX\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\ACK\SOH\DC2\EOT\242\ETX\v \n\
    \\r\n\
    \\ENQ\EOT\v\STX\ACK\ETX\DC2\EOT\242\ETX#$\n\
    \!\n\
    \\STX\EOT\f\DC2\ACK\249\ETX\NUL\255\ETX\SOH2\DC3\n\
    \ HighLevel stuff\n\
    \\n\
    \\n\
    \\v\n\
    \\ETX\EOT\f\SOH\DC2\EOT\249\ETX\b\DC2\n\
    \3\n\
    \\EOT\EOT\f\STX\NUL\DC2\EOT\251\ETX\EOT\EM\SUB% The family of key being identified.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\ENQ\DC2\EOT\251\ETX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\SOH\DC2\EOT\251\ETX\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\ETX\DC2\EOT\251\ETX\ETB\CAN\n\
    \>\n\
    \\EOT\EOT\f\STX\SOH\DC2\EOT\254\ETX\EOT\CAN\SUB0 The precise index of the key being identified.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\ENQ\DC2\EOT\254\ETX\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\SOH\DC2\EOT\254\ETX\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\ETX\DC2\EOT\254\ETX\SYN\ETB\n\
    \\f\n\
    \\STX\EOT\r\DC2\ACK\129\EOT\NUL\139\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\r\SOH\DC2\EOT\129\EOT\b\NAK\n\
    \:\n\
    \\EOT\EOT\r\STX\NUL\DC2\EOT\133\EOT\EOT\FS\SUB,\n\
    \The raw bytes of the key being identified.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\ENQ\DC2\EOT\133\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\SOH\DC2\EOT\133\EOT\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\ETX\DC2\EOT\133\EOT\SUB\ESC\n\
    \M\n\
    \\EOT\EOT\r\STX\SOH\DC2\EOT\138\EOT\EOT\ESC\SUB?\n\
    \The key locator that identifies which key to use for signing.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\ACK\DC2\EOT\138\EOT\EOT\SO\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\SOH\DC2\EOT\138\EOT\SI\SYN\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\ETX\DC2\EOT\138\EOT\EM\SUB\n\
    \\f\n\
    \\STX\EOT\SO\DC2\ACK\141\EOT\NUL\173\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\SO\SOH\DC2\EOT\141\EOT\b\NAK\n\
    \l\n\
    \\EOT\EOT\SO\STX\NUL\DC2\EOT\146\EOT\EOT\DC2\SUB^\n\
    \The size of the pre-crafted output to be used as the channel point for this\n\
    \channel funding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\ENQ\DC2\EOT\146\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\SOH\DC2\EOT\146\EOT\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\ETX\DC2\EOT\146\EOT\DLE\DC1\n\
    \X\n\
    \\EOT\EOT\SO\STX\SOH\DC2\EOT\149\EOT\EOT \SUBJ The target channel point to refrence in created commitment transactions.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\ACK\DC2\EOT\149\EOT\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\SOH\DC2\EOT\149\EOT\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\ETX\DC2\EOT\149\EOT\RS\US\n\
    \H\n\
    \\EOT\EOT\SO\STX\STX\DC2\EOT\152\EOT\EOT \SUB: Our local key to use when creating the multi-sig output.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\ACK\DC2\EOT\152\EOT\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\SOH\DC2\EOT\152\EOT\DC2\ESC\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\ETX\DC2\EOT\152\EOT\RS\US\n\
    \V\n\
    \\EOT\EOT\SO\STX\ETX\DC2\EOT\155\EOT\EOT\EM\SUBH The key of the remote party to use when creating the multi-sig output.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ETX\ENQ\DC2\EOT\155\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ETX\SOH\DC2\EOT\155\EOT\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ETX\ETX\DC2\EOT\155\EOT\ETB\CAN\n\
    \\250\SOH\n\
    \\EOT\EOT\SO\STX\EOT\DC2\EOT\163\EOT\EOT\RS\SUB\235\SOH\n\
    \If non-zero, then this will be used as the pending channel ID on the wire\n\
    \protocol to initate the funding request. This is an optional field, and\n\
    \should only be set if the responder is already expecting a specific pending\n\
    \channel ID.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\EOT\ENQ\DC2\EOT\163\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\EOT\SOH\DC2\EOT\163\EOT\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\EOT\ETX\DC2\EOT\163\EOT\FS\GS\n\
    \\252\STX\n\
    \\EOT\EOT\SO\STX\ENQ\DC2\EOT\172\EOT\EOT\ESC\SUB\237\STX\n\
    \This uint32 indicates if this channel is to be considered 'frozen'. A frozen\n\
    \channel does not allow a cooperative channel close by the initiator. The\n\
    \thaw_height is the height that this restriction stops applying to the\n\
    \channel. The height can be interpreted in two ways: as a relative height if\n\
    \the value is less than 500,000, or as an absolute height otherwise.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ENQ\ENQ\DC2\EOT\172\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ENQ\SOH\DC2\EOT\172\EOT\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\ENQ\ETX\DC2\EOT\172\EOT\EM\SUB\n\
    \\f\n\
    \\STX\EOT\SI\DC2\ACK\175\EOT\NUL\198\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\SI\SOH\DC2\EOT\175\EOT\b\DLE\n\
    \\217\SOH\n\
    \\EOT\EOT\SI\STX\NUL\DC2\EOT\181\EOT\EOT\RS\SUB\202\SOH\n\
    \A unique identifier of 32 random bytes that will be used as the pending\n\
    \channel ID to identify the PSBT state machine when interacting with it and\n\
    \on the wire protocol to initiate the funding request.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\ENQ\DC2\EOT\181\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\SOH\DC2\EOT\181\EOT\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\ETX\DC2\EOT\181\EOT\FS\GS\n\
    \\137\SOH\n\
    \\EOT\EOT\SI\STX\SOH\DC2\EOT\187\EOT\EOT\CAN\SUB{\n\
    \An optional base PSBT the new channel output will be added to. If this is\n\
    \non-empty, it must be a binary serialized PSBT.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\ENQ\DC2\EOT\187\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\SOH\DC2\EOT\187\EOT\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\ETX\DC2\EOT\187\EOT\SYN\ETB\n\
    \\197\ETX\n\
    \\EOT\EOT\SI\STX\STX\DC2\EOT\197\EOT\EOT\CAN\SUB\182\ETX\n\
    \If a channel should be part of a batch (multiple channel openings in one\n\
    \transaction), it can be dangerous if the whole batch transaction is\n\
    \published too early before all channel opening negotiations are completed.\n\
    \This flag prevents this particular channel from broadcasting the transaction\n\
    \after the negotiation with the remote peer. In a batch of channel openings\n\
    \this flag should be set to true for every channel but the very last.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\ENQ\DC2\EOT\197\EOT\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\SOH\DC2\EOT\197\EOT\t\DC3\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\ETX\DC2\EOT\197\EOT\SYN\ETB\n\
    \\f\n\
    \\STX\EOT\DLE\DC2\ACK\200\EOT\NUL\214\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\DLE\SOH\DC2\EOT\200\EOT\b\DC3\n\
    \\SO\n\
    \\EOT\EOT\DLE\b\NUL\DC2\ACK\201\EOT\EOT\213\EOT\ENQ\n\
    \\r\n\
    \\ENQ\EOT\DLE\b\NUL\SOH\DC2\EOT\201\EOT\n\
    \\SO\n\
    \\149\SOH\n\
    \\EOT\EOT\DLE\STX\NUL\DC2\EOT\206\EOT\b*\SUB\134\SOH\n\
    \A channel shim where the channel point was fully constructed outside\n\
    \of lnd's wallet and the transaction might already be published.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\ACK\DC2\EOT\206\EOT\b\NAK\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\SOH\DC2\EOT\206\EOT\SYN%\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\ETX\DC2\EOT\206\EOT()\n\
    \a\n\
    \\EOT\EOT\DLE\STX\SOH\DC2\EOT\212\EOT\b\US\SUBS\n\
    \A channel shim that uses a PSBT to fund and sign the channel funding\n\
    \transaction.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\SOH\ACK\DC2\EOT\212\EOT\b\DLE\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\SOH\SOH\DC2\EOT\212\EOT\DC1\SUB\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\SOH\ETX\DC2\EOT\212\EOT\GS\RS\n\
    \\f\n\
    \\STX\EOT\DC1\DC2\ACK\216\EOT\NUL\219\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\DC1\SOH\DC2\EOT\216\EOT\b\EM\n\
    \U\n\
    \\EOT\EOT\DC1\STX\NUL\DC2\EOT\218\EOT\EOT\RS\SUBG The pending channel ID of the channel to cancel the funding shim for.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\ENQ\DC2\EOT\218\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\SOH\DC2\EOT\218\EOT\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\ETX\DC2\EOT\218\EOT\FS\GS\n\
    \\f\n\
    \\STX\EOT\DC2\DC2\ACK\221\EOT\NUL\245\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\DC2\SOH\DC2\EOT\221\EOT\b\EM\n\
    \\170\SOH\n\
    \\EOT\EOT\DC2\STX\NUL\DC2\EOT\227\EOT\EOT\SUB\SUB\155\SOH\n\
    \The funded but not yet signed PSBT that sends the exact channel capacity\n\
    \amount to the PK script returned in the open channel message in a previous\n\
    \step.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\ENQ\DC2\EOT\227\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\SOH\DC2\EOT\227\EOT\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\ETX\DC2\EOT\227\EOT\CAN\EM\n\
    \J\n\
    \\EOT\EOT\DC2\STX\SOH\DC2\EOT\230\EOT\EOT\RS\SUB< The pending channel ID of the channel to get the PSBT for.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\SOH\ENQ\DC2\EOT\230\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\SOH\SOH\DC2\EOT\230\EOT\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\SOH\ETX\DC2\EOT\230\EOT\FS\GS\n\
    \\215\ENQ\n\
    \\EOT\EOT\DC2\STX\STX\DC2\EOT\244\EOT\EOT\ESC\SUB\200\ENQ\n\
    \Can only be used if the no_publish flag was set to true in the OpenChannel\n\
    \call meaning that the caller is solely responsible for publishing the final\n\
    \funding transaction. If skip_finalize is set to true then lnd will not wait\n\
    \for a FundingPsbtFinalize state step and instead assumes that a transaction\n\
    \with the same TXID as the passed in PSBT will eventually confirm.\n\
    \IT IS ABSOLUTELY IMPERATIVE that the TXID of the transaction that is\n\
    \eventually published does have the _same TXID_ as the verified PSBT. That\n\
    \means no inputs or outputs can change, only signatures can be added. If the\n\
    \TXID changes between this call and the publish step then the channel will\n\
    \never be created and the funds will be in limbo.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\STX\ENQ\DC2\EOT\244\EOT\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\STX\SOH\DC2\EOT\244\EOT\t\SYN\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\STX\ETX\DC2\EOT\244\EOT\EM\SUB\n\
    \\f\n\
    \\STX\EOT\DC3\DC2\ACK\247\EOT\NUL\136\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\DC3\SOH\DC2\EOT\247\EOT\b\ESC\n\
    \\227\SOH\n\
    \\EOT\EOT\DC3\STX\NUL\DC2\EOT\253\EOT\EOT\SUB\SUB\212\SOH\n\
    \The funded PSBT that contains all witness data to send the exact channel\n\
    \capacity amount to the PK script returned in the open channel message in a\n\
    \previous step. Cannot be set at the same time as final_raw_tx.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\ENQ\DC2\EOT\253\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\SOH\DC2\EOT\253\EOT\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\ETX\DC2\EOT\253\EOT\CAN\EM\n\
    \J\n\
    \\EOT\EOT\DC3\STX\SOH\DC2\EOT\128\ENQ\EOT\RS\SUB< The pending channel ID of the channel to get the PSBT for.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\ENQ\DC2\EOT\128\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\SOH\DC2\EOT\128\ENQ\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\ETX\DC2\EOT\128\ENQ\FS\GS\n\
    \\193\SOH\n\
    \\EOT\EOT\DC3\STX\STX\DC2\EOT\135\ENQ\EOT\ESC\SUB\178\SOH\n\
    \As an alternative to the signed PSBT with all witness data, the final raw\n\
    \wire format transaction can also be specified directly. Cannot be set at the\n\
    \same time as signed_psbt.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\ENQ\DC2\EOT\135\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\SOH\DC2\EOT\135\ENQ\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\ETX\DC2\EOT\135\ENQ\EM\SUB\n\
    \\f\n\
    \\STX\EOT\DC4\DC2\ACK\138\ENQ\NUL\165\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\DC4\SOH\DC2\EOT\138\ENQ\b\FS\n\
    \\SO\n\
    \\EOT\EOT\DC4\b\NUL\DC2\ACK\139\ENQ\EOT\164\ENQ\ENQ\n\
    \\r\n\
    \\ENQ\EOT\DC4\b\NUL\SOH\DC2\EOT\139\ENQ\n\
    \\DC1\n\
    \\194\SOH\n\
    \\EOT\EOT\DC4\STX\NUL\DC2\EOT\145\ENQ\b&\SUB\179\SOH\n\
    \The funding shim to register. This should be used before any\n\
    \channel funding has began by the remote party, as it is intended as a\n\
    \preparatory step for the full channel funding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\ACK\DC2\EOT\145\ENQ\b\DC3\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\SOH\DC2\EOT\145\ENQ\DC4!\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\ETX\DC2\EOT\145\ENQ$%\n\
    \C\n\
    \\EOT\EOT\DC4\STX\SOH\DC2\EOT\148\ENQ\b*\SUB5 Used to cancel an existing registered funding shim.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\SOH\ACK\DC2\EOT\148\ENQ\b\EM\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\SOH\SOH\DC2\EOT\148\ENQ\SUB%\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\SOH\ETX\DC2\EOT\148\ENQ()\n\
    \\181\SOH\n\
    \\EOT\EOT\DC4\STX\STX\DC2\EOT\155\ENQ\b*\SUB\166\SOH\n\
    \Used to continue a funding flow that was initiated to be executed\n\
    \through a PSBT. This step verifies that the PSBT contains the correct\n\
    \outputs to fund the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\STX\ACK\DC2\EOT\155\ENQ\b\EM\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\STX\SOH\DC2\EOT\155\ENQ\SUB%\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\STX\ETX\DC2\EOT\155\ENQ()\n\
    \\238\SOH\n\
    \\EOT\EOT\DC4\STX\ETX\DC2\EOT\163\ENQ\b.\SUB\223\SOH\n\
    \Used to continue a funding flow that was initiated to be executed\n\
    \through a PSBT. This step finalizes the funded and signed PSBT, finishes\n\
    \negotiation with the peer and finally publishes the resulting funding\n\
    \transaction.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\ETX\ACK\DC2\EOT\163\ENQ\b\ESC\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\ETX\SOH\DC2\EOT\163\ENQ\FS)\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\ETX\ETX\DC2\EOT\163\ENQ,-\n\
    \\f\n\
    \\STX\EOT\NAK\DC2\ACK\167\ENQ\NUL\168\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\NAK\SOH\DC2\EOT\167\ENQ\b\FS\n\
    \\f\n\
    \\STX\EOT\SYN\DC2\ACK\170\ENQ\NUL\192\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\SYN\SOH\DC2\EOT\170\ENQ\b\DC3\n\
    \G\n\
    \\EOT\EOT\SYN\STX\NUL\DC2\EOT\172\ENQ\EOT\SYN\SUB9 The direction within the channel that the htlc was sent\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\ENQ\DC2\EOT\172\ENQ\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\SOH\DC2\EOT\172\ENQ\t\DC1\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\ETX\DC2\EOT\172\ENQ\DC4\NAK\n\
    \+\n\
    \\EOT\EOT\SYN\STX\SOH\DC2\EOT\175\ENQ\EOT\NAK\SUB\GS The total value of the htlc\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\SOH\ENQ\DC2\EOT\175\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\SOH\SOH\DC2\EOT\175\ENQ\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\SOH\ETX\DC2\EOT\175\ENQ\DC3\DC4\n\
    \F\n\
    \\EOT\EOT\SYN\STX\STX\DC2\EOT\178\ENQ\EOT\CAN\SUB8 The final output to be swept back to the user's wallet\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\STX\ENQ\DC2\EOT\178\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\STX\SOH\DC2\EOT\178\ENQ\v\DC3\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\STX\ETX\DC2\EOT\178\ENQ\SYN\ETB\n\
    \M\n\
    \\EOT\EOT\SYN\STX\ETX\DC2\EOT\181\ENQ\EOT\US\SUB? The next block height at which we can spend the current stage\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ETX\ENQ\DC2\EOT\181\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ETX\SOH\DC2\EOT\181\ENQ\v\SUB\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ETX\ETX\DC2\EOT\181\ENQ\GS\RS\n\
    \\161\SOH\n\
    \\EOT\EOT\SYN\STX\EOT\DC2\EOT\188\ENQ\EOT\"\SUB\146\SOH\n\
    \The number of blocks remaining until the current stage can be swept.\n\
    \Negative values indicate how many blocks have passed since becoming\n\
    \mature.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\EOT\ENQ\DC2\EOT\188\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\EOT\SOH\DC2\EOT\188\ENQ\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\EOT\ETX\DC2\EOT\188\ENQ !\n\
    \V\n\
    \\EOT\EOT\SYN\STX\ENQ\DC2\EOT\191\ENQ\EOT\NAK\SUBH Indicates whether the htlc is in its first or second stage of recovery\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ENQ\ENQ\DC2\EOT\191\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ENQ\SOH\DC2\EOT\191\ENQ\v\DLE\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\ENQ\ETX\DC2\EOT\191\ENQ\DC3\DC4\n\
    \\f\n\
    \\STX\EOT\ETB\DC2\ACK\194\ENQ\NUL\195\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\ETB\SOH\DC2\EOT\194\ENQ\b\RS\n\
    \\f\n\
    \\STX\EOT\CAN\DC2\ACK\196\ENQ\NUL\228\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\CAN\SOH\DC2\EOT\196\ENQ\b\US\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\NUL\DC2\ACK\197\ENQ\EOT\224\ENQ\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\NUL\SOH\DC2\EOT\197\ENQ\f\SUB\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\NUL\DC2\EOT\198\ENQ\b#\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\NUL\ENQ\DC2\EOT\198\ENQ\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\NUL\SOH\DC2\EOT\198\ENQ\SI\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\NUL\ETX\DC2\EOT\198\ENQ!\"\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\SOH\DC2\EOT\199\ENQ\b!\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\SOH\ENQ\DC2\EOT\199\ENQ\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\SOH\SOH\DC2\EOT\199\ENQ\SI\FS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\SOH\ETX\DC2\EOT\199\ENQ\US \n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\STX\DC2\EOT\201\ENQ\b\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\STX\ENQ\DC2\EOT\201\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\STX\SOH\DC2\EOT\201\ENQ\SO\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\STX\ETX\DC2\EOT\201\ENQ\EM\SUB\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\ETX\DC2\EOT\203\ENQ\b \n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ETX\ENQ\DC2\EOT\203\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ETX\SOH\DC2\EOT\203\ENQ\SO\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ETX\ETX\DC2\EOT\203\ENQ\RS\US\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\EOT\DC2\EOT\204\ENQ\b!\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\EOT\ENQ\DC2\EOT\204\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\EOT\SOH\DC2\EOT\204\ENQ\SO\FS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\EOT\ETX\DC2\EOT\204\ENQ\US \n\
    \X\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\ENQ\DC2\EOT\208\ENQ\b)\SUBH The minimum satoshis this node is required to reserve in its\n\
    \ balance.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ENQ\ENQ\DC2\EOT\208\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ENQ\SOH\DC2\EOT\208\ENQ\SO$\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ENQ\ETX\DC2\EOT\208\ENQ'(\n\
    \\\\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\ACK\DC2\EOT\214\ENQ\b*\SUBL\n\
    \The minimum satoshis the other node is required to reserve in its\n\
    \balance.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ACK\ENQ\DC2\EOT\214\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ACK\SOH\DC2\EOT\214\ENQ\SO%\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\ACK\ETX\DC2\EOT\214\ENQ()\n\
    \?\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\a\DC2\EOT\217\ENQ\b \SUB/ The party that initiated opening the channel.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\a\ACK\DC2\EOT\217\ENQ\b\DC1\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\a\SOH\DC2\EOT\217\ENQ\DC2\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\a\ETX\DC2\EOT\217\ENQ\RS\US\n\
    \;\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\b\DC2\EOT\220\ENQ\b+\SUB+ The commitment type used by this channel.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\b\ACK\DC2\EOT\220\ENQ\b\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\b\SOH\DC2\EOT\220\ENQ\ETB&\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\b\ETX\DC2\EOT\220\ENQ)*\n\
    \N\n\
    \\ACK\EOT\CAN\ETX\NUL\STX\t\DC2\EOT\223\ENQ\b+\SUB> Total number of forwarding packages created in this channel.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\t\ENQ\DC2\EOT\223\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\t\SOH\DC2\EOT\223\ENQ\SO%\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\NUL\STX\t\ETX\DC2\EOT\223\ENQ(*\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\SOH\DC2\ACK\226\ENQ\EOT\251\ENQ\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\SOH\SOH\DC2\EOT\226\ENQ\f\RS\n\
    \%\n\
    \\ACK\EOT\CAN\ETX\SOH\STX\NUL\DC2\EOT\228\ENQ\b#\SUB\NAK The pending channel\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\NUL\ACK\DC2\EOT\228\ENQ\b\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\NUL\SOH\DC2\EOT\228\ENQ\ETB\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\NUL\ETX\DC2\EOT\228\ENQ!\"\n\
    \D\n\
    \\ACK\EOT\CAN\ETX\SOH\STX\SOH\DC2\EOT\231\ENQ\b'\SUB4 The height at which this channel will be confirmed\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\SOH\ENQ\DC2\EOT\231\ENQ\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\SOH\SOH\DC2\EOT\231\ENQ\SI\"\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\SOH\ETX\DC2\EOT\231\ENQ%&\n\
    \\174\STX\n\
    \\ACK\EOT\CAN\ETX\SOH\STX\STX\DC2\EOT\240\ENQ\b\GS\SUB\157\STX\n\
    \The amount calculated to be paid in fees for the current set of\n\
    \commitment transactions. The fee amount is persisted with the channel\n\
    \in order to allow the fee amount to be removed and recalculated with\n\
    \each channel state update, including updates that happen after a system\n\
    \restart.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\STX\ENQ\DC2\EOT\240\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\STX\SOH\DC2\EOT\240\ENQ\SO\CAN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\STX\ETX\DC2\EOT\240\ENQ\ESC\FS\n\
    \:\n\
    \\ACK\EOT\CAN\ETX\SOH\STX\ETX\DC2\EOT\243\ENQ\b \SUB* The weight of the commitment transaction\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\ETX\ENQ\DC2\EOT\243\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\ETX\SOH\DC2\EOT\243\ENQ\SO\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\ETX\ETX\DC2\EOT\243\ENQ\RS\US\n\
    \\227\SOH\n\
    \\ACK\EOT\CAN\ETX\SOH\STX\EOT\DC2\EOT\250\ENQ\b\GS\SUB\210\SOH\n\
    \The required number of satoshis per kilo-weight that the requester will\n\
    \pay at all times, for both the funding transaction and commitment\n\
    \transaction. This value can later be updated once the channel is open.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\EOT\ENQ\DC2\EOT\250\ENQ\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\EOT\SOH\DC2\EOT\250\ENQ\SO\CAN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\SOH\STX\EOT\ETX\DC2\EOT\250\ENQ\ESC\FS\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\STX\DC2\ACK\253\ENQ\EOT\137\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\STX\SOH\DC2\EOT\253\ENQ\f\US\n\
    \G\n\
    \\ACK\EOT\CAN\ETX\STX\STX\NUL\DC2\EOT\255\ENQ\b#\SUB7 The pending channel waiting for closing tx to confirm\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\NUL\ACK\DC2\EOT\255\ENQ\b\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\NUL\SOH\DC2\EOT\255\ENQ\ETB\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\NUL\ETX\DC2\EOT\255\ENQ!\"\n\
    \D\n\
    \\ACK\EOT\CAN\ETX\STX\STX\SOH\DC2\EOT\130\ACK\b \SUB4 The balance in satoshis encumbered in this channel\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\SOH\ENQ\DC2\EOT\130\ACK\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\SOH\SOH\DC2\EOT\130\ACK\SO\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\SOH\ETX\DC2\EOT\130\ACK\RS\US\n\
    \b\n\
    \\ACK\EOT\CAN\ETX\STX\STX\STX\DC2\EOT\136\ACK\b$\SUBR\n\
    \A list of valid commitment transactions. Any of these can confirm at\n\
    \this point.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\STX\ACK\DC2\EOT\136\ACK\b\DC3\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\STX\SOH\DC2\EOT\136\ACK\DC4\US\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\STX\STX\STX\ETX\DC2\EOT\136\ACK\"#\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\ETX\DC2\ACK\139\ACK\EOT\166\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\ETX\SOH\DC2\EOT\139\ACK\f\ETB\n\
    \A\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\NUL\DC2\EOT\141\ACK\b\RS\SUB1 Hash of the local version of the commitment tx.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\NUL\ENQ\DC2\EOT\141\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\NUL\SOH\DC2\EOT\141\ACK\SI\EM\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\NUL\ETX\DC2\EOT\141\ACK\FS\GS\n\
    \B\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\SOH\DC2\EOT\144\ACK\b\US\SUB2 Hash of the remote version of the commitment tx.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\SOH\ENQ\DC2\EOT\144\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\SOH\SOH\DC2\EOT\144\ACK\SI\SUB\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\SOH\ETX\DC2\EOT\144\ACK\GS\RS\n\
    \J\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\STX\DC2\EOT\147\ACK\b'\SUB: Hash of the remote pending version of the commitment tx.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\STX\ENQ\DC2\EOT\147\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\STX\SOH\DC2\EOT\147\ACK\SI\"\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\STX\ETX\DC2\EOT\147\ACK%&\n\
    \`\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\ETX\DC2\EOT\153\ACK\b(\SUBP\n\
    \The amount in satoshis calculated to be paid in fees for the local\n\
    \commitment.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ETX\ENQ\DC2\EOT\153\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ETX\SOH\DC2\EOT\153\ACK\SI#\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ETX\ETX\DC2\EOT\153\ACK&'\n\
    \a\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\EOT\DC2\EOT\159\ACK\b)\SUBQ\n\
    \The amount in satoshis calculated to be paid in fees for the remote\n\
    \commitment.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\EOT\ENQ\DC2\EOT\159\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\EOT\SOH\DC2\EOT\159\ACK\SI$\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\EOT\ETX\DC2\EOT\159\ACK'(\n\
    \i\n\
    \\ACK\EOT\CAN\ETX\ETX\STX\ENQ\DC2\EOT\165\ACK\b1\SUBY\n\
    \The amount in satoshis calculated to be paid in fees for the remote\n\
    \pending commitment.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ENQ\ENQ\DC2\EOT\165\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ENQ\SOH\DC2\EOT\165\ACK\SI,\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ETX\STX\ENQ\ETX\DC2\EOT\165\ACK/0\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\EOT\DC2\ACK\168\ACK\EOT\174\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\EOT\SOH\DC2\EOT\168\ACK\f\EM\n\
    \2\n\
    \\ACK\EOT\CAN\ETX\EOT\STX\NUL\DC2\EOT\170\ACK\b#\SUB\" The pending channel to be closed\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\NUL\ACK\DC2\EOT\170\ACK\b\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\NUL\SOH\DC2\EOT\170\ACK\ETB\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\NUL\ETX\DC2\EOT\170\ACK!\"\n\
    \?\n\
    \\ACK\EOT\CAN\ETX\EOT\STX\SOH\DC2\EOT\173\ACK\b \SUB/ The transaction id of the closing transaction\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\SOH\ENQ\DC2\EOT\173\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\SOH\SOH\DC2\EOT\173\ACK\SI\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\EOT\STX\SOH\ETX\DC2\EOT\173\ACK\RS\US\n\
    \\SO\n\
    \\EOT\EOT\CAN\ETX\ENQ\DC2\ACK\176\ACK\EOT\208\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\CAN\ETX\ENQ\SOH\DC2\EOT\176\ACK\f\RS\n\
    \8\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\NUL\DC2\EOT\178\ACK\b#\SUB( The pending channel to be force closed\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\NUL\ACK\DC2\EOT\178\ACK\b\SYN\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\NUL\SOH\DC2\EOT\178\ACK\ETB\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\NUL\ETX\DC2\EOT\178\ACK!\"\n\
    \?\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\SOH\DC2\EOT\181\ACK\b \SUB/ The transaction id of the closing transaction\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\SOH\ENQ\DC2\EOT\181\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\SOH\SOH\DC2\EOT\181\ACK\SI\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\SOH\ETX\DC2\EOT\181\ACK\RS\US\n\
    \L\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\STX\DC2\EOT\184\ACK\b \SUB< The balance in satoshis encumbered in this pending channel\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\STX\ENQ\DC2\EOT\184\ACK\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\STX\SOH\DC2\EOT\184\ACK\SO\ESC\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\STX\ETX\DC2\EOT\184\ACK\RS\US\n\
    \H\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\ETX\DC2\EOT\187\ACK\b#\SUB8 The height at which funds can be swept into the wallet\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ETX\ENQ\DC2\EOT\187\ACK\b\SO\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ETX\SOH\DC2\EOT\187\ACK\SI\RS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ETX\ETX\DC2\EOT\187\ACK!\"\n\
    \\158\SOH\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\EOT\DC2\EOT\194\ACK\b&\SUB\141\SOH\n\
    \Remaining # of blocks until the commitment output can be swept.\n\
    \Negative values indicate how many blocks have passed since becoming\n\
    \mature.\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\EOT\ENQ\DC2\EOT\194\ACK\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\EOT\SOH\DC2\EOT\194\ACK\SO!\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\EOT\ETX\DC2\EOT\194\ACK$%\n\
    \S\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\ENQ\DC2\EOT\197\ACK\b$\SUBC The total value of funds successfully recovered from this channel\n\
    \\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ENQ\ENQ\DC2\EOT\197\ACK\b\r\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ENQ\SOH\DC2\EOT\197\ACK\SO\US\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ENQ\ETX\DC2\EOT\197\ACK\"#\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\ACK\DC2\EOT\199\ACK\b/\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ACK\EOT\DC2\EOT\199\ACK\b\DLE\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ACK\ACK\DC2\EOT\199\ACK\DC1\FS\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ACK\SOH\DC2\EOT\199\ACK\GS*\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\ACK\ETX\DC2\EOT\199\ACK-.\n\
    \\DLE\n\
    \\ACK\EOT\CAN\ETX\ENQ\EOT\NUL\DC2\ACK\201\ACK\b\205\ACK\t\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\EOT\NUL\SOH\DC2\EOT\201\ACK\r\CAN\n\
    \\DLE\n\
    \\b\EOT\CAN\ETX\ENQ\EOT\NUL\STX\NUL\DC2\EOT\202\ACK\f\SYN\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\NUL\SOH\DC2\EOT\202\ACK\f\DC1\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\NUL\STX\DC2\EOT\202\ACK\DC4\NAK\n\
    \\DLE\n\
    \\b\EOT\CAN\ETX\ENQ\EOT\NUL\STX\SOH\DC2\EOT\203\ACK\f\SUB\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\SOH\SOH\DC2\EOT\203\ACK\f\NAK\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\SOH\STX\DC2\EOT\203\ACK\CAN\EM\n\
    \\DLE\n\
    \\b\EOT\CAN\ETX\ENQ\EOT\NUL\STX\STX\DC2\EOT\204\ACK\f\NAK\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\STX\SOH\DC2\EOT\204\ACK\f\DLE\n\
    \\DC1\n\
    \\t\EOT\CAN\ETX\ENQ\EOT\NUL\STX\STX\STX\DC2\EOT\204\ACK\DC3\DC4\n\
    \\SO\n\
    \\ACK\EOT\CAN\ETX\ENQ\STX\a\DC2\EOT\207\ACK\b\US\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\a\ACK\DC2\EOT\207\ACK\b\DC3\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\a\SOH\DC2\EOT\207\ACK\DC4\SUB\n\
    \\SI\n\
    \\a\EOT\CAN\ETX\ENQ\STX\a\ETX\DC2\EOT\207\ACK\GS\RS\n\
    \F\n\
    \\EOT\EOT\CAN\STX\NUL\DC2\EOT\211\ACK\EOT\"\SUB8 The balance in satoshis encumbered in pending channels\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\ENQ\DC2\EOT\211\ACK\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\SOH\DC2\EOT\211\ACK\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\ETX\DC2\EOT\211\ACK !\n\
    \(\n\
    \\EOT\EOT\CAN\STX\SOH\DC2\EOT\214\ACK\EOT:\SUB\SUB Channels pending opening\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\SOH\EOT\DC2\EOT\214\ACK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\SOH\ACK\DC2\EOT\214\ACK\r\US\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\SOH\SOH\DC2\EOT\214\ACK 5\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\SOH\ETX\DC2\EOT\214\ACK89\n\
    \\209\SOH\n\
    \\EOT\EOT\CAN\STX\STX\DC2\EOT\221\ACK\EOTL\SUB\194\SOH\n\
    \Deprecated: Channels pending closing previously contained cooperatively\n\
    \closed channels with a single confirmation. These channels are now\n\
    \considered closed from the time we see them on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\STX\EOT\DC2\EOT\221\ACK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\STX\ACK\DC2\EOT\221\ACK\r\SUB\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\STX\SOH\DC2\EOT\221\ACK\ESC3\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\STX\ETX\DC2\EOT\221\ACK67\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\STX\b\DC2\EOT\221\ACK8K\n\
    \\SO\n\
    \\ACK\EOT\CAN\STX\STX\b\ETX\DC2\EOT\221\ACK9J\n\
    \.\n\
    \\EOT\EOT\CAN\STX\ETX\DC2\EOT\224\ACK\EOTC\SUB  Channels pending force closing\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\ETX\EOT\DC2\EOT\224\ACK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\ETX\ACK\DC2\EOT\224\ACK\r\US\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\ETX\SOH\DC2\EOT\224\ACK >\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\ETX\ETX\DC2\EOT\224\ACKAB\n\
    \:\n\
    \\EOT\EOT\CAN\STX\EOT\DC2\EOT\227\ACK\EOT<\SUB, Channels waiting for closing tx to confirm\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\EOT\EOT\DC2\EOT\227\ACK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\EOT\ACK\DC2\EOT\227\ACK\r \n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\EOT\SOH\DC2\EOT\227\ACK!7\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\EOT\ETX\DC2\EOT\227\ACK:;\n\
    \\f\n\
    \\STX\EOT\EM\DC2\ACK\230\ACK\NUL\231\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\EM\SOH\DC2\EOT\230\ACK\b \n\
    \\f\n\
    \\STX\EOT\SUB\DC2\ACK\233\ACK\NUL\253\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\SUB\SOH\DC2\EOT\233\ACK\b\SUB\n\
    \\SO\n\
    \\EOT\EOT\SUB\b\NUL\DC2\ACK\234\ACK\EOT\241\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\SUB\b\NUL\SOH\DC2\EOT\234\ACK\n\
    \\DC1\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\NUL\DC2\EOT\235\ACK\b!\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\ACK\DC2\EOT\235\ACK\b\SI\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\SOH\DC2\EOT\235\ACK\DLE\FS\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\ETX\DC2\EOT\235\ACK\US \n\
    \\f\n\
    \\EOT\EOT\SUB\STX\SOH\DC2\EOT\236\ACK\b/\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\ACK\DC2\EOT\236\ACK\b\ESC\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\SOH\DC2\EOT\236\ACK\FS*\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\ETX\DC2\EOT\236\ACK-.\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\STX\DC2\EOT\237\ACK\b(\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\STX\ACK\DC2\EOT\237\ACK\b\DC4\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\STX\SOH\DC2\EOT\237\ACK\NAK#\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\STX\ETX\DC2\EOT\237\ACK&'\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\ETX\DC2\EOT\238\ACK\b*\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ETX\ACK\DC2\EOT\238\ACK\b\DC4\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ETX\SOH\DC2\EOT\238\ACK\NAK%\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ETX\ETX\DC2\EOT\238\ACK()\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\EOT\DC2\EOT\239\ACK\b/\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\EOT\ACK\DC2\EOT\239\ACK\b\NAK\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\EOT\SOH\DC2\EOT\239\ACK\SYN*\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\EOT\ETX\DC2\EOT\239\ACK-.\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\ENQ\DC2\EOT\240\ACK\b0\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ENQ\ACK\DC2\EOT\240\ACK\b\DC4\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ENQ\SOH\DC2\EOT\240\ACK\NAK+\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ENQ\ETX\DC2\EOT\240\ACK./\n\
    \\SO\n\
    \\EOT\EOT\SUB\EOT\NUL\DC2\ACK\243\ACK\EOT\250\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\SUB\EOT\NUL\SOH\DC2\EOT\243\ACK\t\DC3\n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\NUL\DC2\EOT\244\ACK\b\EM\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\NUL\SOH\DC2\EOT\244\ACK\b\DC4\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\NUL\STX\DC2\EOT\244\ACK\ETB\CAN\n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\SOH\DC2\EOT\245\ACK\b\ESC\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\SOH\SOH\DC2\EOT\245\ACK\b\SYN\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\SOH\STX\DC2\EOT\245\ACK\EM\SUB\n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\STX\DC2\EOT\246\ACK\b\ESC\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\STX\SOH\DC2\EOT\246\ACK\b\SYN\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\STX\STX\DC2\EOT\246\ACK\EM\SUB\n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\ETX\DC2\EOT\247\ACK\b\GS\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\ETX\SOH\DC2\EOT\247\ACK\b\CAN\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\ETX\STX\DC2\EOT\247\ACK\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\EOT\DC2\EOT\248\ACK\b!\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\EOT\SOH\DC2\EOT\248\ACK\b\FS\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\EOT\STX\DC2\EOT\248\ACK\US \n\
    \\SO\n\
    \\ACK\EOT\SUB\EOT\NUL\STX\ENQ\DC2\EOT\249\ACK\b#\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\ENQ\SOH\DC2\EOT\249\ACK\b\RS\n\
    \\SI\n\
    \\a\EOT\SUB\EOT\NUL\STX\ENQ\STX\DC2\EOT\249\ACK!\"\n\
    \\f\n\
    \\EOT\EOT\SUB\STX\ACK\DC2\EOT\252\ACK\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ACK\ACK\DC2\EOT\252\ACK\EOT\SO\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ACK\SOH\DC2\EOT\252\ACK\SI\DC3\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\ACK\ETX\DC2\EOT\252\ACK\SYN\ETB\n\
    \\f\n\
    \\STX\EOT\ESC\DC2\ACK\255\ACK\NUL\133\a\SOH\n\
    \\v\n\
    \\ETX\EOT\ESC\SOH\DC2\EOT\255\ACK\b\FS\n\
    \O\n\
    \\EOT\EOT\ESC\STX\NUL\DC2\EOT\129\a\EOT \SUBA The confirmed balance of the account (with >= 1 confirmations).\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\ENQ\DC2\EOT\129\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\SOH\DC2\EOT\129\a\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\ETX\DC2\EOT\129\a\RS\US\n\
    \N\n\
    \\EOT\EOT\ESC\STX\SOH\DC2\EOT\132\a\EOT\"\SUB@ The unconfirmed balance of the account (with 0 confirmations).\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\ENQ\DC2\EOT\132\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\SOH\DC2\EOT\132\a\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\ETX\DC2\EOT\132\a !\n\
    \\f\n\
    \\STX\EOT\FS\DC2\ACK\135\a\NUL\136\a\SOH\n\
    \\v\n\
    \\ETX\EOT\FS\SOH\DC2\EOT\135\a\b\FS\n\
    \\f\n\
    \\STX\EOT\GS\DC2\ACK\138\a\NUL\150\a\SOH\n\
    \\v\n\
    \\ETX\EOT\GS\SOH\DC2\EOT\138\a\b\GS\n\
    \)\n\
    \\EOT\EOT\GS\STX\NUL\DC2\EOT\140\a\EOT\FS\SUB\ESC The balance of the wallet\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\ENQ\DC2\EOT\140\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\SOH\DC2\EOT\140\a\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\ETX\DC2\EOT\140\a\SUB\ESC\n\
    \J\n\
    \\EOT\EOT\GS\STX\SOH\DC2\EOT\143\a\EOT \SUB< The confirmed balance of a wallet(with >= 1 confirmations)\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\SOH\ENQ\DC2\EOT\143\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\SOH\SOH\DC2\EOT\143\a\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\SOH\ETX\DC2\EOT\143\a\RS\US\n\
    \I\n\
    \\EOT\EOT\GS\STX\STX\DC2\EOT\146\a\EOT\"\SUB; The unconfirmed balance of a wallet(with 0 confirmations)\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\STX\ENQ\DC2\EOT\146\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\STX\SOH\DC2\EOT\146\a\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\STX\ETX\DC2\EOT\146\a !\n\
    \G\n\
    \\EOT\EOT\GS\STX\ETX\DC2\EOT\149\a\EOT:\SUB9 A mapping of each wallet account's name to its balance.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\ETX\ACK\DC2\EOT\149\a\EOT%\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\ETX\SOH\DC2\EOT\149\a&5\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\ETX\ETX\DC2\EOT\149\a89\n\
    \\f\n\
    \\STX\EOT\RS\DC2\ACK\152\a\NUL\158\a\SOH\n\
    \\v\n\
    \\ETX\EOT\RS\SOH\DC2\EOT\152\a\b\SO\n\
    \.\n\
    \\EOT\EOT\RS\STX\NUL\DC2\EOT\154\a\EOT\DC3\SUB  Value denominated in satoshis.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\NUL\ENQ\DC2\EOT\154\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\NUL\SOH\DC2\EOT\154\a\v\SO\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\NUL\ETX\DC2\EOT\154\a\DC1\DC2\n\
    \4\n\
    \\EOT\EOT\RS\STX\SOH\DC2\EOT\157\a\EOT\DC4\SUB& Value denominated in milli-satoshis.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\SOH\ENQ\DC2\EOT\157\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\SOH\SOH\DC2\EOT\157\a\v\SI\n\
    \\r\n\
    \\ENQ\EOT\RS\STX\SOH\ETX\DC2\EOT\157\a\DC2\DC3\n\
    \\f\n\
    \\STX\EOT\US\DC2\ACK\160\a\NUL\161\a\SOH\n\
    \\v\n\
    \\ETX\EOT\US\SOH\DC2\EOT\160\a\b\GS\n\
    \\f\n\
    \\STX\EOT \DC2\ACK\162\a\NUL\186\a\SOH\n\
    \\v\n\
    \\ETX\EOT \SOH\DC2\EOT\162\a\b\RS\n\
    \L\n\
    \\EOT\EOT \STX\NUL\DC2\EOT\164\a\EOT*\SUB> Deprecated. Sum of channels balances denominated in satoshis\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\ENQ\DC2\EOT\164\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\SOH\DC2\EOT\164\a\n\
    \\DC1\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\ETX\DC2\EOT\164\a\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\b\DC2\EOT\164\a\SYN)\n\
    \\SO\n\
    \\ACK\EOT \STX\NUL\b\ETX\DC2\EOT\164\a\ETB(\n\
    \T\n\
    \\EOT\EOT \STX\SOH\DC2\EOT\167\a\EOT7\SUBF Deprecated. Sum of channels pending balances denominated in satoshis\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\ENQ\DC2\EOT\167\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\SOH\DC2\EOT\167\a\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\ETX\DC2\EOT\167\a!\"\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\b\DC2\EOT\167\a#6\n\
    \\SO\n\
    \\ACK\EOT \STX\SOH\b\ETX\DC2\EOT\167\a$5\n\
    \/\n\
    \\EOT\EOT \STX\STX\DC2\EOT\170\a\EOT\GS\SUB! Sum of channels local balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\STX\ACK\DC2\EOT\170\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\STX\SOH\DC2\EOT\170\a\v\CAN\n\
    \\r\n\
    \\ENQ\EOT \STX\STX\ETX\DC2\EOT\170\a\ESC\FS\n\
    \0\n\
    \\EOT\EOT \STX\ETX\DC2\EOT\173\a\EOT\RS\SUB\" Sum of channels remote balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\ACK\DC2\EOT\173\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\SOH\DC2\EOT\173\a\v\EM\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\ETX\DC2\EOT\173\a\FS\GS\n\
    \9\n\
    \\EOT\EOT \STX\EOT\DC2\EOT\176\a\EOT'\SUB+ Sum of channels local unsettled balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\ACK\DC2\EOT\176\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\SOH\DC2\EOT\176\a\v\"\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\ETX\DC2\EOT\176\a%&\n\
    \:\n\
    \\EOT\EOT \STX\ENQ\DC2\EOT\179\a\EOT(\SUB, Sum of channels remote unsettled balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\ACK\DC2\EOT\179\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\SOH\DC2\EOT\179\a\v#\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\ETX\DC2\EOT\179\a&'\n\
    \7\n\
    \\EOT\EOT \STX\ACK\DC2\EOT\182\a\EOT*\SUB) Sum of channels pending local balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ACK\ACK\DC2\EOT\182\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ACK\SOH\DC2\EOT\182\a\v%\n\
    \\r\n\
    \\ENQ\EOT \STX\ACK\ETX\DC2\EOT\182\a()\n\
    \8\n\
    \\EOT\EOT \STX\a\DC2\EOT\185\a\EOT+\SUB* Sum of channels pending remote balances.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\a\ACK\DC2\EOT\185\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\a\SOH\DC2\EOT\185\a\v&\n\
    \\r\n\
    \\ENQ\EOT \STX\a\ETX\DC2\EOT\185\a)*\n\
    \\f\n\
    \\STX\EOT!\DC2\ACK\188\a\NUL\166\b\SOH\n\
    \\v\n\
    \\ETX\EOT!\SOH\DC2\EOT\188\a\b\SUB\n\
    \N\n\
    \\EOT\EOT!\STX\NUL\DC2\EOT\190\a\EOT\ETB\SUB@ The 33-byte hex-encoded public key for the payment destination\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\ENQ\DC2\EOT\190\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\SOH\DC2\EOT\190\a\v\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\ETX\DC2\EOT\190\a\NAK\SYN\n\
    \n\n\
    \\EOT\EOT!\STX\SOH\DC2\EOT\197\a\EOT\DC2\SUB`\n\
    \The amount to send expressed in satoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\ENQ\DC2\EOT\197\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\SOH\DC2\EOT\197\a\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\ETX\DC2\EOT\197\a\DLE\DC1\n\
    \s\n\
    \\EOT\EOT!\STX\STX\DC2\EOT\204\a\EOT\CAN\SUBe\n\
    \The amount to send expressed in millisatoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\ENQ\DC2\EOT\204\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\SOH\DC2\EOT\204\a\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\ETX\DC2\EOT\204\a\NAK\ETB\n\
    \\v\n\
    \\ETX\EOT!\t\DC2\EOT\206\a\EOT\SI\n\
    \\f\n\
    \\EOT\EOT!\t\NUL\DC2\EOT\206\a\r\SO\n\
    \\r\n\
    \\ENQ\EOT!\t\NUL\SOH\DC2\EOT\206\a\r\SO\n\
    \\r\n\
    \\ENQ\EOT!\t\NUL\STX\DC2\EOT\206\a\r\SO\n\
    \\245\STX\n\
    \\EOT\EOT!\STX\ETX\DC2\EOT\215\a\EOT\US\SUB\230\STX\n\
    \An optional CLTV delta from the current height that should be used for the\n\
    \timelock of the final hop. Note that unlike SendPayment, QueryRoutes does\n\
    \not add any additional block padding on top of final_ctlv_delta. This\n\
    \padding of a few blocks needs to be added manually or otherwise failures may\n\
    \happen when a block comes in while the payment is in flight.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\ENQ\DC2\EOT\215\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\SOH\DC2\EOT\215\a\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\ETX\DC2\EOT\215\a\GS\RS\n\
    \\130\STX\n\
    \\EOT\EOT!\STX\EOT\DC2\EOT\223\a\EOT\ESC\SUB\243\SOH\n\
    \The maximum number of satoshis that will be paid as a fee of the payment.\n\
    \This value can be represented either as a percentage of the amount being\n\
    \sent, or as a fixed amount of the maximum fee the user is willing the pay to\n\
    \send the payment.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\ACK\DC2\EOT\223\a\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\SOH\DC2\EOT\223\a\r\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\ETX\DC2\EOT\223\a\EM\SUB\n\
    \w\n\
    \\EOT\EOT!\STX\ENQ\DC2\EOT\229\a\EOT%\SUBi\n\
    \A list of nodes to ignore during path finding. When using REST, these fields\n\
    \must be encoded as base64.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\EOT\DC2\EOT\229\a\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\ENQ\DC2\EOT\229\a\r\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\SOH\DC2\EOT\229\a\DC3 \n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\ETX\DC2\EOT\229\a#$\n\
    \J\n\
    \\EOT\EOT!\STX\ACK\DC2\EOT\234\a\EOT?\SUB<\n\
    \Deprecated. A list of edges to ignore during path finding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\EOT\DC2\EOT\234\a\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\ACK\DC2\EOT\234\a\r\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\SOH\DC2\EOT\234\a\EM&\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\ETX\DC2\EOT\234\a)*\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\b\DC2\EOT\234\a+>\n\
    \\SO\n\
    \\ACK\EOT!\STX\ACK\b\ETX\DC2\EOT\234\a,=\n\
    \j\n\
    \\EOT\EOT!\STX\a\DC2\EOT\240\a\EOT\RS\SUB\\\n\
    \The source node where the request route should originated from. If empty,\n\
    \self is assumed.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\ENQ\DC2\EOT\240\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\SOH\DC2\EOT\240\a\v\EM\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\ETX\DC2\EOT\240\a\FS\GS\n\
    \n\n\
    \\EOT\EOT!\STX\b\DC2\EOT\246\a\EOT!\SUB`\n\
    \If set to true, edge probabilities from mission control will be used to get\n\
    \the optimal route.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\ENQ\DC2\EOT\246\a\EOT\b\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\SOH\DC2\EOT\246\a\t\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\ETX\DC2\EOT\246\a\US \n\
    \W\n\
    \\EOT\EOT!\STX\t\DC2\EOT\251\a\EOT)\SUBI\n\
    \A list of directed node pairs that will be ignored during path finding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\EOT\DC2\EOT\251\a\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\ACK\DC2\EOT\251\a\r\NAK\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\SOH\DC2\EOT\251\a\SYN#\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\ETX\DC2\EOT\251\a&(\n\
    \\231\SOH\n\
    \\EOT\EOT!\STX\n\
    \\DC2\EOT\130\b\EOT\ESC\SUB\216\SOH\n\
    \An optional maximum total time lock for the route. If the source is empty or\n\
    \ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If\n\
    \zero, then the value of `--max-cltv-expiry` is used as the limit.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\ENQ\DC2\EOT\130\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\SOH\DC2\EOT\130\b\v\NAK\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\ETX\DC2\EOT\130\b\CAN\SUB\n\
    \\162\ETX\n\
    \\EOT\EOT!\STX\v\DC2\EOT\140\b\EOT0\SUB\147\ETX\n\
    \An optional field that can be used to pass an arbitrary set of TLV records\n\
    \to a peer which understands the new records. This can be used to pass\n\
    \application specific data during the payment attempt. If the destination\n\
    \does not support the specified records, an error will be returned.\n\
    \Record types are required to be in the custom range >= 65536. When using\n\
    \REST, the values must be encoded as base64.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\ACK\DC2\EOT\140\b\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\SOH\DC2\EOT\140\b\ETB*\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\ETX\DC2\EOT\140\b-/\n\
    \t\n\
    \\EOT\EOT!\STX\f\DC2\EOT\146\b\EOT6\SUBf\n\
    \The channel id of the channel that must be taken to the first hop. If zero,\n\
    \any channel may be used.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\ENQ\DC2\EOT\146\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\SOH\DC2\EOT\146\b\v\ESC\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\ETX\DC2\EOT\146\b\RS \n\
    \\r\n\
    \\ENQ\EOT!\STX\f\b\DC2\EOT\146\b!5\n\
    \\SO\n\
    \\ACK\EOT!\STX\f\b\ACK\DC2\EOT\146\b\"4\n\
    \W\n\
    \\EOT\EOT!\STX\r\DC2\EOT\151\b\EOT\US\SUBI\n\
    \The pubkey of the last hop of the route. If empty, any hop may be used.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\ENQ\DC2\EOT\151\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\SOH\DC2\EOT\151\b\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\ETX\DC2\EOT\151\b\FS\RS\n\
    \W\n\
    \\EOT\EOT!\STX\SO\DC2\EOT\156\b\EOT.\SUBI\n\
    \Optional route hints to reach the destination through private channels.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\EOT\DC2\EOT\156\b\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\ACK\DC2\EOT\156\b\r\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\SOH\DC2\EOT\156\b\GS(\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\ETX\DC2\EOT\156\b+-\n\
    \\195\STX\n\
    \\EOT\EOT!\STX\SI\DC2\EOT\165\b\EOT1\SUB\180\STX\n\
    \Features assumed to be supported by the final node. All transitive feature\n\
    \dependencies must also be set properly. For a given feature bit pair, either\n\
    \optional or remote may be set, but not both. If this field is nil or empty,\n\
    \the router will try to load destination features from the graph as a\n\
    \fallback.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\EOT\DC2\EOT\165\b\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\ACK\DC2\EOT\165\b\r\GS\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\SOH\DC2\EOT\165\b\RS+\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\ETX\DC2\EOT\165\b.0\n\
    \\f\n\
    \\STX\EOT\"\DC2\ACK\168\b\NUL\180\b\SOH\n\
    \\v\n\
    \\ETX\EOT\"\SOH\DC2\EOT\168\b\b\DLE\n\
    \d\n\
    \\EOT\EOT\"\STX\NUL\DC2\EOT\173\b\EOT\DC3\SUBV\n\
    \The sending node of the pair. When using REST, this field must be encoded as\n\
    \base64.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\ENQ\DC2\EOT\173\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\SOH\DC2\EOT\173\b\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\ETX\DC2\EOT\173\b\DC1\DC2\n\
    \f\n\
    \\EOT\EOT\"\STX\SOH\DC2\EOT\179\b\EOT\DC1\SUBX\n\
    \The receiving node of the pair. When using REST, this field must be encoded\n\
    \as base64.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\ENQ\DC2\EOT\179\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\SOH\DC2\EOT\179\b\n\
    \\f\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\ETX\DC2\EOT\179\b\SI\DLE\n\
    \\f\n\
    \\STX\EOT#\DC2\ACK\182\b\NUL\193\b\SOH\n\
    \\v\n\
    \\ETX\EOT#\SOH\DC2\EOT\182\b\b\DC3\n\
    \2\n\
    \\EOT\EOT#\STX\NUL\DC2\EOT\184\b\EOT/\SUB$ The short channel id of this edge.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\ENQ\DC2\EOT\184\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\SOH\DC2\EOT\184\b\v\NAK\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\ETX\DC2\EOT\184\b\CAN\EM\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\b\DC2\EOT\184\b\SUB.\n\
    \\SO\n\
    \\ACK\EOT#\STX\NUL\b\ACK\DC2\EOT\184\b\ESC-\n\
    \\149\STX\n\
    \\EOT\EOT#\STX\SOH\DC2\EOT\192\b\EOT\US\SUB\134\STX\n\
    \The direction of this edge. If direction_reverse is false, the direction\n\
    \of this edge is from the channel endpoint with the lexicographically smaller\n\
    \pub key to the endpoint with the larger pub key. If direction_reverse is\n\
    \is true, the edge goes the other way.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT#\STX\SOH\ENQ\DC2\EOT\192\b\EOT\b\n\
    \\r\n\
    \\ENQ\EOT#\STX\SOH\SOH\DC2\EOT\192\b\t\SUB\n\
    \\r\n\
    \\ENQ\EOT#\STX\SOH\ETX\DC2\EOT\192\b\GS\RS\n\
    \\f\n\
    \\STX\EOT$\DC2\ACK\195\b\NUL\207\b\SOH\n\
    \\v\n\
    \\ETX\EOT$\SOH\DC2\EOT\195\b\b\ESC\n\
    \\137\SOH\n\
    \\EOT\EOT$\STX\NUL\DC2\EOT\200\b\EOT\RS\SUB{\n\
    \The route that results from the path finding operation. This is still a\n\
    \repeated field to retain backwards compatibility.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\EOT\DC2\EOT\200\b\EOT\f\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\ACK\DC2\EOT\200\b\r\DC2\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\SOH\DC2\EOT\200\b\DC3\EM\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\ETX\DC2\EOT\200\b\FS\GS\n\
    \x\n\
    \\EOT\EOT$\STX\SOH\DC2\EOT\206\b\EOT\FS\SUBj\n\
    \The success probability of the returned route based on the current mission\n\
    \control state. [EXPERIMENTAL]\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\ENQ\DC2\EOT\206\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\SOH\DC2\EOT\206\b\v\ETB\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\ETX\DC2\EOT\206\b\SUB\ESC\n\
    \\f\n\
    \\STX\EOT%\DC2\ACK\209\b\NUL\132\t\SOH\n\
    \\v\n\
    \\ETX\EOT%\SOH\DC2\EOT\209\b\b\v\n\
    \\193\SOH\n\
    \\EOT\EOT%\STX\NUL\DC2\EOT\215\b\EOT,\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\ENQ\DC2\EOT\215\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\SOH\DC2\EOT\215\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\ETX\DC2\EOT\215\b\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\b\DC2\EOT\215\b\ETB+\n\
    \\SO\n\
    \\ACK\EOT%\STX\NUL\b\ACK\DC2\EOT\215\b\CAN*\n\
    \\f\n\
    \\EOT\EOT%\STX\SOH\DC2\EOT\216\b\EOT0\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\ENQ\DC2\EOT\216\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\SOH\DC2\EOT\216\b\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\ETX\DC2\EOT\216\b\SUB\ESC\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\b\DC2\EOT\216\b\FS/\n\
    \\SO\n\
    \\ACK\EOT%\STX\SOH\b\ETX\DC2\EOT\216\b\GS.\n\
    \\f\n\
    \\EOT\EOT%\STX\STX\DC2\EOT\217\b\EOT1\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\ENQ\DC2\EOT\217\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\SOH\DC2\EOT\217\b\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\ETX\DC2\EOT\217\b\ESC\FS\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\b\DC2\EOT\217\b\GS0\n\
    \\SO\n\
    \\ACK\EOT%\STX\STX\b\ETX\DC2\EOT\217\b\RS/\n\
    \\f\n\
    \\EOT\EOT%\STX\ETX\DC2\EOT\218\b\EOT&\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\ENQ\DC2\EOT\218\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\SOH\DC2\EOT\218\b\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\ETX\DC2\EOT\218\b\DLE\DC1\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\b\DC2\EOT\218\b\DC2%\n\
    \\SO\n\
    \\ACK\EOT%\STX\ETX\b\ETX\DC2\EOT\218\b\DC3$\n\
    \\f\n\
    \\EOT\EOT%\STX\EOT\DC2\EOT\219\b\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\ENQ\DC2\EOT\219\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\SOH\DC2\EOT\219\b\v\DC1\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\ETX\DC2\EOT\219\b\DC4\NAK\n\
    \\f\n\
    \\EOT\EOT%\STX\ENQ\DC2\EOT\220\b\EOT\"\n\
    \\r\n\
    \\ENQ\EOT%\STX\ENQ\ENQ\DC2\EOT\220\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT%\STX\ENQ\SOH\DC2\EOT\220\b\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT%\STX\ENQ\ETX\DC2\EOT\220\b !\n\
    \\f\n\
    \\EOT\EOT%\STX\ACK\DC2\EOT\221\b\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT%\STX\ACK\ENQ\DC2\EOT\221\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT%\STX\ACK\SOH\DC2\EOT\221\b\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT%\STX\ACK\ETX\DC2\EOT\221\b\NAK\SYN\n\
    \\155\SOH\n\
    \\EOT\EOT%\STX\a\DC2\EOT\227\b\EOT\ETB\SUB\140\SOH\n\
    \An optional public key of the hop. If the public key is given, the payment\n\
    \can be executed without relying on a copy of the channel graph.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\a\ENQ\DC2\EOT\227\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\a\SOH\DC2\EOT\227\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT%\STX\a\ETX\DC2\EOT\227\b\NAK\SYN\n\
    \\230\SOH\n\
    \\EOT\EOT%\STX\b\DC2\EOT\234\b\EOT\EM\SUB\215\SOH\n\
    \If set to true, then this hop will be encoded using the new variable length\n\
    \TLV format. Note that if any custom tlv_records below are specified, then\n\
    \this field MUST be set to true for them to be encoded properly.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\b\ENQ\DC2\EOT\234\b\EOT\b\n\
    \\r\n\
    \\ENQ\EOT%\STX\b\SOH\DC2\EOT\234\b\t\DC4\n\
    \\r\n\
    \\ENQ\EOT%\STX\b\ETX\DC2\EOT\234\b\ETB\CAN\n\
    \\154\STX\n\
    \\EOT\EOT%\STX\t\DC2\EOT\242\b\EOT\RS\SUB\139\STX\n\
    \An optional TLV record that signals the use of an MPP payment. If present,\n\
    \the receiver will enforce that the same mpp_record is included in the final\n\
    \hop payload of all non-zero payments in the HTLC set. If empty, a regular\n\
    \single-shot payment is or was attempted.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\t\ACK\DC2\EOT\242\b\EOT\r\n\
    \\r\n\
    \\ENQ\EOT%\STX\t\SOH\DC2\EOT\242\b\SO\CAN\n\
    \\r\n\
    \\ENQ\EOT%\STX\t\ETX\DC2\EOT\242\b\ESC\GS\n\
    \\142\ETX\n\
    \\EOT\EOT%\STX\n\
    \\DC2\EOT\252\b\EOT\RS\SUB\255\STX\n\
    \An optional TLV record that signals the use of an AMP payment. If present,\n\
    \the receiver will treat all received payments including the same\n\
    \(payment_addr, set_id) pair  as being part of one logical payment. The\n\
    \payment will be settled by XORing the root_share's together and deriving the\n\
    \child hashes and preimages according to BOLT XX. Must be used in conjunction\n\
    \with mpp_record.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\n\
    \\ACK\DC2\EOT\252\b\EOT\r\n\
    \\r\n\
    \\ENQ\EOT%\STX\n\
    \\SOH\DC2\EOT\252\b\SO\CAN\n\
    \\r\n\
    \\ENQ\EOT%\STX\n\
    \\ETX\DC2\EOT\252\b\ESC\GS\n\
    \\210\SOH\n\
    \\EOT\EOT%\STX\v\DC2\EOT\131\t\EOT+\SUB\195\SOH\n\
    \An optional set of key-value TLV records. This is useful within the context\n\
    \of the SendToRoute call as it allows callers to specify arbitrary K-V pairs\n\
    \to drop off at each hop within the onion.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\v\ACK\DC2\EOT\131\t\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT%\STX\v\SOH\DC2\EOT\131\t\ETB%\n\
    \\r\n\
    \\ENQ\EOT%\STX\v\ETX\DC2\EOT\131\t(*\n\
    \\f\n\
    \\STX\EOT&\DC2\ACK\134\t\NUL\150\t\SOH\n\
    \\v\n\
    \\ETX\EOT&\SOH\DC2\EOT\134\t\b\DC1\n\
    \\168\STX\n\
    \\EOT\EOT&\STX\NUL\DC2\EOT\141\t\EOT\FS\SUB\153\STX\n\
    \A unique, random identifier used to authenticate the sender as the intended\n\
    \payer of a multi-path payment. The payment_addr must be the same for all\n\
    \subpayments, and match the payment_addr provided in the receiver's invoice.\n\
    \The same payment_addr must be used on all subpayments.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\ENQ\DC2\EOT\141\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\SOH\DC2\EOT\141\t\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\ETX\DC2\EOT\141\t\EM\ESC\n\
    \\147\STX\n\
    \\EOT\EOT&\STX\SOH\DC2\EOT\149\t\EOT\RS\SUB\132\STX\n\
    \The total amount in milli-satoshis being sent as part of a larger multi-path\n\
    \payment. The caller is responsible for ensuring subpayments to the same node\n\
    \and payment_hash sum exactly to total_amt_msat. The same\n\
    \total_amt_msat must be used on all subpayments.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\ENQ\DC2\EOT\149\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\SOH\DC2\EOT\149\t\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\ETX\DC2\EOT\149\t\ESC\GS\n\
    \\f\n\
    \\STX\EOT'\DC2\ACK\152\t\NUL\158\t\SOH\n\
    \\v\n\
    \\ETX\EOT'\SOH\DC2\EOT\152\t\b\DC1\n\
    \\f\n\
    \\EOT\EOT'\STX\NUL\DC2\EOT\153\t\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\ENQ\DC2\EOT\153\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\SOH\DC2\EOT\153\t\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\ETX\DC2\EOT\153\t\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT'\STX\SOH\DC2\EOT\155\t\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT'\STX\SOH\ENQ\DC2\EOT\155\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT'\STX\SOH\SOH\DC2\EOT\155\t\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT'\STX\SOH\ETX\DC2\EOT\155\t\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT'\STX\STX\DC2\EOT\157\t\EOT\ESC\n\
    \\r\n\
    \\ENQ\EOT'\STX\STX\ENQ\DC2\EOT\157\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT'\STX\STX\SOH\DC2\EOT\157\t\v\SYN\n\
    \\r\n\
    \\ENQ\EOT'\STX\STX\ETX\DC2\EOT\157\t\EM\SUB\n\
    \\255\STX\n\
    \\STX\EOT(\DC2\ACK\167\t\NUL\206\t\SOH\SUB\240\STX\n\
    \A path through the channel graph which runs over one or more channels in\n\
    \succession. This struct carries all the information required to craft the\n\
    \Sphinx onion packet, and send the payment along the first hop in the path. A\n\
    \route is only selected as valid if all the channels have sufficient capacity to\n\
    \carry the initial payment amount after fees are accounted for.\n\
    \\n\
    \\v\n\
    \\ETX\EOT(\SOH\DC2\EOT\167\t\b\r\n\
    \\185\STX\n\
    \\EOT\EOT(\STX\NUL\DC2\EOT\174\t\EOT\US\SUB\170\STX\n\
    \The cumulative (final) time lock across the entire route. This is the CLTV\n\
    \value that should be extended to the first hop in the route. All other hops\n\
    \will decrement the time-lock as advertised, leaving enough time for all\n\
    \hops to wait for or present the payment preimage to complete the payment.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\ENQ\DC2\EOT\174\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\SOH\DC2\EOT\174\t\v\SUB\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\ETX\DC2\EOT\174\t\GS\RS\n\
    \\179\SOH\n\
    \\EOT\EOT(\STX\SOH\DC2\EOT\181\t\EOT-\SUB\164\SOH\n\
    \The sum of the fees paid at each hop within the final route. In the case\n\
    \of a one-hop payment, this value will be zero as we don't need to pay a fee\n\
    \to ourselves.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\ENQ\DC2\EOT\181\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\SOH\DC2\EOT\181\t\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\ETX\DC2\EOT\181\t\ETB\CAN\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\b\DC2\EOT\181\t\EM,\n\
    \\SO\n\
    \\ACK\EOT(\STX\SOH\b\ETX\DC2\EOT\181\t\SUB+\n\
    \\216\STX\n\
    \\EOT\EOT(\STX\STX\DC2\EOT\190\t\EOT,\SUB\201\STX\n\
    \The total amount of funds required to complete a payment over this route.\n\
    \This value includes the cumulative fees at each hop. As a result, the HTLC\n\
    \extended to the first-hop in the route will need to have at least this many\n\
    \satoshis, otherwise the route will fail at an intermediate node due to an\n\
    \insufficient amount of fees.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\ENQ\DC2\EOT\190\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\SOH\DC2\EOT\190\t\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\ETX\DC2\EOT\190\t\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\b\DC2\EOT\190\t\CAN+\n\
    \\SO\n\
    \\ACK\EOT(\STX\STX\b\ETX\DC2\EOT\190\t\EM*\n\
    \X\n\
    \\EOT\EOT(\STX\ETX\DC2\EOT\195\t\EOT\SUB\SUBJ\n\
    \Contains details concerning the specific forwarding details at each hop.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\EOT\DC2\EOT\195\t\EOT\f\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\ACK\DC2\EOT\195\t\r\DLE\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\SOH\DC2\EOT\195\t\DC1\NAK\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\ETX\DC2\EOT\195\t\CAN\EM\n\
    \0\n\
    \\EOT\EOT(\STX\EOT\DC2\EOT\200\t\EOT\RS\SUB\"\n\
    \The total fees in millisatoshis.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\ENQ\DC2\EOT\200\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\SOH\DC2\EOT\200\t\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\ETX\DC2\EOT\200\t\FS\GS\n\
    \2\n\
    \\EOT\EOT(\STX\ENQ\DC2\EOT\205\t\EOT\GS\SUB$\n\
    \The total amount in millisatoshis.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\ENQ\DC2\EOT\205\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\SOH\DC2\EOT\205\t\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\ETX\DC2\EOT\205\t\ESC\FS\n\
    \\f\n\
    \\STX\EOT)\DC2\ACK\208\t\NUL\214\t\SOH\n\
    \\v\n\
    \\ETX\EOT)\SOH\DC2\EOT\208\t\b\ETB\n\
    \L\n\
    \\EOT\EOT)\STX\NUL\DC2\EOT\210\t\EOT\ETB\SUB> The 33-byte hex-encoded compressed public of the target node\n\
    \\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\ENQ\DC2\EOT\210\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\SOH\DC2\EOT\210\t\v\DC2\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\ETX\DC2\EOT\210\t\NAK\SYN\n\
    \R\n\
    \\EOT\EOT)\STX\SOH\DC2\EOT\213\t\EOT\RS\SUBD If true, will include all known channels associated with the node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\ENQ\DC2\EOT\213\t\EOT\b\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\SOH\DC2\EOT\213\t\t\EM\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\ETX\DC2\EOT\213\t\FS\GS\n\
    \\f\n\
    \\STX\EOT*\DC2\ACK\216\t\NUL\233\t\SOH\n\
    \\v\n\
    \\ETX\EOT*\SOH\DC2\EOT\216\t\b\DLE\n\
    \\255\SOH\n\
    \\EOT\EOT*\STX\NUL\DC2\EOT\223\t\EOT\ESC\SUB\240\SOH\n\
    \An individual vertex/node within the channel graph. A node is\n\
    \connected to other nodes by one or more channel edges emanating from it. As\n\
    \the graph is directed, a node will also have an incoming edge attached to\n\
    \it for each outgoing edge.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\ACK\DC2\EOT\223\t\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\SOH\DC2\EOT\223\t\DC2\SYN\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\ETX\DC2\EOT\223\t\EM\SUB\n\
    \:\n\
    \\EOT\EOT*\STX\SOH\DC2\EOT\226\t\EOT\FS\SUB, The total number of channels for the node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT*\STX\SOH\ENQ\DC2\EOT\226\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT*\STX\SOH\SOH\DC2\EOT\226\t\v\ETB\n\
    \\r\n\
    \\ENQ\EOT*\STX\SOH\ETX\DC2\EOT\226\t\SUB\ESC\n\
    \W\n\
    \\EOT\EOT*\STX\STX\DC2\EOT\229\t\EOT\GS\SUBI The sum of all channels capacity for the node, denominated in satoshis.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT*\STX\STX\ENQ\DC2\EOT\229\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT*\STX\STX\SOH\DC2\EOT\229\t\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT*\STX\STX\ETX\DC2\EOT\229\t\ESC\FS\n\
    \;\n\
    \\EOT\EOT*\STX\ETX\DC2\EOT\232\t\EOT&\SUB- A list of all public channels for the node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT*\STX\ETX\EOT\DC2\EOT\232\t\EOT\f\n\
    \\r\n\
    \\ENQ\EOT*\STX\ETX\ACK\DC2\EOT\232\t\r\CAN\n\
    \\r\n\
    \\ENQ\EOT*\STX\ETX\SOH\DC2\EOT\232\t\EM!\n\
    \\r\n\
    \\ENQ\EOT*\STX\ETX\ETX\DC2\EOT\232\t$%\n\
    \\255\SOH\n\
    \\STX\EOT+\DC2\ACK\241\t\NUL\248\t\SOH\SUB\240\SOH\n\
    \An individual vertex/node within the channel graph. A node is\n\
    \connected to other nodes by one or more channel edges emanating from it. As the\n\
    \graph is directed, a node will also have an incoming edge attached to it for\n\
    \each outgoing edge.\n\
    \\n\
    \\v\n\
    \\ETX\EOT+\SOH\DC2\EOT\241\t\b\NAK\n\
    \\f\n\
    \\EOT\EOT+\STX\NUL\DC2\EOT\242\t\EOT\ESC\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\ENQ\DC2\EOT\242\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\SOH\DC2\EOT\242\t\v\SYN\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\ETX\DC2\EOT\242\t\EM\SUB\n\
    \\f\n\
    \\EOT\EOT+\STX\SOH\DC2\EOT\243\t\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT+\STX\SOH\ENQ\DC2\EOT\243\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT+\STX\SOH\SOH\DC2\EOT\243\t\v\DC2\n\
    \\r\n\
    \\ENQ\EOT+\STX\SOH\ETX\DC2\EOT\243\t\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT+\STX\STX\DC2\EOT\244\t\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT+\STX\STX\ENQ\DC2\EOT\244\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT+\STX\STX\SOH\DC2\EOT\244\t\v\DLE\n\
    \\r\n\
    \\ENQ\EOT+\STX\STX\ETX\DC2\EOT\244\t\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT+\STX\ETX\DC2\EOT\245\t\EOT'\n\
    \\r\n\
    \\ENQ\EOT+\STX\ETX\EOT\DC2\EOT\245\t\EOT\f\n\
    \\r\n\
    \\ENQ\EOT+\STX\ETX\ACK\DC2\EOT\245\t\r\CAN\n\
    \\r\n\
    \\ENQ\EOT+\STX\ETX\SOH\DC2\EOT\245\t\EM\"\n\
    \\r\n\
    \\ENQ\EOT+\STX\ETX\ETX\DC2\EOT\245\t%&\n\
    \\f\n\
    \\EOT\EOT+\STX\EOT\DC2\EOT\246\t\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT+\STX\EOT\ENQ\DC2\EOT\246\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT+\STX\EOT\SOH\DC2\EOT\246\t\v\DLE\n\
    \\r\n\
    \\ENQ\EOT+\STX\EOT\ETX\DC2\EOT\246\t\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT+\STX\ENQ\DC2\EOT\247\t\EOT&\n\
    \\r\n\
    \\ENQ\EOT+\STX\ENQ\ACK\DC2\EOT\247\t\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT+\STX\ENQ\SOH\DC2\EOT\247\t\EM!\n\
    \\r\n\
    \\ENQ\EOT+\STX\ENQ\ETX\DC2\EOT\247\t$%\n\
    \\f\n\
    \\STX\EOT,\DC2\ACK\250\t\NUL\253\t\SOH\n\
    \\v\n\
    \\ETX\EOT,\SOH\DC2\EOT\250\t\b\DC3\n\
    \\f\n\
    \\EOT\EOT,\STX\NUL\DC2\EOT\251\t\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT,\STX\NUL\ENQ\DC2\EOT\251\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT,\STX\NUL\SOH\DC2\EOT\251\t\v\DC2\n\
    \\r\n\
    \\ENQ\EOT,\STX\NUL\ETX\DC2\EOT\251\t\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT,\STX\SOH\DC2\EOT\252\t\EOT\DC4\n\
    \\r\n\
    \\ENQ\EOT,\STX\SOH\ENQ\DC2\EOT\252\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT,\STX\SOH\SOH\DC2\EOT\252\t\v\SI\n\
    \\r\n\
    \\ENQ\EOT,\STX\SOH\ETX\DC2\EOT\252\t\DC2\DC3\n\
    \\f\n\
    \\STX\EOT-\DC2\ACK\255\t\NUL\135\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT-\SOH\DC2\EOT\255\t\b\NAK\n\
    \\f\n\
    \\EOT\EOT-\STX\NUL\DC2\EOT\128\n\
    \\EOT\US\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\ENQ\DC2\EOT\128\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\SOH\DC2\EOT\128\n\
    \\v\SUB\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\ETX\DC2\EOT\128\n\
    \\GS\RS\n\
    \\f\n\
    \\EOT\EOT-\STX\SOH\DC2\EOT\129\n\
    \\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\ENQ\DC2\EOT\129\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\SOH\DC2\EOT\129\n\
    \\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\ETX\DC2\EOT\129\n\
    \\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT-\STX\STX\DC2\EOT\130\n\
    \\EOT\FS\n\
    \\r\n\
    \\ENQ\EOT-\STX\STX\ENQ\DC2\EOT\130\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT-\STX\STX\SOH\DC2\EOT\130\n\
    \\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT-\STX\STX\ETX\DC2\EOT\130\n\
    \\SUB\ESC\n\
    \\f\n\
    \\EOT\EOT-\STX\ETX\DC2\EOT\131\n\
    \\EOT\"\n\
    \\r\n\
    \\ENQ\EOT-\STX\ETX\ENQ\DC2\EOT\131\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT-\STX\ETX\SOH\DC2\EOT\131\n\
    \\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT-\STX\ETX\ETX\DC2\EOT\131\n\
    \ !\n\
    \\f\n\
    \\EOT\EOT-\STX\EOT\DC2\EOT\132\n\
    \\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT-\STX\EOT\ENQ\DC2\EOT\132\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT-\STX\EOT\SOH\DC2\EOT\132\n\
    \\t\DC1\n\
    \\r\n\
    \\ENQ\EOT-\STX\EOT\ETX\DC2\EOT\132\n\
    \\DC4\NAK\n\
    \\f\n\
    \\EOT\EOT-\STX\ENQ\DC2\EOT\133\n\
    \\EOT\GS\n\
    \\r\n\
    \\ENQ\EOT-\STX\ENQ\ENQ\DC2\EOT\133\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT-\STX\ENQ\SOH\DC2\EOT\133\n\
    \\v\CAN\n\
    \\r\n\
    \\ENQ\EOT-\STX\ENQ\ETX\DC2\EOT\133\n\
    \\ESC\FS\n\
    \\f\n\
    \\EOT\EOT-\STX\ACK\DC2\EOT\134\n\
    \\EOT\ESC\n\
    \\r\n\
    \\ENQ\EOT-\STX\ACK\ENQ\DC2\EOT\134\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT-\STX\ACK\SOH\DC2\EOT\134\n\
    \\v\SYN\n\
    \\r\n\
    \\ENQ\EOT-\STX\ACK\ETX\DC2\EOT\134\n\
    \\EM\SUB\n\
    \\251\STX\n\
    \\STX\EOT.\DC2\ACK\144\n\
    \\NUL\162\n\
    \\SOH\SUB\236\STX\n\
    \A fully authenticated channel along with all its unique attributes.\n\
    \Once an authenticated channel announcement has been processed on the network,\n\
    \then an instance of ChannelEdgeInfo encapsulating the channels attributes is\n\
    \stored. The other portions relevant to routing policy of a channel are stored\n\
    \within a ChannelEdgePolicy for each direction of the channel.\n\
    \\n\
    \\v\n\
    \\ETX\EOT.\SOH\DC2\EOT\144\n\
    \\b\DC3\n\
    \\193\SOH\n\
    \\EOT\EOT.\STX\NUL\DC2\EOT\150\n\
    \\EOT/\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\NUL\ENQ\DC2\EOT\150\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\NUL\SOH\DC2\EOT\150\n\
    \\v\NAK\n\
    \\r\n\
    \\ENQ\EOT.\STX\NUL\ETX\DC2\EOT\150\n\
    \\CAN\EM\n\
    \\r\n\
    \\ENQ\EOT.\STX\NUL\b\DC2\EOT\150\n\
    \\SUB.\n\
    \\SO\n\
    \\ACK\EOT.\STX\NUL\b\ACK\DC2\EOT\150\n\
    \\ESC-\n\
    \\f\n\
    \\EOT\EOT.\STX\SOH\DC2\EOT\151\n\
    \\EOT\SUB\n\
    \\r\n\
    \\ENQ\EOT.\STX\SOH\ENQ\DC2\EOT\151\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\SOH\SOH\DC2\EOT\151\n\
    \\v\NAK\n\
    \\r\n\
    \\ENQ\EOT.\STX\SOH\ETX\DC2\EOT\151\n\
    \\CAN\EM\n\
    \\f\n\
    \\EOT\EOT.\STX\STX\DC2\EOT\153\n\
    \\EOT/\n\
    \\r\n\
    \\ENQ\EOT.\STX\STX\ENQ\DC2\EOT\153\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\STX\SOH\DC2\EOT\153\n\
    \\v\SYN\n\
    \\r\n\
    \\ENQ\EOT.\STX\STX\ETX\DC2\EOT\153\n\
    \\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT.\STX\STX\b\DC2\EOT\153\n\
    \\ESC.\n\
    \\SO\n\
    \\ACK\EOT.\STX\STX\b\ETX\DC2\EOT\153\n\
    \\FS-\n\
    \\f\n\
    \\EOT\EOT.\STX\ETX\DC2\EOT\155\n\
    \\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT.\STX\ETX\ENQ\DC2\EOT\155\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\ETX\SOH\DC2\EOT\155\n\
    \\v\DC4\n\
    \\r\n\
    \\ENQ\EOT.\STX\ETX\ETX\DC2\EOT\155\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT.\STX\EOT\DC2\EOT\156\n\
    \\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT.\STX\EOT\ENQ\DC2\EOT\156\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT.\STX\EOT\SOH\DC2\EOT\156\n\
    \\v\DC4\n\
    \\r\n\
    \\ENQ\EOT.\STX\EOT\ETX\DC2\EOT\156\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT.\STX\ENQ\DC2\EOT\158\n\
    \\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT.\STX\ENQ\ENQ\DC2\EOT\158\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT.\STX\ENQ\SOH\DC2\EOT\158\n\
    \\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT.\STX\ENQ\ETX\DC2\EOT\158\n\
    \\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT.\STX\ACK\DC2\EOT\160\n\
    \\EOT#\n\
    \\r\n\
    \\ENQ\EOT.\STX\ACK\ACK\DC2\EOT\160\n\
    \\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT.\STX\ACK\SOH\DC2\EOT\160\n\
    \\DC2\RS\n\
    \\r\n\
    \\ENQ\EOT.\STX\ACK\ETX\DC2\EOT\160\n\
    \!\"\n\
    \\f\n\
    \\EOT\EOT.\STX\a\DC2\EOT\161\n\
    \\EOT#\n\
    \\r\n\
    \\ENQ\EOT.\STX\a\ACK\DC2\EOT\161\n\
    \\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT.\STX\a\SOH\DC2\EOT\161\n\
    \\DC2\RS\n\
    \\r\n\
    \\ENQ\EOT.\STX\a\ETX\DC2\EOT\161\n\
    \!\"\n\
    \\f\n\
    \\STX\EOT/\DC2\ACK\164\n\
    \\NUL\171\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT/\SOH\DC2\EOT\164\n\
    \\b\ESC\n\
    \\236\SOH\n\
    \\EOT\EOT/\STX\NUL\DC2\EOT\170\n\
    \\EOT!\SUB\221\SOH\n\
    \Whether unannounced channels are included in the response or not. If set,\n\
    \unannounced channels are included. Unannounced channels are both private\n\
    \channels, and public channels that are not yet announced to the network.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\ENQ\DC2\EOT\170\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\SOH\DC2\EOT\170\n\
    \\t\FS\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\ETX\DC2\EOT\170\n\
    \\US \n\
    \E\n\
    \\STX\EOT0\DC2\ACK\174\n\
    \\NUL\180\n\
    \\SOH\SUB7 Returns a new instance of the directed channel graph.\n\
    \\n\
    \\v\n\
    \\ETX\EOT0\SOH\DC2\EOT\174\n\
    \\b\DC4\n\
    \B\n\
    \\EOT\EOT0\STX\NUL\DC2\EOT\176\n\
    \\EOT%\SUB4 The list of `LightningNode`s in this channel graph\n\
    \\n\
    \\r\n\
    \\ENQ\EOT0\STX\NUL\EOT\DC2\EOT\176\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT0\STX\NUL\ACK\DC2\EOT\176\n\
    \\r\SUB\n\
    \\r\n\
    \\ENQ\EOT0\STX\NUL\SOH\DC2\EOT\176\n\
    \\ESC \n\
    \\r\n\
    \\ENQ\EOT0\STX\NUL\ETX\DC2\EOT\176\n\
    \#$\n\
    \@\n\
    \\EOT\EOT0\STX\SOH\DC2\EOT\179\n\
    \\EOT#\SUB2 The list of `ChannelEdge`s in this channel graph\n\
    \\n\
    \\r\n\
    \\ENQ\EOT0\STX\SOH\EOT\DC2\EOT\179\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT0\STX\SOH\ACK\DC2\EOT\179\n\
    \\r\CAN\n\
    \\r\n\
    \\ENQ\EOT0\STX\SOH\SOH\DC2\EOT\179\n\
    \\EM\RS\n\
    \\r\n\
    \\ENQ\EOT0\STX\SOH\ETX\DC2\EOT\179\n\
    \!\"\n\
    \\f\n\
    \\STX\ENQ\ENQ\DC2\ACK\182\n\
    \\NUL\185\n\
    \\SOH\n\
    \\v\n\
    \\ETX\ENQ\ENQ\SOH\DC2\EOT\182\n\
    \\ENQ\DC3\n\
    \\f\n\
    \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\183\n\
    \\EOT\DLE\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\183\n\
    \\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\183\n\
    \\SO\SI\n\
    \\f\n\
    \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\184\n\
    \\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\184\n\
    \\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\184\n\
    \\GS\RS\n\
    \\f\n\
    \\STX\EOT1\DC2\ACK\187\n\
    \\NUL\190\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT1\SOH\DC2\EOT\187\n\
    \\b\SUB\n\
    \+\n\
    \\EOT\EOT1\STX\NUL\DC2\EOT\189\n\
    \\EOT&\SUB\GS The requested node metrics.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\EOT\DC2\EOT\189\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\ACK\DC2\EOT\189\n\
    \\r\ESC\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\SOH\DC2\EOT\189\n\
    \\FS!\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\ETX\DC2\EOT\189\n\
    \$%\n\
    \\f\n\
    \\STX\EOT2\DC2\ACK\192\n\
    \\NUL\201\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT2\SOH\DC2\EOT\192\n\
    \\b\ESC\n\
    \\180\STX\n\
    \\EOT\EOT2\STX\NUL\DC2\EOT\200\n\
    \\EOT8\SUB\165\STX\n\
    \Betweenness centrality is the sum of the ratio of shortest paths that pass\n\
    \through the node for each pair of nodes in the graph (not counting paths\n\
    \starting or ending at this node).\n\
    \Map of node pubkey to betweenness centrality of the node. Normalized\n\
    \values are in the [0,1] closed interval.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\ACK\DC2\EOT\200\n\
    \\EOT\FS\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\SOH\DC2\EOT\200\n\
    \\GS3\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\ETX\DC2\EOT\200\n\
    \67\n\
    \\f\n\
    \\STX\EOT3\DC2\ACK\203\n\
    \\NUL\209\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT3\SOH\DC2\EOT\203\n\
    \\b\DC3\n\
    \&\n\
    \\EOT\EOT3\STX\NUL\DC2\EOT\205\n\
    \\EOT\NAK\SUB\CAN Arbitrary float value.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\ENQ\DC2\EOT\205\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\SOH\DC2\EOT\205\n\
    \\v\DLE\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\ETX\DC2\EOT\205\n\
    \\DC3\DC4\n\
    \8\n\
    \\EOT\EOT3\STX\SOH\DC2\EOT\208\n\
    \\EOT \SUB* The value normalized to [0,1] or [-1,1].\n\
    \\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\ENQ\DC2\EOT\208\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\SOH\DC2\EOT\208\n\
    \\v\ESC\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\ETX\DC2\EOT\208\n\
    \\RS\US\n\
    \\f\n\
    \\STX\EOT4\DC2\ACK\211\n\
    \\NUL\218\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT4\SOH\DC2\EOT\211\n\
    \\b\ETB\n\
    \\193\SOH\n\
    \\EOT\EOT4\STX\NUL\DC2\EOT\217\n\
    \\EOT,\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\ENQ\DC2\EOT\217\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\SOH\DC2\EOT\217\n\
    \\v\DC2\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\ETX\DC2\EOT\217\n\
    \\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\b\DC2\EOT\217\n\
    \\ETB+\n\
    \\SO\n\
    \\ACK\EOT4\STX\NUL\b\ACK\DC2\EOT\217\n\
    \\CAN*\n\
    \\f\n\
    \\STX\EOT5\DC2\ACK\220\n\
    \\NUL\221\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT5\SOH\DC2\EOT\220\n\
    \\b\SUB\n\
    \\f\n\
    \\STX\EOT6\DC2\ACK\222\n\
    \\NUL\242\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT6\SOH\DC2\EOT\222\n\
    \\b\DC3\n\
    \\f\n\
    \\EOT\EOT6\STX\NUL\DC2\EOT\223\n\
    \\EOT\RS\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\ENQ\DC2\EOT\223\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\SOH\DC2\EOT\223\n\
    \\v\EM\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\ETX\DC2\EOT\223\n\
    \\FS\GS\n\
    \\f\n\
    \\EOT\EOT6\STX\SOH\DC2\EOT\224\n\
    \\EOT\RS\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\ENQ\DC2\EOT\224\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\SOH\DC2\EOT\224\n\
    \\v\EM\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\ETX\DC2\EOT\224\n\
    \\FS\GS\n\
    \\f\n\
    \\EOT\EOT6\STX\STX\DC2\EOT\225\n\
    \\EOT\RS\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\ENQ\DC2\EOT\225\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\SOH\DC2\EOT\225\n\
    \\v\EM\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\ETX\DC2\EOT\225\n\
    \\FS\GS\n\
    \\f\n\
    \\EOT\EOT6\STX\ETX\DC2\EOT\227\n\
    \\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\ENQ\DC2\EOT\227\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\SOH\DC2\EOT\227\n\
    \\v\DC4\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\ETX\DC2\EOT\227\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT6\STX\EOT\DC2\EOT\228\n\
    \\EOT\FS\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\ENQ\DC2\EOT\228\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\SOH\DC2\EOT\228\n\
    \\v\ETB\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\ETX\DC2\EOT\228\n\
    \\SUB\ESC\n\
    \\f\n\
    \\EOT\EOT6\STX\ENQ\DC2\EOT\230\n\
    \\EOT%\n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\ENQ\DC2\EOT\230\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\SOH\DC2\EOT\230\n\
    \\n\
    \ \n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\ETX\DC2\EOT\230\n\
    \#$\n\
    \\f\n\
    \\EOT\EOT6\STX\ACK\DC2\EOT\232\n\
    \\EOT \n\
    \\r\n\
    \\ENQ\EOT6\STX\ACK\ENQ\DC2\EOT\232\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\ACK\SOH\DC2\EOT\232\n\
    \\v\ESC\n\
    \\r\n\
    \\ENQ\EOT6\STX\ACK\ETX\DC2\EOT\232\n\
    \\RS\US\n\
    \\f\n\
    \\EOT\EOT6\STX\a\DC2\EOT\233\n\
    \\EOT\US\n\
    \\r\n\
    \\ENQ\EOT6\STX\a\ENQ\DC2\EOT\233\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\a\SOH\DC2\EOT\233\n\
    \\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT6\STX\a\ETX\DC2\EOT\233\n\
    \\GS\RS\n\
    \\f\n\
    \\EOT\EOT6\STX\b\DC2\EOT\234\n\
    \\EOT\US\n\
    \\r\n\
    \\ENQ\EOT6\STX\b\ENQ\DC2\EOT\234\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\b\SOH\DC2\EOT\234\n\
    \\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT6\STX\b\ETX\DC2\EOT\234\n\
    \\GS\RS\n\
    \\f\n\
    \\EOT\EOT6\STX\t\DC2\EOT\235\n\
    \\EOT'\n\
    \\r\n\
    \\ENQ\EOT6\STX\t\ENQ\DC2\EOT\235\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\t\SOH\DC2\EOT\235\n\
    \\n\
    \!\n\
    \\r\n\
    \\ENQ\EOT6\STX\t\ETX\DC2\EOT\235\n\
    \$&\n\
    \6\n\
    \\EOT\EOT6\STX\n\
    \\DC2\EOT\238\n\
    \\EOT!\SUB( The number of edges marked as zombies.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\n\
    \\ENQ\DC2\EOT\238\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\n\
    \\SOH\DC2\EOT\238\n\
    \\v\ESC\n\
    \\r\n\
    \\ENQ\EOT6\STX\n\
    \\ETX\DC2\EOT\238\n\
    \\RS \n\
    \\f\n\
    \\STX\EOT7\DC2\ACK\244\n\
    \\NUL\245\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT7\SOH\DC2\EOT\244\n\
    \\b\DC3\n\
    \\f\n\
    \\STX\EOT8\DC2\ACK\246\n\
    \\NUL\247\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT8\SOH\DC2\EOT\246\n\
    \\b\DC4\n\
    \\f\n\
    \\STX\EOT9\DC2\ACK\249\n\
    \\NUL\250\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT9\SOH\DC2\EOT\249\n\
    \\b!\n\
    \\f\n\
    \\STX\EOT:\DC2\ACK\251\n\
    \\NUL\255\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT:\SOH\DC2\EOT\251\n\
    \\b\ESC\n\
    \\f\n\
    \\EOT\EOT:\STX\NUL\DC2\EOT\252\n\
    \\EOT)\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\EOT\DC2\EOT\252\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\ACK\DC2\EOT\252\n\
    \\r\ETB\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\SOH\DC2\EOT\252\n\
    \\CAN$\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\ETX\DC2\EOT\252\n\
    \'(\n\
    \\f\n\
    \\EOT\EOT:\STX\SOH\DC2\EOT\253\n\
    \\EOT3\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\EOT\DC2\EOT\253\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\ACK\DC2\EOT\253\n\
    \\r\RS\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\SOH\DC2\EOT\253\n\
    \\US.\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\ETX\DC2\EOT\253\n\
    \12\n\
    \\f\n\
    \\EOT\EOT:\STX\STX\DC2\EOT\254\n\
    \\EOT2\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\EOT\DC2\EOT\254\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\ACK\DC2\EOT\254\n\
    \\r \n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\SOH\DC2\EOT\254\n\
    \!-\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\ETX\DC2\EOT\254\n\
    \01\n\
    \\f\n\
    \\STX\EOT;\DC2\ACK\128\v\NUL\150\v\SOH\n\
    \\v\n\
    \\ETX\EOT;\SOH\DC2\EOT\128\v\b\DC2\n\
    \/\n\
    \\EOT\EOT;\STX\NUL\DC2\EOT\132\v\EOT6\SUB!\n\
    \Deprecated, use node_addresses.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\EOT\DC2\EOT\132\v\EOT\f\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\ENQ\DC2\EOT\132\v\r\DC3\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\SOH\DC2\EOT\132\v\DC4\GS\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\ETX\DC2\EOT\132\v !\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\b\DC2\EOT\132\v\"5\n\
    \\SO\n\
    \\ACK\EOT;\STX\NUL\b\ETX\DC2\EOT\132\v#4\n\
    \\f\n\
    \\EOT\EOT;\STX\SOH\DC2\EOT\134\v\EOT\FS\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\ENQ\DC2\EOT\134\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\SOH\DC2\EOT\134\v\v\ETB\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\ETX\DC2\EOT\134\v\SUB\ESC\n\
    \)\n\
    \\EOT\EOT;\STX\STX\DC2\EOT\139\v\EOT2\SUB\ESC\n\
    \Deprecated, use features.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\ENQ\DC2\EOT\139\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\SOH\DC2\EOT\139\v\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\ETX\DC2\EOT\139\v\FS\GS\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\b\DC2\EOT\139\v\RS1\n\
    \\SO\n\
    \\ACK\EOT;\STX\STX\b\ETX\DC2\EOT\139\v\US0\n\
    \\f\n\
    \\EOT\EOT;\STX\ETX\DC2\EOT\141\v\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\ENQ\DC2\EOT\141\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\SOH\DC2\EOT\141\v\v\DLE\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\ETX\DC2\EOT\141\v\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT;\STX\EOT\DC2\EOT\142\v\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT;\STX\EOT\ENQ\DC2\EOT\142\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\EOT\SOH\DC2\EOT\142\v\v\DLE\n\
    \\r\n\
    \\ENQ\EOT;\STX\EOT\ETX\DC2\EOT\142\v\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT;\STX\ENQ\DC2\EOT\143\v\EOT,\n\
    \\r\n\
    \\ENQ\EOT;\STX\ENQ\EOT\DC2\EOT\143\v\EOT\f\n\
    \\r\n\
    \\ENQ\EOT;\STX\ENQ\ACK\DC2\EOT\143\v\r\CAN\n\
    \\r\n\
    \\ENQ\EOT;\STX\ENQ\SOH\DC2\EOT\143\v\EM'\n\
    \\r\n\
    \\ENQ\EOT;\STX\ENQ\ETX\DC2\EOT\143\v*+\n\
    \k\n\
    \\EOT\EOT;\STX\ACK\DC2\EOT\149\v\EOT&\SUB]\n\
    \Features that the node has advertised in the init message, node\n\
    \announcements and invoices.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\ACK\ACK\DC2\EOT\149\v\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT;\STX\ACK\SOH\DC2\EOT\149\v\EM!\n\
    \\r\n\
    \\ENQ\EOT;\STX\ACK\ETX\DC2\EOT\149\v$%\n\
    \\f\n\
    \\STX\EOT<\DC2\ACK\151\v\NUL\167\v\SOH\n\
    \\v\n\
    \\ETX\EOT<\SOH\DC2\EOT\151\v\b\EM\n\
    \\193\SOH\n\
    \\EOT\EOT<\STX\NUL\DC2\EOT\157\v\EOT,\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\ENQ\DC2\EOT\157\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\SOH\DC2\EOT\157\v\v\DC2\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\ETX\DC2\EOT\157\v\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\b\DC2\EOT\157\v\ETB+\n\
    \\SO\n\
    \\ACK\EOT<\STX\NUL\b\ACK\DC2\EOT\157\v\CAN*\n\
    \\f\n\
    \\EOT\EOT<\STX\SOH\DC2\EOT\159\v\EOT \n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\ACK\DC2\EOT\159\v\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\SOH\DC2\EOT\159\v\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\ETX\DC2\EOT\159\v\RS\US\n\
    \\f\n\
    \\EOT\EOT<\STX\STX\DC2\EOT\161\v\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT<\STX\STX\ENQ\DC2\EOT\161\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT<\STX\STX\SOH\DC2\EOT\161\v\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT<\STX\STX\ETX\DC2\EOT\161\v\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT<\STX\ETX\DC2\EOT\163\v\EOT%\n\
    \\r\n\
    \\ENQ\EOT<\STX\ETX\ACK\DC2\EOT\163\v\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT<\STX\ETX\SOH\DC2\EOT\163\v\DC2 \n\
    \\r\n\
    \\ENQ\EOT<\STX\ETX\ETX\DC2\EOT\163\v#$\n\
    \\f\n\
    \\EOT\EOT<\STX\EOT\DC2\EOT\165\v\EOT \n\
    \\r\n\
    \\ENQ\EOT<\STX\EOT\ENQ\DC2\EOT\165\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT<\STX\EOT\SOH\DC2\EOT\165\v\v\ESC\n\
    \\r\n\
    \\ENQ\EOT<\STX\EOT\ETX\DC2\EOT\165\v\RS\US\n\
    \\f\n\
    \\EOT\EOT<\STX\ENQ\DC2\EOT\166\v\EOT\US\n\
    \\r\n\
    \\ENQ\EOT<\STX\ENQ\ENQ\DC2\EOT\166\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT<\STX\ENQ\SOH\DC2\EOT\166\v\v\SUB\n\
    \\r\n\
    \\ENQ\EOT<\STX\ENQ\ETX\DC2\EOT\166\v\GS\RS\n\
    \\f\n\
    \\STX\EOT=\DC2\ACK\168\v\NUL\178\v\SOH\n\
    \\v\n\
    \\ETX\EOT=\SOH\DC2\EOT\168\v\b\ESC\n\
    \\193\SOH\n\
    \\EOT\EOT=\STX\NUL\DC2\EOT\174\v\EOT,\SUB\178\SOH\n\
    \The unique channel ID for the channel. The first 3 bytes are the block\n\
    \height, the next 3 the index within the block, and the last 2 bytes are the\n\
    \output index for the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\ENQ\DC2\EOT\174\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\SOH\DC2\EOT\174\v\v\DC2\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\ETX\DC2\EOT\174\v\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\b\DC2\EOT\174\v\ETB+\n\
    \\SO\n\
    \\ACK\EOT=\STX\NUL\b\ACK\DC2\EOT\174\v\CAN*\n\
    \\f\n\
    \\EOT\EOT=\STX\SOH\DC2\EOT\175\v\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\ENQ\DC2\EOT\175\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\SOH\DC2\EOT\175\v\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\ETX\DC2\EOT\175\v\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT=\STX\STX\DC2\EOT\176\v\EOT\GS\n\
    \\r\n\
    \\ENQ\EOT=\STX\STX\ENQ\DC2\EOT\176\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT=\STX\STX\SOH\DC2\EOT\176\v\v\CAN\n\
    \\r\n\
    \\ENQ\EOT=\STX\STX\ETX\DC2\EOT\176\v\ESC\FS\n\
    \\f\n\
    \\EOT\EOT=\STX\ETX\DC2\EOT\177\v\EOT \n\
    \\r\n\
    \\ENQ\EOT=\STX\ETX\ACK\DC2\EOT\177\v\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT=\STX\ETX\SOH\DC2\EOT\177\v\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOT=\STX\ETX\ETX\DC2\EOT\177\v\RS\USb\ACKproto3"