{- This file was auto-generated from lnd_grpc.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}
{-# OPTIONS_GHC -Wno-unused-imports#-}
{-# OPTIONS_GHC -Wno-duplicate-exports#-}
{-# OPTIONS_GHC -Wno-dodgy-exports#-}
module Proto.LndGrpc (
        Lightning(..), AMP(), AMPRecord(), AbandonChannelRequest(),
        AbandonChannelResponse(), AddInvoiceResponse(), AddressType(..),
        AddressType(), AddressType'UnrecognizedValue, Amount(),
        BakeMacaroonRequest(), BakeMacaroonResponse(), Chain(),
        ChanBackupExportRequest(), ChanBackupSnapshot(), ChanInfoRequest(),
        ChanPointShim(), Channel(), ChannelAcceptRequest(),
        ChannelAcceptResponse(), ChannelBackup(),
        ChannelBackupSubscription(), ChannelBackups(),
        ChannelBalanceRequest(), ChannelBalanceResponse(),
        ChannelCloseSummary(), ChannelCloseSummary'ClosureType(..),
        ChannelCloseSummary'ClosureType(),
        ChannelCloseSummary'ClosureType'UnrecognizedValue,
        ChannelCloseUpdate(), ChannelConstraints(), ChannelEdge(),
        ChannelEdgeUpdate(), ChannelEventSubscription(),
        ChannelEventUpdate(), ChannelEventUpdate'Channel(..),
        _ChannelEventUpdate'OpenChannel, _ChannelEventUpdate'ClosedChannel,
        _ChannelEventUpdate'ActiveChannel,
        _ChannelEventUpdate'InactiveChannel,
        _ChannelEventUpdate'PendingOpenChannel,
        ChannelEventUpdate'UpdateType(..), ChannelEventUpdate'UpdateType(),
        ChannelEventUpdate'UpdateType'UnrecognizedValue,
        ChannelFeeReport(), ChannelGraph(), ChannelGraphRequest(),
        ChannelOpenUpdate(), ChannelPoint(), ChannelPoint'FundingTxid(..),
        _ChannelPoint'FundingTxidBytes, _ChannelPoint'FundingTxidStr,
        ChannelUpdate(), CloseChannelRequest(), CloseStatusUpdate(),
        CloseStatusUpdate'Update(..), _CloseStatusUpdate'ClosePending,
        _CloseStatusUpdate'ChanClose, ClosedChannelUpdate(),
        ClosedChannelsRequest(), ClosedChannelsResponse(),
        CommitmentType(..), CommitmentType(),
        CommitmentType'UnrecognizedValue, ConfirmationUpdate(),
        ConnectPeerRequest(), ConnectPeerResponse(), DebugLevelRequest(),
        DebugLevelResponse(), DeleteAllPaymentsRequest(),
        DeleteAllPaymentsResponse(), DeleteMacaroonIDRequest(),
        DeleteMacaroonIDResponse(), DisconnectPeerRequest(),
        DisconnectPeerResponse(), EdgeLocator(), EstimateFeeRequest(),
        EstimateFeeRequest'AddrToAmountEntry(), EstimateFeeResponse(),
        ExportChannelBackupRequest(), Failure(), Failure'FailureCode(..),
        Failure'FailureCode(), Failure'FailureCode'UnrecognizedValue,
        Feature(), FeatureBit(..), FeatureBit(),
        FeatureBit'UnrecognizedValue, FeeLimit(), FeeLimit'Limit(..),
        _FeeLimit'Fixed, _FeeLimit'FixedMsat, _FeeLimit'Percent,
        FeeReportRequest(), FeeReportResponse(), FloatMetric(),
        ForwardingEvent(), ForwardingHistoryRequest(),
        ForwardingHistoryResponse(), FundingPsbtFinalize(),
        FundingPsbtVerify(), FundingShim(), FundingShim'Shim(..),
        _FundingShim'ChanPointShim, _FundingShim'PsbtShim,
        FundingShimCancel(), FundingStateStepResp(),
        FundingTransitionMsg(), FundingTransitionMsg'Trigger(..),
        _FundingTransitionMsg'ShimRegister,
        _FundingTransitionMsg'ShimCancel, _FundingTransitionMsg'PsbtVerify,
        _FundingTransitionMsg'PsbtFinalize, GetInfoRequest(),
        GetInfoResponse(), GetInfoResponse'FeaturesEntry(),
        GetRecoveryInfoRequest(), GetRecoveryInfoResponse(),
        GetTransactionsRequest(), GraphTopologySubscription(),
        GraphTopologyUpdate(), HTLC(), HTLCAttempt(),
        HTLCAttempt'HTLCStatus(..), HTLCAttempt'HTLCStatus(),
        HTLCAttempt'HTLCStatus'UnrecognizedValue, Hop(),
        Hop'CustomRecordsEntry(), HopHint(), Initiator(..), Initiator(),
        Initiator'UnrecognizedValue, Invoice(), Invoice'FeaturesEntry(),
        Invoice'InvoiceState(..), Invoice'InvoiceState(),
        Invoice'InvoiceState'UnrecognizedValue, InvoiceHTLC(),
        InvoiceHTLC'CustomRecordsEntry(), InvoiceHTLCState(..),
        InvoiceHTLCState(), InvoiceHTLCState'UnrecognizedValue,
        InvoiceSubscription(), KeyDescriptor(), KeyLocator(),
        LightningAddress(), LightningNode(), LightningNode'FeaturesEntry(),
        ListChannelsRequest(), ListChannelsResponse(),
        ListInvoiceRequest(), ListInvoiceResponse(),
        ListMacaroonIDsRequest(), ListMacaroonIDsResponse(),
        ListPaymentsRequest(), ListPaymentsResponse(), ListPeersRequest(),
        ListPeersResponse(), ListPermissionsRequest(),
        ListPermissionsResponse(),
        ListPermissionsResponse'MethodPermissionsEntry(),
        ListUnspentRequest(), ListUnspentResponse(), MPPRecord(),
        MacaroonId(), MacaroonPermission(), MacaroonPermissionList(),
        MultiChanBackup(), NetworkInfo(), NetworkInfoRequest(),
        NewAddressRequest(), NewAddressResponse(), NodeAddress(),
        NodeInfo(), NodeInfoRequest(), NodeMetricType(..),
        NodeMetricType(), NodeMetricType'UnrecognizedValue,
        NodeMetricsRequest(), NodeMetricsResponse(),
        NodeMetricsResponse'BetweennessCentralityEntry(), NodePair(),
        NodeUpdate(), NodeUpdate'FeaturesEntry(), Op(),
        OpenChannelRequest(), OpenStatusUpdate(),
        OpenStatusUpdate'Update(..), _OpenStatusUpdate'ChanPending,
        _OpenStatusUpdate'ChanOpen, _OpenStatusUpdate'PsbtFund, OutPoint(),
        PayReq(), PayReq'FeaturesEntry(), PayReqString(), Payment(),
        Payment'PaymentStatus(..), Payment'PaymentStatus(),
        Payment'PaymentStatus'UnrecognizedValue, PaymentFailureReason(..),
        PaymentFailureReason(), PaymentFailureReason'UnrecognizedValue,
        PaymentHash(), Peer(), Peer'FeaturesEntry(), Peer'SyncType(..),
        Peer'SyncType(), Peer'SyncType'UnrecognizedValue, PeerEvent(),
        PeerEvent'EventType(..), PeerEvent'EventType(),
        PeerEvent'EventType'UnrecognizedValue, PeerEventSubscription(),
        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(), PolicyUpdateRequest(),
        PolicyUpdateRequest'Scope(..), _PolicyUpdateRequest'Global,
        _PolicyUpdateRequest'ChanPoint, PolicyUpdateResponse(), PsbtShim(),
        QueryRoutesRequest(), QueryRoutesRequest'DestCustomRecordsEntry(),
        QueryRoutesResponse(), ReadyForPsbtFunding(), Resolution(),
        ResolutionOutcome(..), ResolutionOutcome(),
        ResolutionOutcome'UnrecognizedValue, ResolutionType(..),
        ResolutionType(), ResolutionType'UnrecognizedValue,
        RestoreBackupResponse(), RestoreChanBackupRequest(),
        RestoreChanBackupRequest'Backup(..),
        _RestoreChanBackupRequest'ChanBackups,
        _RestoreChanBackupRequest'MultiChanBackup, Route(), RouteHint(),
        RoutingPolicy(), SendCoinsRequest(), SendCoinsResponse(),
        SendManyRequest(), SendManyRequest'AddrToAmountEntry(),
        SendManyResponse(), SendRequest(),
        SendRequest'DestCustomRecordsEntry(), SendResponse(),
        SendToRouteRequest(), SignMessageRequest(), SignMessageResponse(),
        StopRequest(), StopResponse(), TimestampedError(), Transaction(),
        TransactionDetails(), Utxo(), VerifyChanBackupResponse(),
        VerifyMessageRequest(), VerifyMessageResponse(),
        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 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.LndGrpc_Fields.rootShare' @:: Lens' AMP Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.setId' @:: Lens' AMP Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.childIndex' @:: Lens' AMP Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.hash' @:: Lens' AMP Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.preimage' @:: Lens' AMP Data.ByteString.ByteString@ -}
data AMP
  = AMP'_constructor {_AMP'rootShare :: !Data.ByteString.ByteString,
                      _AMP'setId :: !Data.ByteString.ByteString,
                      _AMP'childIndex :: !Data.Word.Word32,
                      _AMP'hash :: !Data.ByteString.ByteString,
                      _AMP'preimage :: !Data.ByteString.ByteString,
                      _AMP'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show AMP where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField AMP "rootShare" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMP'rootShare (\ x__ y__ -> x__ {_AMP'rootShare = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMP "setId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMP'setId (\ x__ y__ -> x__ {_AMP'setId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMP "childIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMP'childIndex (\ x__ y__ -> x__ {_AMP'childIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMP "hash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMP'hash (\ x__ y__ -> x__ {_AMP'hash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AMP "preimage" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AMP'preimage (\ x__ y__ -> x__ {_AMP'preimage = y__}))
        Prelude.id
instance Data.ProtoLens.Message AMP where
  messageName _ = Data.Text.pack "lnrpc.AMP"
  packedMessageDescriptor _
    = "\n\
      \\ETXAMP\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\DC2\DC2\n\
      \\EOThash\CAN\EOT \SOH(\fR\EOThash\DC2\SUB\n\
      \\bpreimage\CAN\ENQ \SOH(\fR\bpreimage"
  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 AMP
        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 AMP
        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 AMP
        hash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"hash")) ::
              Data.ProtoLens.FieldDescriptor AMP
        preimage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "preimage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"preimage")) ::
              Data.ProtoLens.FieldDescriptor AMP
      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),
           (Data.ProtoLens.Tag 4, hash__field_descriptor),
           (Data.ProtoLens.Tag 5, preimage__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _AMP'_unknownFields (\ x__ y__ -> x__ {_AMP'_unknownFields = y__})
  defMessage
    = AMP'_constructor
        {_AMP'rootShare = Data.ProtoLens.fieldDefault,
         _AMP'setId = Data.ProtoLens.fieldDefault,
         _AMP'childIndex = Data.ProtoLens.fieldDefault,
         _AMP'hash = Data.ProtoLens.fieldDefault,
         _AMP'preimage = Data.ProtoLens.fieldDefault,
         _AMP'_unknownFields = []}
  parseMessage
    = let
        loop :: AMP -> Data.ProtoLens.Encoding.Bytes.Parser AMP
        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)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "hash"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"hash") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "preimage"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"preimage") 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) "AMP"
  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.Monoid.<>)
                      (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"hash") _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 @"preimage") _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.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData AMP where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_AMP'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_AMP'rootShare x__)
                (Control.DeepSeq.deepseq
                   (_AMP'setId x__)
                   (Control.DeepSeq.deepseq
                      (_AMP'childIndex x__)
                      (Control.DeepSeq.deepseq
                         (_AMP'hash x__)
                         (Control.DeepSeq.deepseq (_AMP'preimage x__) ())))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rootShare' @:: Lens' AMPRecord Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.setId' @:: Lens' AMPRecord Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show AMPRecord where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channelPoint' @:: Lens' AbandonChannelRequest ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'channelPoint' @:: Lens' AbandonChannelRequest (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.pendingFundingShimOnly' @:: Lens' AbandonChannelRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.iKnowWhatIAmDoing' @:: Lens' AbandonChannelRequest Prelude.Bool@ -}
data AbandonChannelRequest
  = AbandonChannelRequest'_constructor {_AbandonChannelRequest'channelPoint :: !(Prelude.Maybe ChannelPoint),
                                        _AbandonChannelRequest'pendingFundingShimOnly :: !Prelude.Bool,
                                        _AbandonChannelRequest'iKnowWhatIAmDoing :: !Prelude.Bool,
                                        _AbandonChannelRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show AbandonChannelRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField AbandonChannelRequest "channelPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AbandonChannelRequest'channelPoint
           (\ x__ y__ -> x__ {_AbandonChannelRequest'channelPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField AbandonChannelRequest "maybe'channelPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AbandonChannelRequest'channelPoint
           (\ x__ y__ -> x__ {_AbandonChannelRequest'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AbandonChannelRequest "pendingFundingShimOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AbandonChannelRequest'pendingFundingShimOnly
           (\ x__ y__
              -> x__ {_AbandonChannelRequest'pendingFundingShimOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AbandonChannelRequest "iKnowWhatIAmDoing" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AbandonChannelRequest'iKnowWhatIAmDoing
           (\ x__ y__
              -> x__ {_AbandonChannelRequest'iKnowWhatIAmDoing = y__}))
        Prelude.id
instance Data.ProtoLens.Message AbandonChannelRequest where
  messageName _ = Data.Text.pack "lnrpc.AbandonChannelRequest"
  packedMessageDescriptor _
    = "\n\
      \\NAKAbandonChannelRequest\DC28\n\
      \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint\DC29\n\
      \\EMpending_funding_shim_only\CAN\STX \SOH(\bR\SYNpendingFundingShimOnly\DC21\n\
      \\SYNi_know_what_i_am_doing\CAN\ETX \SOH(\bR\DC1iKnowWhatIAmDoing"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channelPoint")) ::
              Data.ProtoLens.FieldDescriptor AbandonChannelRequest
        pendingFundingShimOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_funding_shim_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingFundingShimOnly")) ::
              Data.ProtoLens.FieldDescriptor AbandonChannelRequest
        iKnowWhatIAmDoing__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "i_know_what_i_am_doing"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"iKnowWhatIAmDoing")) ::
              Data.ProtoLens.FieldDescriptor AbandonChannelRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingFundingShimOnly__field_descriptor),
           (Data.ProtoLens.Tag 3, iKnowWhatIAmDoing__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _AbandonChannelRequest'_unknownFields
        (\ x__ y__ -> x__ {_AbandonChannelRequest'_unknownFields = y__})
  defMessage
    = AbandonChannelRequest'_constructor
        {_AbandonChannelRequest'channelPoint = Prelude.Nothing,
         _AbandonChannelRequest'pendingFundingShimOnly = Data.ProtoLens.fieldDefault,
         _AbandonChannelRequest'iKnowWhatIAmDoing = Data.ProtoLens.fieldDefault,
         _AbandonChannelRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          AbandonChannelRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser AbandonChannelRequest
        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_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "pending_funding_shim_only"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"pendingFundingShimOnly") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "i_know_what_i_am_doing"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"iKnowWhatIAmDoing") 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) "AbandonChannelRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view
                    (Data.ProtoLens.Field.field @"maybe'channelPoint") _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 @"pendingFundingShimOnly") _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.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view
                            (Data.ProtoLens.Field.field @"iKnowWhatIAmDoing") _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 AbandonChannelRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_AbandonChannelRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_AbandonChannelRequest'channelPoint x__)
                (Control.DeepSeq.deepseq
                   (_AbandonChannelRequest'pendingFundingShimOnly x__)
                   (Control.DeepSeq.deepseq
                      (_AbandonChannelRequest'iKnowWhatIAmDoing x__) ())))
{- | Fields :
      -}
data AbandonChannelResponse
  = AbandonChannelResponse'_constructor {_AbandonChannelResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show AbandonChannelResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message AbandonChannelResponse where
  messageName _ = Data.Text.pack "lnrpc.AbandonChannelResponse"
  packedMessageDescriptor _
    = "\n\
      \\SYNAbandonChannelResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _AbandonChannelResponse'_unknownFields
        (\ x__ y__ -> x__ {_AbandonChannelResponse'_unknownFields = y__})
  defMessage
    = AbandonChannelResponse'_constructor
        {_AbandonChannelResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          AbandonChannelResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser AbandonChannelResponse
        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) "AbandonChannelResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData AbandonChannelResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_AbandonChannelResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rHash' @:: Lens' AddInvoiceResponse Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.paymentRequest' @:: Lens' AddInvoiceResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.addIndex' @:: Lens' AddInvoiceResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.paymentAddr' @:: Lens' AddInvoiceResponse Data.ByteString.ByteString@ -}
data AddInvoiceResponse
  = AddInvoiceResponse'_constructor {_AddInvoiceResponse'rHash :: !Data.ByteString.ByteString,
                                     _AddInvoiceResponse'paymentRequest :: !Data.Text.Text,
                                     _AddInvoiceResponse'addIndex :: !Data.Word.Word64,
                                     _AddInvoiceResponse'paymentAddr :: !Data.ByteString.ByteString,
                                     _AddInvoiceResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show AddInvoiceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField AddInvoiceResponse "rHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AddInvoiceResponse'rHash
           (\ x__ y__ -> x__ {_AddInvoiceResponse'rHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AddInvoiceResponse "paymentRequest" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AddInvoiceResponse'paymentRequest
           (\ x__ y__ -> x__ {_AddInvoiceResponse'paymentRequest = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AddInvoiceResponse "addIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AddInvoiceResponse'addIndex
           (\ x__ y__ -> x__ {_AddInvoiceResponse'addIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField AddInvoiceResponse "paymentAddr" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _AddInvoiceResponse'paymentAddr
           (\ x__ y__ -> x__ {_AddInvoiceResponse'paymentAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Message AddInvoiceResponse where
  messageName _ = Data.Text.pack "lnrpc.AddInvoiceResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC2AddInvoiceResponse\DC2\NAK\n\
      \\ACKr_hash\CAN\SOH \SOH(\fR\ENQrHash\DC2'\n\
      \\SIpayment_request\CAN\STX \SOH(\tR\SOpaymentRequest\DC2\ESC\n\
      \\tadd_index\CAN\DLE \SOH(\EOTR\baddIndex\DC2!\n\
      \\fpayment_addr\CAN\DC1 \SOH(\fR\vpaymentAddr"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "r_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"rHash")) ::
              Data.ProtoLens.FieldDescriptor AddInvoiceResponse
        paymentRequest__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_request"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentRequest")) ::
              Data.ProtoLens.FieldDescriptor AddInvoiceResponse
        addIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "add_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"addIndex")) ::
              Data.ProtoLens.FieldDescriptor AddInvoiceResponse
        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 AddInvoiceResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rHash__field_descriptor),
           (Data.ProtoLens.Tag 2, paymentRequest__field_descriptor),
           (Data.ProtoLens.Tag 16, addIndex__field_descriptor),
           (Data.ProtoLens.Tag 17, paymentAddr__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _AddInvoiceResponse'_unknownFields
        (\ x__ y__ -> x__ {_AddInvoiceResponse'_unknownFields = y__})
  defMessage
    = AddInvoiceResponse'_constructor
        {_AddInvoiceResponse'rHash = Data.ProtoLens.fieldDefault,
         _AddInvoiceResponse'paymentRequest = Data.ProtoLens.fieldDefault,
         _AddInvoiceResponse'addIndex = Data.ProtoLens.fieldDefault,
         _AddInvoiceResponse'paymentAddr = Data.ProtoLens.fieldDefault,
         _AddInvoiceResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          AddInvoiceResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser AddInvoiceResponse
        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))
                                       "r_hash"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"rHash") 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))
                                       "payment_request"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentRequest") y x)
                        128
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "add_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"addIndex") y x)
                        138
                          -> 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)
                        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) "AddInvoiceResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"rHash") _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 @"paymentRequest") _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 @"addIndex") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 128)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                   ((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 138)
                               ((\ 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 AddInvoiceResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_AddInvoiceResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_AddInvoiceResponse'rHash x__)
                (Control.DeepSeq.deepseq
                   (_AddInvoiceResponse'paymentRequest x__)
                   (Control.DeepSeq.deepseq
                      (_AddInvoiceResponse'addIndex x__)
                      (Control.DeepSeq.deepseq
                         (_AddInvoiceResponse'paymentAddr x__) ()))))
newtype AddressType'UnrecognizedValue
  = AddressType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data AddressType
  = WITNESS_PUBKEY_HASH |
    NESTED_PUBKEY_HASH |
    UNUSED_WITNESS_PUBKEY_HASH |
    UNUSED_NESTED_PUBKEY_HASH |
    AddressType'Unrecognized !AddressType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum AddressType where
  maybeToEnum 0 = Prelude.Just WITNESS_PUBKEY_HASH
  maybeToEnum 1 = Prelude.Just NESTED_PUBKEY_HASH
  maybeToEnum 2 = Prelude.Just UNUSED_WITNESS_PUBKEY_HASH
  maybeToEnum 3 = Prelude.Just UNUSED_NESTED_PUBKEY_HASH
  maybeToEnum k
    = Prelude.Just
        (AddressType'Unrecognized
           (AddressType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum WITNESS_PUBKEY_HASH = "WITNESS_PUBKEY_HASH"
  showEnum NESTED_PUBKEY_HASH = "NESTED_PUBKEY_HASH"
  showEnum UNUSED_WITNESS_PUBKEY_HASH = "UNUSED_WITNESS_PUBKEY_HASH"
  showEnum UNUSED_NESTED_PUBKEY_HASH = "UNUSED_NESTED_PUBKEY_HASH"
  showEnum
    (AddressType'Unrecognized (AddressType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "WITNESS_PUBKEY_HASH"
    = Prelude.Just WITNESS_PUBKEY_HASH
    | (Prelude.==) k "NESTED_PUBKEY_HASH"
    = Prelude.Just NESTED_PUBKEY_HASH
    | (Prelude.==) k "UNUSED_WITNESS_PUBKEY_HASH"
    = Prelude.Just UNUSED_WITNESS_PUBKEY_HASH
    | (Prelude.==) k "UNUSED_NESTED_PUBKEY_HASH"
    = Prelude.Just UNUSED_NESTED_PUBKEY_HASH
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded AddressType where
  minBound = WITNESS_PUBKEY_HASH
  maxBound = UNUSED_NESTED_PUBKEY_HASH
instance Prelude.Enum AddressType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum AddressType: " (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum WITNESS_PUBKEY_HASH = 0
  fromEnum NESTED_PUBKEY_HASH = 1
  fromEnum UNUSED_WITNESS_PUBKEY_HASH = 2
  fromEnum UNUSED_NESTED_PUBKEY_HASH = 3
  fromEnum
    (AddressType'Unrecognized (AddressType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ UNUSED_NESTED_PUBKEY_HASH
    = Prelude.error
        "AddressType.succ: bad argument UNUSED_NESTED_PUBKEY_HASH. This value would be out of bounds."
  succ WITNESS_PUBKEY_HASH = NESTED_PUBKEY_HASH
  succ NESTED_PUBKEY_HASH = UNUSED_WITNESS_PUBKEY_HASH
  succ UNUSED_WITNESS_PUBKEY_HASH = UNUSED_NESTED_PUBKEY_HASH
  succ (AddressType'Unrecognized _)
    = Prelude.error
        "AddressType.succ: bad argument: unrecognized value"
  pred WITNESS_PUBKEY_HASH
    = Prelude.error
        "AddressType.pred: bad argument WITNESS_PUBKEY_HASH. This value would be out of bounds."
  pred NESTED_PUBKEY_HASH = WITNESS_PUBKEY_HASH
  pred UNUSED_WITNESS_PUBKEY_HASH = NESTED_PUBKEY_HASH
  pred UNUSED_NESTED_PUBKEY_HASH = UNUSED_WITNESS_PUBKEY_HASH
  pred (AddressType'Unrecognized _)
    = Prelude.error
        "AddressType.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 AddressType where
  fieldDefault = WITNESS_PUBKEY_HASH
instance Control.DeepSeq.NFData AddressType where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.sat' @:: Lens' Amount Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Amount where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.permissions' @:: Lens' BakeMacaroonRequest [MacaroonPermission]@
         * 'Proto.LndGrpc_Fields.vec'permissions' @:: Lens' BakeMacaroonRequest (Data.Vector.Vector MacaroonPermission)@
         * 'Proto.LndGrpc_Fields.rootKeyId' @:: Lens' BakeMacaroonRequest Data.Word.Word64@ -}
data BakeMacaroonRequest
  = BakeMacaroonRequest'_constructor {_BakeMacaroonRequest'permissions :: !(Data.Vector.Vector MacaroonPermission),
                                      _BakeMacaroonRequest'rootKeyId :: !Data.Word.Word64,
                                      _BakeMacaroonRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show BakeMacaroonRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField BakeMacaroonRequest "permissions" [MacaroonPermission] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _BakeMacaroonRequest'permissions
           (\ x__ y__ -> x__ {_BakeMacaroonRequest'permissions = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField BakeMacaroonRequest "vec'permissions" (Data.Vector.Vector MacaroonPermission) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _BakeMacaroonRequest'permissions
           (\ x__ y__ -> x__ {_BakeMacaroonRequest'permissions = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField BakeMacaroonRequest "rootKeyId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _BakeMacaroonRequest'rootKeyId
           (\ x__ y__ -> x__ {_BakeMacaroonRequest'rootKeyId = y__}))
        Prelude.id
instance Data.ProtoLens.Message BakeMacaroonRequest where
  messageName _ = Data.Text.pack "lnrpc.BakeMacaroonRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3BakeMacaroonRequest\DC2;\n\
      \\vpermissions\CAN\SOH \ETX(\v2\EM.lnrpc.MacaroonPermissionR\vpermissions\DC2\RS\n\
      \\vroot_key_id\CAN\STX \SOH(\EOTR\trootKeyId"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        permissions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "permissions"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor MacaroonPermission)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"permissions")) ::
              Data.ProtoLens.FieldDescriptor BakeMacaroonRequest
        rootKeyId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "root_key_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rootKeyId")) ::
              Data.ProtoLens.FieldDescriptor BakeMacaroonRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, permissions__field_descriptor),
           (Data.ProtoLens.Tag 2, rootKeyId__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _BakeMacaroonRequest'_unknownFields
        (\ x__ y__ -> x__ {_BakeMacaroonRequest'_unknownFields = y__})
  defMessage
    = BakeMacaroonRequest'_constructor
        {_BakeMacaroonRequest'permissions = Data.Vector.Generic.empty,
         _BakeMacaroonRequest'rootKeyId = Data.ProtoLens.fieldDefault,
         _BakeMacaroonRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          BakeMacaroonRequest
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MacaroonPermission
             -> Data.ProtoLens.Encoding.Bytes.Parser BakeMacaroonRequest
        loop x mutable'permissions
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'permissions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'permissions)
                      (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'permissions")
                              frozen'permissions
                              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)
                                        "permissions"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'permissions y)
                                loop x v
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "root_key_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rootKeyId") y x)
                                  mutable'permissions
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'permissions
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'permissions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'permissions)
          "BakeMacaroonRequest"
  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'permissions") _x))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"rootKeyId") _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 BakeMacaroonRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_BakeMacaroonRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_BakeMacaroonRequest'permissions x__)
                (Control.DeepSeq.deepseq (_BakeMacaroonRequest'rootKeyId x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.macaroon' @:: Lens' BakeMacaroonResponse Data.Text.Text@ -}
data BakeMacaroonResponse
  = BakeMacaroonResponse'_constructor {_BakeMacaroonResponse'macaroon :: !Data.Text.Text,
                                       _BakeMacaroonResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show BakeMacaroonResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField BakeMacaroonResponse "macaroon" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _BakeMacaroonResponse'macaroon
           (\ x__ y__ -> x__ {_BakeMacaroonResponse'macaroon = y__}))
        Prelude.id
instance Data.ProtoLens.Message BakeMacaroonResponse where
  messageName _ = Data.Text.pack "lnrpc.BakeMacaroonResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC4BakeMacaroonResponse\DC2\SUB\n\
      \\bmacaroon\CAN\SOH \SOH(\tR\bmacaroon"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        macaroon__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "macaroon"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"macaroon")) ::
              Data.ProtoLens.FieldDescriptor BakeMacaroonResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, macaroon__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _BakeMacaroonResponse'_unknownFields
        (\ x__ y__ -> x__ {_BakeMacaroonResponse'_unknownFields = y__})
  defMessage
    = BakeMacaroonResponse'_constructor
        {_BakeMacaroonResponse'macaroon = Data.ProtoLens.fieldDefault,
         _BakeMacaroonResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          BakeMacaroonResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser BakeMacaroonResponse
        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))
                                       "macaroon"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"macaroon") 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) "BakeMacaroonResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"macaroon") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData BakeMacaroonResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_BakeMacaroonResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_BakeMacaroonResponse'macaroon x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chain' @:: Lens' Chain Data.Text.Text@
         * 'Proto.LndGrpc_Fields.network' @:: Lens' Chain Data.Text.Text@ -}
data Chain
  = Chain'_constructor {_Chain'chain :: !Data.Text.Text,
                        _Chain'network :: !Data.Text.Text,
                        _Chain'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Chain where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Chain "chain" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Chain'chain (\ x__ y__ -> x__ {_Chain'chain = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Chain "network" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Chain'network (\ x__ y__ -> x__ {_Chain'network = y__}))
        Prelude.id
instance Data.ProtoLens.Message Chain where
  messageName _ = Data.Text.pack "lnrpc.Chain"
  packedMessageDescriptor _
    = "\n\
      \\ENQChain\DC2\DC4\n\
      \\ENQchain\CAN\SOH \SOH(\tR\ENQchain\DC2\CAN\n\
      \\anetwork\CAN\STX \SOH(\tR\anetwork"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chain__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chain"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"chain")) ::
              Data.ProtoLens.FieldDescriptor Chain
        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 Chain
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chain__field_descriptor),
           (Data.ProtoLens.Tag 2, network__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Chain'_unknownFields
        (\ x__ y__ -> x__ {_Chain'_unknownFields = y__})
  defMessage
    = Chain'_constructor
        {_Chain'chain = Data.ProtoLens.fieldDefault,
         _Chain'network = Data.ProtoLens.fieldDefault,
         _Chain'_unknownFields = []}
  parseMessage
    = let
        loop :: Chain -> Data.ProtoLens.Encoding.Bytes.Parser Chain
        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))
                                       "chain"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chain") 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))
                                       "network"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"network") 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) "Chain"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"chain") _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 @"network") _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 Chain where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Chain'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Chain'chain x__)
                (Control.DeepSeq.deepseq (_Chain'network x__) ()))
{- | Fields :
      -}
data ChanBackupExportRequest
  = ChanBackupExportRequest'_constructor {_ChanBackupExportRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChanBackupExportRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message ChanBackupExportRequest where
  messageName _ = Data.Text.pack "lnrpc.ChanBackupExportRequest"
  packedMessageDescriptor _
    = "\n\
      \\ETBChanBackupExportRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChanBackupExportRequest'_unknownFields
        (\ x__ y__ -> x__ {_ChanBackupExportRequest'_unknownFields = y__})
  defMessage
    = ChanBackupExportRequest'_constructor
        {_ChanBackupExportRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChanBackupExportRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ChanBackupExportRequest
        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) "ChanBackupExportRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ChanBackupExportRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChanBackupExportRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.singleChanBackups' @:: Lens' ChanBackupSnapshot ChannelBackups@
         * 'Proto.LndGrpc_Fields.maybe'singleChanBackups' @:: Lens' ChanBackupSnapshot (Prelude.Maybe ChannelBackups)@
         * 'Proto.LndGrpc_Fields.multiChanBackup' @:: Lens' ChanBackupSnapshot MultiChanBackup@
         * 'Proto.LndGrpc_Fields.maybe'multiChanBackup' @:: Lens' ChanBackupSnapshot (Prelude.Maybe MultiChanBackup)@ -}
data ChanBackupSnapshot
  = ChanBackupSnapshot'_constructor {_ChanBackupSnapshot'singleChanBackups :: !(Prelude.Maybe ChannelBackups),
                                     _ChanBackupSnapshot'multiChanBackup :: !(Prelude.Maybe MultiChanBackup),
                                     _ChanBackupSnapshot'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChanBackupSnapshot where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChanBackupSnapshot "singleChanBackups" ChannelBackups where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanBackupSnapshot'singleChanBackups
           (\ x__ y__ -> x__ {_ChanBackupSnapshot'singleChanBackups = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChanBackupSnapshot "maybe'singleChanBackups" (Prelude.Maybe ChannelBackups) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanBackupSnapshot'singleChanBackups
           (\ x__ y__ -> x__ {_ChanBackupSnapshot'singleChanBackups = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChanBackupSnapshot "multiChanBackup" MultiChanBackup where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanBackupSnapshot'multiChanBackup
           (\ x__ y__ -> x__ {_ChanBackupSnapshot'multiChanBackup = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChanBackupSnapshot "maybe'multiChanBackup" (Prelude.Maybe MultiChanBackup) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChanBackupSnapshot'multiChanBackup
           (\ x__ y__ -> x__ {_ChanBackupSnapshot'multiChanBackup = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChanBackupSnapshot where
  messageName _ = Data.Text.pack "lnrpc.ChanBackupSnapshot"
  packedMessageDescriptor _
    = "\n\
      \\DC2ChanBackupSnapshot\DC2E\n\
      \\DC3single_chan_backups\CAN\SOH \SOH(\v2\NAK.lnrpc.ChannelBackupsR\DC1singleChanBackups\DC2B\n\
      \\DC1multi_chan_backup\CAN\STX \SOH(\v2\SYN.lnrpc.MultiChanBackupR\SImultiChanBackup"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        singleChanBackups__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "single_chan_backups"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelBackups)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'singleChanBackups")) ::
              Data.ProtoLens.FieldDescriptor ChanBackupSnapshot
        multiChanBackup__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "multi_chan_backup"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor MultiChanBackup)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'multiChanBackup")) ::
              Data.ProtoLens.FieldDescriptor ChanBackupSnapshot
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, singleChanBackups__field_descriptor),
           (Data.ProtoLens.Tag 2, multiChanBackup__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChanBackupSnapshot'_unknownFields
        (\ x__ y__ -> x__ {_ChanBackupSnapshot'_unknownFields = y__})
  defMessage
    = ChanBackupSnapshot'_constructor
        {_ChanBackupSnapshot'singleChanBackups = Prelude.Nothing,
         _ChanBackupSnapshot'multiChanBackup = Prelude.Nothing,
         _ChanBackupSnapshot'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChanBackupSnapshot
          -> Data.ProtoLens.Encoding.Bytes.Parser ChanBackupSnapshot
        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)
                                       "single_chan_backups"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"singleChanBackups") 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)
                                       "multi_chan_backup"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"multiChanBackup") 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) "ChanBackupSnapshot"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view
                    (Data.ProtoLens.Field.field @"maybe'singleChanBackups") _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.<>)
                (case
                     Lens.Family2.view
                       (Data.ProtoLens.Field.field @"maybe'multiChanBackup") _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 ChanBackupSnapshot where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChanBackupSnapshot'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChanBackupSnapshot'singleChanBackups x__)
                (Control.DeepSeq.deepseq
                   (_ChanBackupSnapshot'multiChanBackup x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChanInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.amt' @:: Lens' ChanPointShim Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ChanPointShim ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'chanPoint' @:: Lens' ChanPointShim (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.localKey' @:: Lens' ChanPointShim KeyDescriptor@
         * 'Proto.LndGrpc_Fields.maybe'localKey' @:: Lens' ChanPointShim (Prelude.Maybe KeyDescriptor)@
         * 'Proto.LndGrpc_Fields.remoteKey' @:: Lens' ChanPointShim Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' ChanPointShim Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChanPointShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.active' @:: Lens' Channel Prelude.Bool@
         * 'Proto.LndGrpc_Fields.remotePubkey' @:: Lens' Channel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.channelPoint' @:: Lens' Channel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.localBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.remoteBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.commitFee' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.commitWeight' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feePerKw' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.unsettledBalance' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.totalSatoshisSent' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.totalSatoshisReceived' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.numUpdates' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.pendingHtlcs' @:: Lens' Channel [HTLC]@
         * 'Proto.LndGrpc_Fields.vec'pendingHtlcs' @:: Lens' Channel (Data.Vector.Vector HTLC)@
         * 'Proto.LndGrpc_Fields.csvDelay' @:: Lens' Channel Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.private' @:: Lens' Channel Prelude.Bool@
         * 'Proto.LndGrpc_Fields.initiator' @:: Lens' Channel Prelude.Bool@
         * 'Proto.LndGrpc_Fields.chanStatusFlags' @:: Lens' Channel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.localChanReserveSat' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.remoteChanReserveSat' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.staticRemoteKey' @:: Lens' Channel Prelude.Bool@
         * 'Proto.LndGrpc_Fields.commitmentType' @:: Lens' Channel CommitmentType@
         * 'Proto.LndGrpc_Fields.lifetime' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.uptime' @:: Lens' Channel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.closeAddress' @:: Lens' Channel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.pushAmountSat' @:: Lens' Channel Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.thawHeight' @:: Lens' Channel Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.localConstraints' @:: Lens' Channel ChannelConstraints@
         * 'Proto.LndGrpc_Fields.maybe'localConstraints' @:: Lens' Channel (Prelude.Maybe ChannelConstraints)@
         * 'Proto.LndGrpc_Fields.remoteConstraints' @:: Lens' Channel ChannelConstraints@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Channel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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 :
     
         * 'Proto.LndGrpc_Fields.nodePubkey' @:: Lens' ChannelAcceptRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.chainHash' @:: Lens' ChannelAcceptRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' ChannelAcceptRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.fundingAmt' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.pushAmt' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.dustLimit' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.maxValueInFlight' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.channelReserve' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.minHtlc' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.feePerKw' @:: Lens' ChannelAcceptRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.csvDelay' @:: Lens' ChannelAcceptRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.maxAcceptedHtlcs' @:: Lens' ChannelAcceptRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.channelFlags' @:: Lens' ChannelAcceptRequest Data.Word.Word32@ -}
data ChannelAcceptRequest
  = ChannelAcceptRequest'_constructor {_ChannelAcceptRequest'nodePubkey :: !Data.ByteString.ByteString,
                                       _ChannelAcceptRequest'chainHash :: !Data.ByteString.ByteString,
                                       _ChannelAcceptRequest'pendingChanId :: !Data.ByteString.ByteString,
                                       _ChannelAcceptRequest'fundingAmt :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'pushAmt :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'dustLimit :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'maxValueInFlight :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'channelReserve :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'minHtlc :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'feePerKw :: !Data.Word.Word64,
                                       _ChannelAcceptRequest'csvDelay :: !Data.Word.Word32,
                                       _ChannelAcceptRequest'maxAcceptedHtlcs :: !Data.Word.Word32,
                                       _ChannelAcceptRequest'channelFlags :: !Data.Word.Word32,
                                       _ChannelAcceptRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelAcceptRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "nodePubkey" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'nodePubkey
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'nodePubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "chainHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'chainHash
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'chainHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'pendingChanId
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "fundingAmt" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'fundingAmt
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'fundingAmt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "pushAmt" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'pushAmt
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'pushAmt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "dustLimit" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'dustLimit
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'dustLimit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "maxValueInFlight" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'maxValueInFlight
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'maxValueInFlight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "channelReserve" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'channelReserve
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'channelReserve = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "minHtlc" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'minHtlc
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'minHtlc = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "feePerKw" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'feePerKw
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'feePerKw = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "csvDelay" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'csvDelay
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'csvDelay = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "maxAcceptedHtlcs" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'maxAcceptedHtlcs
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'maxAcceptedHtlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptRequest "channelFlags" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptRequest'channelFlags
           (\ x__ y__ -> x__ {_ChannelAcceptRequest'channelFlags = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelAcceptRequest where
  messageName _ = Data.Text.pack "lnrpc.ChannelAcceptRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC4ChannelAcceptRequest\DC2\US\n\
      \\vnode_pubkey\CAN\SOH \SOH(\fR\n\
      \nodePubkey\DC2\GS\n\
      \\n\
      \chain_hash\CAN\STX \SOH(\fR\tchainHash\DC2&\n\
      \\SIpending_chan_id\CAN\ETX \SOH(\fR\rpendingChanId\DC2\US\n\
      \\vfunding_amt\CAN\EOT \SOH(\EOTR\n\
      \fundingAmt\DC2\EM\n\
      \\bpush_amt\CAN\ENQ \SOH(\EOTR\apushAmt\DC2\GS\n\
      \\n\
      \dust_limit\CAN\ACK \SOH(\EOTR\tdustLimit\DC2-\n\
      \\DC3max_value_in_flight\CAN\a \SOH(\EOTR\DLEmaxValueInFlight\DC2'\n\
      \\SIchannel_reserve\CAN\b \SOH(\EOTR\SOchannelReserve\DC2\EM\n\
      \\bmin_htlc\CAN\t \SOH(\EOTR\aminHtlc\DC2\FS\n\
      \\n\
      \fee_per_kw\CAN\n\
      \ \SOH(\EOTR\bfeePerKw\DC2\ESC\n\
      \\tcsv_delay\CAN\v \SOH(\rR\bcsvDelay\DC2,\n\
      \\DC2max_accepted_htlcs\CAN\f \SOH(\rR\DLEmaxAcceptedHtlcs\DC2#\n\
      \\rchannel_flags\CAN\r \SOH(\rR\fchannelFlags"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        nodePubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"nodePubkey")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        chainHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chain_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chainHash")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        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 ChannelAcceptRequest
        fundingAmt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_amt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fundingAmt")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        pushAmt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "push_amt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pushAmt")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        dustLimit__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dust_limit"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"dustLimit")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        maxValueInFlight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_value_in_flight"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxValueInFlight")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        channelReserve__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_reserve"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelReserve")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        minHtlc__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"minHtlc")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        feePerKw__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_per_kw"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feePerKw")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
        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 ChannelAcceptRequest
        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 ChannelAcceptRequest
        channelFlags__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_flags"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelFlags")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, nodePubkey__field_descriptor),
           (Data.ProtoLens.Tag 2, chainHash__field_descriptor),
           (Data.ProtoLens.Tag 3, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 4, fundingAmt__field_descriptor),
           (Data.ProtoLens.Tag 5, pushAmt__field_descriptor),
           (Data.ProtoLens.Tag 6, dustLimit__field_descriptor),
           (Data.ProtoLens.Tag 7, maxValueInFlight__field_descriptor),
           (Data.ProtoLens.Tag 8, channelReserve__field_descriptor),
           (Data.ProtoLens.Tag 9, minHtlc__field_descriptor),
           (Data.ProtoLens.Tag 10, feePerKw__field_descriptor),
           (Data.ProtoLens.Tag 11, csvDelay__field_descriptor),
           (Data.ProtoLens.Tag 12, maxAcceptedHtlcs__field_descriptor),
           (Data.ProtoLens.Tag 13, channelFlags__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelAcceptRequest'_unknownFields
        (\ x__ y__ -> x__ {_ChannelAcceptRequest'_unknownFields = y__})
  defMessage
    = ChannelAcceptRequest'_constructor
        {_ChannelAcceptRequest'nodePubkey = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'chainHash = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'pendingChanId = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'fundingAmt = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'pushAmt = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'dustLimit = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'maxValueInFlight = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'channelReserve = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'minHtlc = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'feePerKw = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'csvDelay = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'maxAcceptedHtlcs = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'channelFlags = Data.ProtoLens.fieldDefault,
         _ChannelAcceptRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelAcceptRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelAcceptRequest
        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))
                                       "node_pubkey"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nodePubkey") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "chain_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chainHash") y x)
                        26
                          -> 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)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "funding_amt"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fundingAmt") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "push_amt"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pushAmt") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "dust_limit"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"dustLimit") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "max_value_in_flight"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxValueInFlight") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "channel_reserve"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelReserve") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "min_htlc"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlc") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "fee_per_kw"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feePerKw") y x)
                        88
                          -> 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)
                        96
                          -> 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)
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "channel_flags"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelFlags") 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) "ChannelAcceptRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"nodePubkey") _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 @"chainHash") _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 @"pendingChanId") _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 @"fundingAmt") _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 @"pushAmt") _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 @"dustLimit") _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 @"maxValueInFlight") _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.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"channelReserve") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 64)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt _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 72)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt _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)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                        ((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 88)
                                                    ((Prelude..)
                                                       Data.ProtoLens.Encoding.Bytes.putVarInt
                                                       Prelude.fromIntegral
                                                       _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 96)
                                                       ((Prelude..)
                                                          Data.ProtoLens.Encoding.Bytes.putVarInt
                                                          Prelude.fromIntegral
                                                          _v))
                                              ((Data.Monoid.<>)
                                                 (let
                                                    _v
                                                      = Lens.Family2.view
                                                          (Data.ProtoLens.Field.field
                                                             @"channelFlags")
                                                          _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.ProtoLens.Encoding.Wire.buildFieldSet
                                                    (Lens.Family2.view
                                                       Data.ProtoLens.unknownFields _x))))))))))))))
instance Control.DeepSeq.NFData ChannelAcceptRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelAcceptRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelAcceptRequest'nodePubkey x__)
                (Control.DeepSeq.deepseq
                   (_ChannelAcceptRequest'chainHash x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelAcceptRequest'pendingChanId x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelAcceptRequest'fundingAmt x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelAcceptRequest'pushAmt x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelAcceptRequest'dustLimit x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelAcceptRequest'maxValueInFlight x__)
                                  (Control.DeepSeq.deepseq
                                     (_ChannelAcceptRequest'channelReserve x__)
                                     (Control.DeepSeq.deepseq
                                        (_ChannelAcceptRequest'minHtlc x__)
                                        (Control.DeepSeq.deepseq
                                           (_ChannelAcceptRequest'feePerKw x__)
                                           (Control.DeepSeq.deepseq
                                              (_ChannelAcceptRequest'csvDelay x__)
                                              (Control.DeepSeq.deepseq
                                                 (_ChannelAcceptRequest'maxAcceptedHtlcs x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_ChannelAcceptRequest'channelFlags x__)
                                                    ())))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.accept' @:: Lens' ChannelAcceptResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' ChannelAcceptResponse Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.error' @:: Lens' ChannelAcceptResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.upfrontShutdown' @:: Lens' ChannelAcceptResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.csvDelay' @:: Lens' ChannelAcceptResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.reserveSat' @:: Lens' ChannelAcceptResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.inFlightMaxMsat' @:: Lens' ChannelAcceptResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.maxHtlcCount' @:: Lens' ChannelAcceptResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.minHtlcIn' @:: Lens' ChannelAcceptResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.minAcceptDepth' @:: Lens' ChannelAcceptResponse Data.Word.Word32@ -}
data ChannelAcceptResponse
  = ChannelAcceptResponse'_constructor {_ChannelAcceptResponse'accept :: !Prelude.Bool,
                                        _ChannelAcceptResponse'pendingChanId :: !Data.ByteString.ByteString,
                                        _ChannelAcceptResponse'error :: !Data.Text.Text,
                                        _ChannelAcceptResponse'upfrontShutdown :: !Data.Text.Text,
                                        _ChannelAcceptResponse'csvDelay :: !Data.Word.Word32,
                                        _ChannelAcceptResponse'reserveSat :: !Data.Word.Word64,
                                        _ChannelAcceptResponse'inFlightMaxMsat :: !Data.Word.Word64,
                                        _ChannelAcceptResponse'maxHtlcCount :: !Data.Word.Word32,
                                        _ChannelAcceptResponse'minHtlcIn :: !Data.Word.Word64,
                                        _ChannelAcceptResponse'minAcceptDepth :: !Data.Word.Word32,
                                        _ChannelAcceptResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelAcceptResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "accept" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'accept
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'accept = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'pendingChanId
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "error" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'error
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'error = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "upfrontShutdown" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'upfrontShutdown
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'upfrontShutdown = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "csvDelay" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'csvDelay
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'csvDelay = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "reserveSat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'reserveSat
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'reserveSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "inFlightMaxMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'inFlightMaxMsat
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'inFlightMaxMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "maxHtlcCount" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'maxHtlcCount
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'maxHtlcCount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "minHtlcIn" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'minHtlcIn
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'minHtlcIn = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelAcceptResponse "minAcceptDepth" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelAcceptResponse'minAcceptDepth
           (\ x__ y__ -> x__ {_ChannelAcceptResponse'minAcceptDepth = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelAcceptResponse where
  messageName _ = Data.Text.pack "lnrpc.ChannelAcceptResponse"
  packedMessageDescriptor _
    = "\n\
      \\NAKChannelAcceptResponse\DC2\SYN\n\
      \\ACKaccept\CAN\SOH \SOH(\bR\ACKaccept\DC2&\n\
      \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2\DC4\n\
      \\ENQerror\CAN\ETX \SOH(\tR\ENQerror\DC2)\n\
      \\DLEupfront_shutdown\CAN\EOT \SOH(\tR\SIupfrontShutdown\DC2\ESC\n\
      \\tcsv_delay\CAN\ENQ \SOH(\rR\bcsvDelay\DC2\US\n\
      \\vreserve_sat\CAN\ACK \SOH(\EOTR\n\
      \reserveSat\DC2+\n\
      \\DC2in_flight_max_msat\CAN\a \SOH(\EOTR\SIinFlightMaxMsat\DC2$\n\
      \\SOmax_htlc_count\CAN\b \SOH(\rR\fmaxHtlcCount\DC2\RS\n\
      \\vmin_htlc_in\CAN\t \SOH(\EOTR\tminHtlcIn\DC2(\n\
      \\DLEmin_accept_depth\CAN\n\
      \ \SOH(\rR\SOminAcceptDepth"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        accept__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "accept"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"accept")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        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 ChannelAcceptResponse
        error__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "error"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"error")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        upfrontShutdown__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "upfront_shutdown"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"upfrontShutdown")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        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 ChannelAcceptResponse
        reserveSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "reserve_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"reserveSat")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        inFlightMaxMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "in_flight_max_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"inFlightMaxMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        maxHtlcCount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_htlc_count"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxHtlcCount")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        minHtlcIn__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc_in"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minHtlcIn")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
        minAcceptDepth__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_accept_depth"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minAcceptDepth")) ::
              Data.ProtoLens.FieldDescriptor ChannelAcceptResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, accept__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 3, error__field_descriptor),
           (Data.ProtoLens.Tag 4, upfrontShutdown__field_descriptor),
           (Data.ProtoLens.Tag 5, csvDelay__field_descriptor),
           (Data.ProtoLens.Tag 6, reserveSat__field_descriptor),
           (Data.ProtoLens.Tag 7, inFlightMaxMsat__field_descriptor),
           (Data.ProtoLens.Tag 8, maxHtlcCount__field_descriptor),
           (Data.ProtoLens.Tag 9, minHtlcIn__field_descriptor),
           (Data.ProtoLens.Tag 10, minAcceptDepth__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelAcceptResponse'_unknownFields
        (\ x__ y__ -> x__ {_ChannelAcceptResponse'_unknownFields = y__})
  defMessage
    = ChannelAcceptResponse'_constructor
        {_ChannelAcceptResponse'accept = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'pendingChanId = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'error = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'upfrontShutdown = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'csvDelay = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'reserveSat = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'inFlightMaxMsat = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'maxHtlcCount = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'minHtlcIn = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'minAcceptDepth = Data.ProtoLens.fieldDefault,
         _ChannelAcceptResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelAcceptResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelAcceptResponse
        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)
                                       "accept"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"accept") 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 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))
                                       "error"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"error") 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))
                                       "upfront_shutdown"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"upfrontShutdown") y x)
                        40
                          -> 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)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "reserve_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"reserveSat") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "in_flight_max_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"inFlightMaxMsat") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_htlc_count"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"maxHtlcCount") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "min_htlc_in"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlcIn") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_accept_depth"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"minAcceptDepth") 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) "ChannelAcceptResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"accept") _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 @"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 @"error") _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 @"upfrontShutdown") _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 @"csvDelay") _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 @"reserveSat") _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 @"inFlightMaxMsat") _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.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"maxHtlcCount") _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 @"minHtlcIn") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"minAcceptDepth") _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 ChannelAcceptResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelAcceptResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelAcceptResponse'accept x__)
                (Control.DeepSeq.deepseq
                   (_ChannelAcceptResponse'pendingChanId x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelAcceptResponse'error x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelAcceptResponse'upfrontShutdown x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelAcceptResponse'csvDelay x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelAcceptResponse'reserveSat x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelAcceptResponse'inFlightMaxMsat x__)
                                  (Control.DeepSeq.deepseq
                                     (_ChannelAcceptResponse'maxHtlcCount x__)
                                     (Control.DeepSeq.deepseq
                                        (_ChannelAcceptResponse'minHtlcIn x__)
                                        (Control.DeepSeq.deepseq
                                           (_ChannelAcceptResponse'minAcceptDepth x__) ()))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ChannelBackup ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'chanPoint' @:: Lens' ChannelBackup (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.chanBackup' @:: Lens' ChannelBackup Data.ByteString.ByteString@ -}
data ChannelBackup
  = ChannelBackup'_constructor {_ChannelBackup'chanPoint :: !(Prelude.Maybe ChannelPoint),
                                _ChannelBackup'chanBackup :: !Data.ByteString.ByteString,
                                _ChannelBackup'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelBackup where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelBackup "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBackup'chanPoint
           (\ x__ y__ -> x__ {_ChannelBackup'chanPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelBackup "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBackup'chanPoint
           (\ x__ y__ -> x__ {_ChannelBackup'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelBackup "chanBackup" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBackup'chanBackup
           (\ x__ y__ -> x__ {_ChannelBackup'chanBackup = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelBackup where
  messageName _ = Data.Text.pack "lnrpc.ChannelBackup"
  packedMessageDescriptor _
    = "\n\
      \\rChannelBackup\DC22\n\
      \\n\
      \chan_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC2\US\n\
      \\vchan_backup\CAN\STX \SOH(\fR\n\
      \chanBackup"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        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 ChannelBackup
        chanBackup__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_backup"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanBackup")) ::
              Data.ProtoLens.FieldDescriptor ChannelBackup
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanPoint__field_descriptor),
           (Data.ProtoLens.Tag 2, chanBackup__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelBackup'_unknownFields
        (\ x__ y__ -> x__ {_ChannelBackup'_unknownFields = y__})
  defMessage
    = ChannelBackup'_constructor
        {_ChannelBackup'chanPoint = Prelude.Nothing,
         _ChannelBackup'chanBackup = Data.ProtoLens.fieldDefault,
         _ChannelBackup'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelBackup -> Data.ProtoLens.Encoding.Bytes.Parser ChannelBackup
        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"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPoint") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "chan_backup"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanBackup") 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) "ChannelBackup"
  buildMessage
    = \ _x
        -> (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 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 @"chanBackup") _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 ChannelBackup where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelBackup'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelBackup'chanPoint x__)
                (Control.DeepSeq.deepseq (_ChannelBackup'chanBackup x__) ()))
{- | Fields :
      -}
data ChannelBackupSubscription
  = ChannelBackupSubscription'_constructor {_ChannelBackupSubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelBackupSubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message ChannelBackupSubscription where
  messageName _ = Data.Text.pack "lnrpc.ChannelBackupSubscription"
  packedMessageDescriptor _
    = "\n\
      \\EMChannelBackupSubscription"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelBackupSubscription'_unknownFields
        (\ x__ y__
           -> x__ {_ChannelBackupSubscription'_unknownFields = y__})
  defMessage
    = ChannelBackupSubscription'_constructor
        {_ChannelBackupSubscription'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelBackupSubscription
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelBackupSubscription
        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) "ChannelBackupSubscription"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ChannelBackupSubscription where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelBackupSubscription'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanBackups' @:: Lens' ChannelBackups [ChannelBackup]@
         * 'Proto.LndGrpc_Fields.vec'chanBackups' @:: Lens' ChannelBackups (Data.Vector.Vector ChannelBackup)@ -}
data ChannelBackups
  = ChannelBackups'_constructor {_ChannelBackups'chanBackups :: !(Data.Vector.Vector ChannelBackup),
                                 _ChannelBackups'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelBackups where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelBackups "chanBackups" [ChannelBackup] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBackups'chanBackups
           (\ x__ y__ -> x__ {_ChannelBackups'chanBackups = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ChannelBackups "vec'chanBackups" (Data.Vector.Vector ChannelBackup) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelBackups'chanBackups
           (\ x__ y__ -> x__ {_ChannelBackups'chanBackups = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelBackups where
  messageName _ = Data.Text.pack "lnrpc.ChannelBackups"
  packedMessageDescriptor _
    = "\n\
      \\SOChannelBackups\DC27\n\
      \\fchan_backups\CAN\SOH \ETX(\v2\DC4.lnrpc.ChannelBackupR\vchanBackups"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanBackups__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_backups"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelBackup)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"chanBackups")) ::
              Data.ProtoLens.FieldDescriptor ChannelBackups
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanBackups__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelBackups'_unknownFields
        (\ x__ y__ -> x__ {_ChannelBackups'_unknownFields = y__})
  defMessage
    = ChannelBackups'_constructor
        {_ChannelBackups'chanBackups = Data.Vector.Generic.empty,
         _ChannelBackups'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelBackups
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelBackup
             -> Data.ProtoLens.Encoding.Bytes.Parser ChannelBackups
        loop x mutable'chanBackups
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'chanBackups <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'chanBackups)
                      (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'chanBackups")
                              frozen'chanBackups
                              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_backups"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'chanBackups 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'chanBackups
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'chanBackups <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'chanBackups)
          "ChannelBackups"
  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'chanBackups") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ChannelBackups where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelBackups'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ChannelBackups'chanBackups x__) ())
{- | Fields :
      -}
data ChannelBalanceRequest
  = ChannelBalanceRequest'_constructor {_ChannelBalanceRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelBalanceRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.balance' @:: Lens' ChannelBalanceResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pendingOpenBalance' @:: Lens' ChannelBalanceResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.localBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_Fields.maybe'localBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.LndGrpc_Fields.remoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_Fields.maybe'remoteBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.LndGrpc_Fields.unsettledLocalBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_Fields.maybe'unsettledLocalBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.LndGrpc_Fields.unsettledRemoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_Fields.maybe'unsettledRemoteBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.LndGrpc_Fields.pendingOpenLocalBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_Fields.maybe'pendingOpenLocalBalance' @:: Lens' ChannelBalanceResponse (Prelude.Maybe Amount)@
         * 'Proto.LndGrpc_Fields.pendingOpenRemoteBalance' @:: Lens' ChannelBalanceResponse Amount@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelBalanceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channelPoint' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' ChannelCloseSummary Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chainHash' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.LndGrpc_Fields.closingTxHash' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.LndGrpc_Fields.remotePubkey' @:: Lens' ChannelCloseSummary Data.Text.Text@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.closeHeight' @:: Lens' ChannelCloseSummary Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.settledBalance' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.timeLockedBalance' @:: Lens' ChannelCloseSummary Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.closeType' @:: Lens' ChannelCloseSummary ChannelCloseSummary'ClosureType@
         * 'Proto.LndGrpc_Fields.openInitiator' @:: Lens' ChannelCloseSummary Initiator@
         * 'Proto.LndGrpc_Fields.closeInitiator' @:: Lens' ChannelCloseSummary Initiator@
         * 'Proto.LndGrpc_Fields.resolutions' @:: Lens' ChannelCloseSummary [Resolution]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelCloseSummary where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
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)
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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.closingTxid' @:: Lens' ChannelCloseUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.success' @:: Lens' ChannelCloseUpdate Prelude.Bool@ -}
data ChannelCloseUpdate
  = ChannelCloseUpdate'_constructor {_ChannelCloseUpdate'closingTxid :: !Data.ByteString.ByteString,
                                     _ChannelCloseUpdate'success :: !Prelude.Bool,
                                     _ChannelCloseUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelCloseUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelCloseUpdate "closingTxid" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseUpdate'closingTxid
           (\ x__ y__ -> x__ {_ChannelCloseUpdate'closingTxid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelCloseUpdate "success" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelCloseUpdate'success
           (\ x__ y__ -> x__ {_ChannelCloseUpdate'success = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelCloseUpdate where
  messageName _ = Data.Text.pack "lnrpc.ChannelCloseUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC2ChannelCloseUpdate\DC2!\n\
      \\fclosing_txid\CAN\SOH \SOH(\fR\vclosingTxid\DC2\CAN\n\
      \\asuccess\CAN\STX \SOH(\bR\asuccess"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        closingTxid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "closing_txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"closingTxid")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseUpdate
        success__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "success"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"success")) ::
              Data.ProtoLens.FieldDescriptor ChannelCloseUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, closingTxid__field_descriptor),
           (Data.ProtoLens.Tag 2, success__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelCloseUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ChannelCloseUpdate'_unknownFields = y__})
  defMessage
    = ChannelCloseUpdate'_constructor
        {_ChannelCloseUpdate'closingTxid = Data.ProtoLens.fieldDefault,
         _ChannelCloseUpdate'success = Data.ProtoLens.fieldDefault,
         _ChannelCloseUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelCloseUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelCloseUpdate
        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))
                                       "closing_txid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"closingTxid") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "success"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"success") 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) "ChannelCloseUpdate"
  buildMessage
    = \ _x
        -> (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 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 @"success") _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 ChannelCloseUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelCloseUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelCloseUpdate'closingTxid x__)
                (Control.DeepSeq.deepseq (_ChannelCloseUpdate'success x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.csvDelay' @:: Lens' ChannelConstraints Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.chanReserveSat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.dustLimitSat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.maxPendingAmtMsat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.minHtlcMsat' @:: Lens' ChannelConstraints Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelConstraints where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channelId' @:: Lens' ChannelEdge Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.LndGrpc_Fields.lastUpdate' @:: Lens' ChannelEdge Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.node1Pub' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.LndGrpc_Fields.node2Pub' @:: Lens' ChannelEdge Data.Text.Text@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' ChannelEdge Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.node1Policy' @:: Lens' ChannelEdge RoutingPolicy@
         * 'Proto.LndGrpc_Fields.maybe'node1Policy' @:: Lens' ChannelEdge (Prelude.Maybe RoutingPolicy)@
         * 'Proto.LndGrpc_Fields.node2Policy' @:: Lens' ChannelEdge RoutingPolicy@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelEdge where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.chanId' @:: Lens' ChannelEdgeUpdate Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ChannelEdgeUpdate ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'chanPoint' @:: Lens' ChannelEdgeUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' ChannelEdgeUpdate Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.routingPolicy' @:: Lens' ChannelEdgeUpdate RoutingPolicy@
         * 'Proto.LndGrpc_Fields.maybe'routingPolicy' @:: Lens' ChannelEdgeUpdate (Prelude.Maybe RoutingPolicy)@
         * 'Proto.LndGrpc_Fields.advertisingNode' @:: Lens' ChannelEdgeUpdate Data.Text.Text@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelEdgeUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
instance Prelude.Show ChannelEventSubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.type'' @:: Lens' ChannelEventUpdate ChannelEventUpdate'UpdateType@
         * 'Proto.LndGrpc_Fields.maybe'channel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelEventUpdate'Channel)@
         * 'Proto.LndGrpc_Fields.maybe'openChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe Channel)@
         * 'Proto.LndGrpc_Fields.openChannel' @:: Lens' ChannelEventUpdate Channel@
         * 'Proto.LndGrpc_Fields.maybe'closedChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelCloseSummary)@
         * 'Proto.LndGrpc_Fields.closedChannel' @:: Lens' ChannelEventUpdate ChannelCloseSummary@
         * 'Proto.LndGrpc_Fields.maybe'activeChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.activeChannel' @:: Lens' ChannelEventUpdate ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'inactiveChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.inactiveChannel' @:: Lens' ChannelEventUpdate ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'pendingOpenChannel' @:: Lens' ChannelEventUpdate (Prelude.Maybe PendingUpdate)@
         * 'Proto.LndGrpc_Fields.pendingOpenChannel' @:: Lens' ChannelEventUpdate PendingUpdate@ -}
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)
instance Prelude.Show ChannelEventUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data ChannelEventUpdate'Channel
  = ChannelEventUpdate'OpenChannel !Channel |
    ChannelEventUpdate'ClosedChannel !ChannelCloseSummary |
    ChannelEventUpdate'ActiveChannel !ChannelPoint |
    ChannelEventUpdate'InactiveChannel !ChannelPoint |
    ChannelEventUpdate'PendingOpenChannel !PendingUpdate
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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.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\DC28\n\
      \\EOTtype\CAN\ENQ \SOH(\SO2$.lnrpc.ChannelEventUpdate.UpdateTypeR\EOTtype\"v\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\EOTB\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
      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)]
  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)
                        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))
                (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__
_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)
newtype ChannelEventUpdate'UpdateType'UnrecognizedValue
  = ChannelEventUpdate'UpdateType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data ChannelEventUpdate'UpdateType
  = ChannelEventUpdate'OPEN_CHANNEL |
    ChannelEventUpdate'CLOSED_CHANNEL |
    ChannelEventUpdate'ACTIVE_CHANNEL |
    ChannelEventUpdate'INACTIVE_CHANNEL |
    ChannelEventUpdate'PENDING_OPEN_CHANNEL |
    ChannelEventUpdate'UpdateType'Unrecognized !ChannelEventUpdate'UpdateType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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 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'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.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded ChannelEventUpdate'UpdateType where
  minBound = ChannelEventUpdate'OPEN_CHANNEL
  maxBound = ChannelEventUpdate'PENDING_OPEN_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'UpdateType'Unrecognized (ChannelEventUpdate'UpdateType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ ChannelEventUpdate'PENDING_OPEN_CHANNEL
    = Prelude.error
        "ChannelEventUpdate'UpdateType.succ: bad argument ChannelEventUpdate'PENDING_OPEN_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'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'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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' ChannelFeeReport Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.channelPoint' @:: Lens' ChannelFeeReport Data.Text.Text@
         * 'Proto.LndGrpc_Fields.baseFeeMsat' @:: Lens' ChannelFeeReport Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feePerMil' @:: Lens' ChannelFeeReport Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeRate' @:: Lens' ChannelFeeReport Prelude.Double@ -}
data ChannelFeeReport
  = ChannelFeeReport'_constructor {_ChannelFeeReport'chanId :: !Data.Word.Word64,
                                   _ChannelFeeReport'channelPoint :: !Data.Text.Text,
                                   _ChannelFeeReport'baseFeeMsat :: !Data.Int.Int64,
                                   _ChannelFeeReport'feePerMil :: !Data.Int.Int64,
                                   _ChannelFeeReport'feeRate :: !Prelude.Double,
                                   _ChannelFeeReport'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelFeeReport where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelFeeReport "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelFeeReport'chanId
           (\ x__ y__ -> x__ {_ChannelFeeReport'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelFeeReport "channelPoint" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelFeeReport'channelPoint
           (\ x__ y__ -> x__ {_ChannelFeeReport'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelFeeReport "baseFeeMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelFeeReport'baseFeeMsat
           (\ x__ y__ -> x__ {_ChannelFeeReport'baseFeeMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelFeeReport "feePerMil" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelFeeReport'feePerMil
           (\ x__ y__ -> x__ {_ChannelFeeReport'feePerMil = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelFeeReport "feeRate" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelFeeReport'feeRate
           (\ x__ y__ -> x__ {_ChannelFeeReport'feeRate = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelFeeReport where
  messageName _ = Data.Text.pack "lnrpc.ChannelFeeReport"
  packedMessageDescriptor _
    = "\n\
      \\DLEChannelFeeReport\DC2\ESC\n\
      \\achan_id\CAN\ENQ \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2#\n\
      \\rchannel_point\CAN\SOH \SOH(\tR\fchannelPoint\DC2\"\n\
      \\rbase_fee_msat\CAN\STX \SOH(\ETXR\vbaseFeeMsat\DC2\RS\n\
      \\vfee_per_mil\CAN\ETX \SOH(\ETXR\tfeePerMil\DC2\EM\n\
      \\bfee_rate\CAN\EOT \SOH(\SOHR\afeeRate"
  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 ChannelFeeReport
        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 ChannelFeeReport
        baseFeeMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "base_fee_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"baseFeeMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelFeeReport
        feePerMil__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_per_mil"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feePerMil")) ::
              Data.ProtoLens.FieldDescriptor ChannelFeeReport
        feeRate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_rate"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeRate")) ::
              Data.ProtoLens.FieldDescriptor ChannelFeeReport
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 5, chanId__field_descriptor),
           (Data.ProtoLens.Tag 1, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 2, baseFeeMsat__field_descriptor),
           (Data.ProtoLens.Tag 3, feePerMil__field_descriptor),
           (Data.ProtoLens.Tag 4, feeRate__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelFeeReport'_unknownFields
        (\ x__ y__ -> x__ {_ChannelFeeReport'_unknownFields = y__})
  defMessage
    = ChannelFeeReport'_constructor
        {_ChannelFeeReport'chanId = Data.ProtoLens.fieldDefault,
         _ChannelFeeReport'channelPoint = Data.ProtoLens.fieldDefault,
         _ChannelFeeReport'baseFeeMsat = Data.ProtoLens.fieldDefault,
         _ChannelFeeReport'feePerMil = Data.ProtoLens.fieldDefault,
         _ChannelFeeReport'feeRate = Data.ProtoLens.fieldDefault,
         _ChannelFeeReport'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelFeeReport
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelFeeReport
        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.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        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)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "base_fee_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"baseFeeMsat") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_per_mil"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feePerMil") y x)
                        33
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "fee_rate"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeRate") 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) "ChannelFeeReport"
  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 40)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt _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 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 @"baseFeeMsat") _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 @"feePerMil") _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 @"feeRate") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 33)
                                  ((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 ChannelFeeReport where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelFeeReport'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelFeeReport'chanId x__)
                (Control.DeepSeq.deepseq
                   (_ChannelFeeReport'channelPoint x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelFeeReport'baseFeeMsat x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelFeeReport'feePerMil x__)
                         (Control.DeepSeq.deepseq (_ChannelFeeReport'feeRate x__) ())))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.nodes' @:: Lens' ChannelGraph [LightningNode]@
         * 'Proto.LndGrpc_Fields.vec'nodes' @:: Lens' ChannelGraph (Data.Vector.Vector LightningNode)@
         * 'Proto.LndGrpc_Fields.edges' @:: Lens' ChannelGraph [ChannelEdge]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelGraph where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_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)
instance Prelude.Show ChannelGraphRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channelPoint' @:: Lens' ChannelOpenUpdate ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'channelPoint' @:: Lens' ChannelOpenUpdate (Prelude.Maybe ChannelPoint)@ -}
data ChannelOpenUpdate
  = ChannelOpenUpdate'_constructor {_ChannelOpenUpdate'channelPoint :: !(Prelude.Maybe ChannelPoint),
                                    _ChannelOpenUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelOpenUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelOpenUpdate "channelPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelOpenUpdate'channelPoint
           (\ x__ y__ -> x__ {_ChannelOpenUpdate'channelPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ChannelOpenUpdate "maybe'channelPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelOpenUpdate'channelPoint
           (\ x__ y__ -> x__ {_ChannelOpenUpdate'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelOpenUpdate where
  messageName _ = Data.Text.pack "lnrpc.ChannelOpenUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC1ChannelOpenUpdate\DC28\n\
      \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channelPoint")) ::
              Data.ProtoLens.FieldDescriptor ChannelOpenUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelPoint__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelOpenUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ChannelOpenUpdate'_unknownFields = y__})
  defMessage
    = ChannelOpenUpdate'_constructor
        {_ChannelOpenUpdate'channelPoint = Prelude.Nothing,
         _ChannelOpenUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelOpenUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ChannelOpenUpdate
        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_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") 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) "ChannelOpenUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view
                    (Data.ProtoLens.Field.field @"maybe'channelPoint") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ChannelOpenUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelOpenUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ChannelOpenUpdate'channelPoint x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.outputIndex' @:: Lens' ChannelPoint Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.maybe'fundingTxid' @:: Lens' ChannelPoint (Prelude.Maybe ChannelPoint'FundingTxid)@
         * 'Proto.LndGrpc_Fields.maybe'fundingTxidBytes' @:: Lens' ChannelPoint (Prelude.Maybe Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.fundingTxidBytes' @:: Lens' ChannelPoint Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.maybe'fundingTxidStr' @:: Lens' ChannelPoint (Prelude.Maybe Data.Text.Text)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ChannelPoint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data ChannelPoint'FundingTxid
  = ChannelPoint'FundingTxidBytes !Data.ByteString.ByteString |
    ChannelPoint'FundingTxidStr !Data.Text.Text
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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.LndGrpc_Fields.signature' @:: Lens' ChannelUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.chainHash' @:: Lens' ChannelUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' ChannelUpdate Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.timestamp' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.messageFlags' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.channelFlags' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.timeLockDelta' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.htlcMinimumMsat' @:: Lens' ChannelUpdate Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.baseFee' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.feeRate' @:: Lens' ChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.htlcMaximumMsat' @:: Lens' ChannelUpdate Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.extraOpaqueData' @:: Lens' ChannelUpdate Data.ByteString.ByteString@ -}
data ChannelUpdate
  = ChannelUpdate'_constructor {_ChannelUpdate'signature :: !Data.ByteString.ByteString,
                                _ChannelUpdate'chainHash :: !Data.ByteString.ByteString,
                                _ChannelUpdate'chanId :: !Data.Word.Word64,
                                _ChannelUpdate'timestamp :: !Data.Word.Word32,
                                _ChannelUpdate'messageFlags :: !Data.Word.Word32,
                                _ChannelUpdate'channelFlags :: !Data.Word.Word32,
                                _ChannelUpdate'timeLockDelta :: !Data.Word.Word32,
                                _ChannelUpdate'htlcMinimumMsat :: !Data.Word.Word64,
                                _ChannelUpdate'baseFee :: !Data.Word.Word32,
                                _ChannelUpdate'feeRate :: !Data.Word.Word32,
                                _ChannelUpdate'htlcMaximumMsat :: !Data.Word.Word64,
                                _ChannelUpdate'extraOpaqueData :: !Data.ByteString.ByteString,
                                _ChannelUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ChannelUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ChannelUpdate "signature" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'signature
           (\ x__ y__ -> x__ {_ChannelUpdate'signature = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "chainHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'chainHash
           (\ x__ y__ -> x__ {_ChannelUpdate'chainHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'chanId
           (\ x__ y__ -> x__ {_ChannelUpdate'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "timestamp" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'timestamp
           (\ x__ y__ -> x__ {_ChannelUpdate'timestamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "messageFlags" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'messageFlags
           (\ x__ y__ -> x__ {_ChannelUpdate'messageFlags = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "channelFlags" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'channelFlags
           (\ x__ y__ -> x__ {_ChannelUpdate'channelFlags = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "timeLockDelta" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'timeLockDelta
           (\ x__ y__ -> x__ {_ChannelUpdate'timeLockDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "htlcMinimumMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'htlcMinimumMsat
           (\ x__ y__ -> x__ {_ChannelUpdate'htlcMinimumMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "baseFee" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'baseFee
           (\ x__ y__ -> x__ {_ChannelUpdate'baseFee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "feeRate" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'feeRate
           (\ x__ y__ -> x__ {_ChannelUpdate'feeRate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "htlcMaximumMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'htlcMaximumMsat
           (\ x__ y__ -> x__ {_ChannelUpdate'htlcMaximumMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ChannelUpdate "extraOpaqueData" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ChannelUpdate'extraOpaqueData
           (\ x__ y__ -> x__ {_ChannelUpdate'extraOpaqueData = y__}))
        Prelude.id
instance Data.ProtoLens.Message ChannelUpdate where
  messageName _ = Data.Text.pack "lnrpc.ChannelUpdate"
  packedMessageDescriptor _
    = "\n\
      \\rChannelUpdate\DC2\FS\n\
      \\tsignature\CAN\SOH \SOH(\fR\tsignature\DC2\GS\n\
      \\n\
      \chain_hash\CAN\STX \SOH(\fR\tchainHash\DC2\ESC\n\
      \\achan_id\CAN\ETX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\FS\n\
      \\ttimestamp\CAN\EOT \SOH(\rR\ttimestamp\DC2#\n\
      \\rmessage_flags\CAN\n\
      \ \SOH(\rR\fmessageFlags\DC2#\n\
      \\rchannel_flags\CAN\ENQ \SOH(\rR\fchannelFlags\DC2&\n\
      \\SItime_lock_delta\CAN\ACK \SOH(\rR\rtimeLockDelta\DC2*\n\
      \\DC1htlc_minimum_msat\CAN\a \SOH(\EOTR\SIhtlcMinimumMsat\DC2\EM\n\
      \\bbase_fee\CAN\b \SOH(\rR\abaseFee\DC2\EM\n\
      \\bfee_rate\CAN\t \SOH(\rR\afeeRate\DC2*\n\
      \\DC1htlc_maximum_msat\CAN\v \SOH(\EOTR\SIhtlcMaximumMsat\DC2*\n\
      \\DC1extra_opaque_data\CAN\f \SOH(\fR\SIextraOpaqueData"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        signature__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "signature"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"signature")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        chainHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chain_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chainHash")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        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 ChannelUpdate
        timestamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timestamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timestamp")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        messageFlags__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "message_flags"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"messageFlags")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        channelFlags__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_flags"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"channelFlags")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        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 ChannelUpdate
        htlcMinimumMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlc_minimum_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"htlcMinimumMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        baseFee__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "base_fee"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"baseFee")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        feeRate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_rate"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeRate")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        htlcMaximumMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlc_maximum_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"htlcMaximumMsat")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
        extraOpaqueData__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "extra_opaque_data"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"extraOpaqueData")) ::
              Data.ProtoLens.FieldDescriptor ChannelUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, signature__field_descriptor),
           (Data.ProtoLens.Tag 2, chainHash__field_descriptor),
           (Data.ProtoLens.Tag 3, chanId__field_descriptor),
           (Data.ProtoLens.Tag 4, timestamp__field_descriptor),
           (Data.ProtoLens.Tag 10, messageFlags__field_descriptor),
           (Data.ProtoLens.Tag 5, channelFlags__field_descriptor),
           (Data.ProtoLens.Tag 6, timeLockDelta__field_descriptor),
           (Data.ProtoLens.Tag 7, htlcMinimumMsat__field_descriptor),
           (Data.ProtoLens.Tag 8, baseFee__field_descriptor),
           (Data.ProtoLens.Tag 9, feeRate__field_descriptor),
           (Data.ProtoLens.Tag 11, htlcMaximumMsat__field_descriptor),
           (Data.ProtoLens.Tag 12, extraOpaqueData__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ChannelUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ChannelUpdate'_unknownFields = y__})
  defMessage
    = ChannelUpdate'_constructor
        {_ChannelUpdate'signature = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'chainHash = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'chanId = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'timestamp = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'messageFlags = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'channelFlags = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'timeLockDelta = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'htlcMinimumMsat = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'baseFee = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'feeRate = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'htlcMaximumMsat = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'extraOpaqueData = Data.ProtoLens.fieldDefault,
         _ChannelUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ChannelUpdate -> Data.ProtoLens.Encoding.Bytes.Parser ChannelUpdate
        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))
                                       "signature"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"signature") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "chain_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chainHash") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"chanId") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "timestamp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timestamp") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "message_flags"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"messageFlags") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "channel_flags"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelFlags") y x)
                        48
                          -> 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)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "htlc_minimum_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"htlcMinimumMsat") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "base_fee"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"baseFee") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_rate"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeRate") y x)
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "htlc_maximum_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"htlcMaximumMsat") y x)
                        98
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "extra_opaque_data"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"extraOpaqueData") 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) "ChannelUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"signature") _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 @"chainHash") _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 @"chanId") _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 @"timestamp") _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 @"messageFlags") _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 @"channelFlags") _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 @"timeLockDelta") _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 @"htlcMinimumMsat") _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.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"baseFee") _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 @"feeRate") _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 @"htlcMaximumMsat")
                                                    _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.Monoid.<>)
                                              (let
                                                 _v
                                                   = Lens.Family2.view
                                                       (Data.ProtoLens.Field.field
                                                          @"extraOpaqueData")
                                                       _x
                                               in
                                                 if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                     Data.Monoid.mempty
                                                 else
                                                     (Data.Monoid.<>)
                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 98)
                                                       ((\ 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 ChannelUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ChannelUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ChannelUpdate'signature x__)
                (Control.DeepSeq.deepseq
                   (_ChannelUpdate'chainHash x__)
                   (Control.DeepSeq.deepseq
                      (_ChannelUpdate'chanId x__)
                      (Control.DeepSeq.deepseq
                         (_ChannelUpdate'timestamp x__)
                         (Control.DeepSeq.deepseq
                            (_ChannelUpdate'messageFlags x__)
                            (Control.DeepSeq.deepseq
                               (_ChannelUpdate'channelFlags x__)
                               (Control.DeepSeq.deepseq
                                  (_ChannelUpdate'timeLockDelta x__)
                                  (Control.DeepSeq.deepseq
                                     (_ChannelUpdate'htlcMinimumMsat x__)
                                     (Control.DeepSeq.deepseq
                                        (_ChannelUpdate'baseFee x__)
                                        (Control.DeepSeq.deepseq
                                           (_ChannelUpdate'feeRate x__)
                                           (Control.DeepSeq.deepseq
                                              (_ChannelUpdate'htlcMaximumMsat x__)
                                              (Control.DeepSeq.deepseq
                                                 (_ChannelUpdate'extraOpaqueData x__) ()))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channelPoint' @:: Lens' CloseChannelRequest ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'channelPoint' @:: Lens' CloseChannelRequest (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.force' @:: Lens' CloseChannelRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.targetConf' @:: Lens' CloseChannelRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.satPerByte' @:: Lens' CloseChannelRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.deliveryAddress' @:: Lens' CloseChannelRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.satPerVbyte' @:: Lens' CloseChannelRequest Data.Word.Word64@ -}
data CloseChannelRequest
  = CloseChannelRequest'_constructor {_CloseChannelRequest'channelPoint :: !(Prelude.Maybe ChannelPoint),
                                      _CloseChannelRequest'force :: !Prelude.Bool,
                                      _CloseChannelRequest'targetConf :: !Data.Int.Int32,
                                      _CloseChannelRequest'satPerByte :: !Data.Int.Int64,
                                      _CloseChannelRequest'deliveryAddress :: !Data.Text.Text,
                                      _CloseChannelRequest'satPerVbyte :: !Data.Word.Word64,
                                      _CloseChannelRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show CloseChannelRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField CloseChannelRequest "channelPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'channelPoint
           (\ x__ y__ -> x__ {_CloseChannelRequest'channelPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField CloseChannelRequest "maybe'channelPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'channelPoint
           (\ x__ y__ -> x__ {_CloseChannelRequest'channelPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseChannelRequest "force" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'force
           (\ x__ y__ -> x__ {_CloseChannelRequest'force = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseChannelRequest "targetConf" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'targetConf
           (\ x__ y__ -> x__ {_CloseChannelRequest'targetConf = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseChannelRequest "satPerByte" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'satPerByte
           (\ x__ y__ -> x__ {_CloseChannelRequest'satPerByte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseChannelRequest "deliveryAddress" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'deliveryAddress
           (\ x__ y__ -> x__ {_CloseChannelRequest'deliveryAddress = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseChannelRequest "satPerVbyte" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseChannelRequest'satPerVbyte
           (\ x__ y__ -> x__ {_CloseChannelRequest'satPerVbyte = y__}))
        Prelude.id
instance Data.ProtoLens.Message CloseChannelRequest where
  messageName _ = Data.Text.pack "lnrpc.CloseChannelRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3CloseChannelRequest\DC28\n\
      \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint\DC2\DC4\n\
      \\ENQforce\CAN\STX \SOH(\bR\ENQforce\DC2\US\n\
      \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
      \targetConf\DC2$\n\
      \\fsat_per_byte\CAN\EOT \SOH(\ETXR\n\
      \satPerByteB\STX\CAN\SOH\DC2)\n\
      \\DLEdelivery_address\CAN\ENQ \SOH(\tR\SIdeliveryAddress\DC2\"\n\
      \\rsat_per_vbyte\CAN\ACK \SOH(\EOTR\vsatPerVbyte"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelPoint__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_point"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channelPoint")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
        force__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "force"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"force")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
        targetConf__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "target_conf"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"targetConf")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
        satPerByte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_byte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerByte")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
        deliveryAddress__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "delivery_address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"deliveryAddress")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
        satPerVbyte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_vbyte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerVbyte")) ::
              Data.ProtoLens.FieldDescriptor CloseChannelRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelPoint__field_descriptor),
           (Data.ProtoLens.Tag 2, force__field_descriptor),
           (Data.ProtoLens.Tag 3, targetConf__field_descriptor),
           (Data.ProtoLens.Tag 4, satPerByte__field_descriptor),
           (Data.ProtoLens.Tag 5, deliveryAddress__field_descriptor),
           (Data.ProtoLens.Tag 6, satPerVbyte__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _CloseChannelRequest'_unknownFields
        (\ x__ y__ -> x__ {_CloseChannelRequest'_unknownFields = y__})
  defMessage
    = CloseChannelRequest'_constructor
        {_CloseChannelRequest'channelPoint = Prelude.Nothing,
         _CloseChannelRequest'force = Data.ProtoLens.fieldDefault,
         _CloseChannelRequest'targetConf = Data.ProtoLens.fieldDefault,
         _CloseChannelRequest'satPerByte = Data.ProtoLens.fieldDefault,
         _CloseChannelRequest'deliveryAddress = Data.ProtoLens.fieldDefault,
         _CloseChannelRequest'satPerVbyte = Data.ProtoLens.fieldDefault,
         _CloseChannelRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          CloseChannelRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser CloseChannelRequest
        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_point"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelPoint") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "force"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"force") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "target_conf"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"targetConf") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_per_byte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerByte") 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))
                                       "delivery_address"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"deliveryAddress") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "sat_per_vbyte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerVbyte") 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) "CloseChannelRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view
                    (Data.ProtoLens.Field.field @"maybe'channelPoint") _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 @"force") _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.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"targetConf") _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 @"satPerByte") _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 @"deliveryAddress") _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 @"satPerVbyte") _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 CloseChannelRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_CloseChannelRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_CloseChannelRequest'channelPoint x__)
                (Control.DeepSeq.deepseq
                   (_CloseChannelRequest'force x__)
                   (Control.DeepSeq.deepseq
                      (_CloseChannelRequest'targetConf x__)
                      (Control.DeepSeq.deepseq
                         (_CloseChannelRequest'satPerByte x__)
                         (Control.DeepSeq.deepseq
                            (_CloseChannelRequest'deliveryAddress x__)
                            (Control.DeepSeq.deepseq
                               (_CloseChannelRequest'satPerVbyte x__) ()))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.maybe'update' @:: Lens' CloseStatusUpdate (Prelude.Maybe CloseStatusUpdate'Update)@
         * 'Proto.LndGrpc_Fields.maybe'closePending' @:: Lens' CloseStatusUpdate (Prelude.Maybe PendingUpdate)@
         * 'Proto.LndGrpc_Fields.closePending' @:: Lens' CloseStatusUpdate PendingUpdate@
         * 'Proto.LndGrpc_Fields.maybe'chanClose' @:: Lens' CloseStatusUpdate (Prelude.Maybe ChannelCloseUpdate)@
         * 'Proto.LndGrpc_Fields.chanClose' @:: Lens' CloseStatusUpdate ChannelCloseUpdate@ -}
data CloseStatusUpdate
  = CloseStatusUpdate'_constructor {_CloseStatusUpdate'update :: !(Prelude.Maybe CloseStatusUpdate'Update),
                                    _CloseStatusUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show CloseStatusUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data CloseStatusUpdate'Update
  = CloseStatusUpdate'ClosePending !PendingUpdate |
    CloseStatusUpdate'ChanClose !ChannelCloseUpdate
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.Field.HasField CloseStatusUpdate "maybe'update" (Prelude.Maybe CloseStatusUpdate'Update) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseStatusUpdate'update
           (\ x__ y__ -> x__ {_CloseStatusUpdate'update = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField CloseStatusUpdate "maybe'closePending" (Prelude.Maybe PendingUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseStatusUpdate'update
           (\ x__ y__ -> x__ {_CloseStatusUpdate'update = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (CloseStatusUpdate'ClosePending x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap CloseStatusUpdate'ClosePending y__))
instance Data.ProtoLens.Field.HasField CloseStatusUpdate "closePending" PendingUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseStatusUpdate'update
           (\ x__ y__ -> x__ {_CloseStatusUpdate'update = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (CloseStatusUpdate'ClosePending x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap CloseStatusUpdate'ClosePending y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField CloseStatusUpdate "maybe'chanClose" (Prelude.Maybe ChannelCloseUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseStatusUpdate'update
           (\ x__ y__ -> x__ {_CloseStatusUpdate'update = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (CloseStatusUpdate'ChanClose x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap CloseStatusUpdate'ChanClose y__))
instance Data.ProtoLens.Field.HasField CloseStatusUpdate "chanClose" ChannelCloseUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _CloseStatusUpdate'update
           (\ x__ y__ -> x__ {_CloseStatusUpdate'update = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (CloseStatusUpdate'ChanClose x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap CloseStatusUpdate'ChanClose y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message CloseStatusUpdate where
  messageName _ = Data.Text.pack "lnrpc.CloseStatusUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC1CloseStatusUpdate\DC2;\n\
      \\rclose_pending\CAN\SOH \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\fclosePending\DC2:\n\
      \\n\
      \chan_close\CAN\ETX \SOH(\v2\EM.lnrpc.ChannelCloseUpdateH\NULR\tchanCloseB\b\n\
      \\ACKupdate"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        closePending__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "close_pending"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'closePending")) ::
              Data.ProtoLens.FieldDescriptor CloseStatusUpdate
        chanClose__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_close"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelCloseUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanClose")) ::
              Data.ProtoLens.FieldDescriptor CloseStatusUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, closePending__field_descriptor),
           (Data.ProtoLens.Tag 3, chanClose__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _CloseStatusUpdate'_unknownFields
        (\ x__ y__ -> x__ {_CloseStatusUpdate'_unknownFields = y__})
  defMessage
    = CloseStatusUpdate'_constructor
        {_CloseStatusUpdate'update = Prelude.Nothing,
         _CloseStatusUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          CloseStatusUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser CloseStatusUpdate
        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)
                                       "close_pending"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"closePending") 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)
                                       "chan_close"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanClose") 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) "CloseStatusUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'update") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just (CloseStatusUpdate'ClosePending 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 (CloseStatusUpdate'ChanClose 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 CloseStatusUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_CloseStatusUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq (_CloseStatusUpdate'update x__) ())
instance Control.DeepSeq.NFData CloseStatusUpdate'Update where
  rnf (CloseStatusUpdate'ClosePending x__) = Control.DeepSeq.rnf x__
  rnf (CloseStatusUpdate'ChanClose x__) = Control.DeepSeq.rnf x__
_CloseStatusUpdate'ClosePending ::
  Data.ProtoLens.Prism.Prism' CloseStatusUpdate'Update PendingUpdate
_CloseStatusUpdate'ClosePending
  = Data.ProtoLens.Prism.prism'
      CloseStatusUpdate'ClosePending
      (\ p__
         -> case p__ of
              (CloseStatusUpdate'ClosePending p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_CloseStatusUpdate'ChanClose ::
  Data.ProtoLens.Prism.Prism' CloseStatusUpdate'Update ChannelCloseUpdate
_CloseStatusUpdate'ChanClose
  = Data.ProtoLens.Prism.prism'
      CloseStatusUpdate'ChanClose
      (\ p__
         -> case p__ of
              (CloseStatusUpdate'ChanClose p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' ClosedChannelUpdate Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' ClosedChannelUpdate Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.closedHeight' @:: Lens' ClosedChannelUpdate Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ClosedChannelUpdate ChannelPoint@
         * 'Proto.LndGrpc_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)
instance Prelude.Show ClosedChannelUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.cooperative' @:: Lens' ClosedChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.localForce' @:: Lens' ClosedChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.remoteForce' @:: Lens' ClosedChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.breach' @:: Lens' ClosedChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.fundingCanceled' @:: Lens' ClosedChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.abandoned' @:: Lens' ClosedChannelsRequest Prelude.Bool@ -}
data ClosedChannelsRequest
  = ClosedChannelsRequest'_constructor {_ClosedChannelsRequest'cooperative :: !Prelude.Bool,
                                        _ClosedChannelsRequest'localForce :: !Prelude.Bool,
                                        _ClosedChannelsRequest'remoteForce :: !Prelude.Bool,
                                        _ClosedChannelsRequest'breach :: !Prelude.Bool,
                                        _ClosedChannelsRequest'fundingCanceled :: !Prelude.Bool,
                                        _ClosedChannelsRequest'abandoned :: !Prelude.Bool,
                                        _ClosedChannelsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ClosedChannelsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "cooperative" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'cooperative
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'cooperative = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "localForce" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'localForce
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'localForce = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "remoteForce" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'remoteForce
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'remoteForce = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "breach" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'breach
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'breach = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "fundingCanceled" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'fundingCanceled
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'fundingCanceled = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ClosedChannelsRequest "abandoned" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsRequest'abandoned
           (\ x__ y__ -> x__ {_ClosedChannelsRequest'abandoned = y__}))
        Prelude.id
instance Data.ProtoLens.Message ClosedChannelsRequest where
  messageName _ = Data.Text.pack "lnrpc.ClosedChannelsRequest"
  packedMessageDescriptor _
    = "\n\
      \\NAKClosedChannelsRequest\DC2 \n\
      \\vcooperative\CAN\SOH \SOH(\bR\vcooperative\DC2\US\n\
      \\vlocal_force\CAN\STX \SOH(\bR\n\
      \localForce\DC2!\n\
      \\fremote_force\CAN\ETX \SOH(\bR\vremoteForce\DC2\SYN\n\
      \\ACKbreach\CAN\EOT \SOH(\bR\ACKbreach\DC2)\n\
      \\DLEfunding_canceled\CAN\ENQ \SOH(\bR\SIfundingCanceled\DC2\FS\n\
      \\tabandoned\CAN\ACK \SOH(\bR\tabandoned"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        cooperative__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cooperative"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cooperative")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
        localForce__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_force"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localForce")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
        remoteForce__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_force"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteForce")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
        breach__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "breach"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"breach")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
        fundingCanceled__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_canceled"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fundingCanceled")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
        abandoned__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "abandoned"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"abandoned")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, cooperative__field_descriptor),
           (Data.ProtoLens.Tag 2, localForce__field_descriptor),
           (Data.ProtoLens.Tag 3, remoteForce__field_descriptor),
           (Data.ProtoLens.Tag 4, breach__field_descriptor),
           (Data.ProtoLens.Tag 5, fundingCanceled__field_descriptor),
           (Data.ProtoLens.Tag 6, abandoned__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ClosedChannelsRequest'_unknownFields
        (\ x__ y__ -> x__ {_ClosedChannelsRequest'_unknownFields = y__})
  defMessage
    = ClosedChannelsRequest'_constructor
        {_ClosedChannelsRequest'cooperative = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'localForce = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'remoteForce = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'breach = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'fundingCanceled = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'abandoned = Data.ProtoLens.fieldDefault,
         _ClosedChannelsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ClosedChannelsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ClosedChannelsRequest
        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)
                                       "cooperative"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cooperative") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_force"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"localForce") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_force"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"remoteForce") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "breach"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"breach") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "funding_canceled"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fundingCanceled") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "abandoned"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"abandoned") 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) "ClosedChannelsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"cooperative") _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 @"localForce") _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.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"remoteForce") _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 @"breach") _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.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"fundingCanceled") _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 @"abandoned") _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
                                        (\ b -> if b then 1 else 0)
                                        _v))
                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
instance Control.DeepSeq.NFData ClosedChannelsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ClosedChannelsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ClosedChannelsRequest'cooperative x__)
                (Control.DeepSeq.deepseq
                   (_ClosedChannelsRequest'localForce x__)
                   (Control.DeepSeq.deepseq
                      (_ClosedChannelsRequest'remoteForce x__)
                      (Control.DeepSeq.deepseq
                         (_ClosedChannelsRequest'breach x__)
                         (Control.DeepSeq.deepseq
                            (_ClosedChannelsRequest'fundingCanceled x__)
                            (Control.DeepSeq.deepseq
                               (_ClosedChannelsRequest'abandoned x__) ()))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channels' @:: Lens' ClosedChannelsResponse [ChannelCloseSummary]@
         * 'Proto.LndGrpc_Fields.vec'channels' @:: Lens' ClosedChannelsResponse (Data.Vector.Vector ChannelCloseSummary)@ -}
data ClosedChannelsResponse
  = ClosedChannelsResponse'_constructor {_ClosedChannelsResponse'channels :: !(Data.Vector.Vector ChannelCloseSummary),
                                         _ClosedChannelsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ClosedChannelsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ClosedChannelsResponse "channels" [ChannelCloseSummary] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsResponse'channels
           (\ x__ y__ -> x__ {_ClosedChannelsResponse'channels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ClosedChannelsResponse "vec'channels" (Data.Vector.Vector ChannelCloseSummary) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ClosedChannelsResponse'channels
           (\ x__ y__ -> x__ {_ClosedChannelsResponse'channels = y__}))
        Prelude.id
instance Data.ProtoLens.Message ClosedChannelsResponse where
  messageName _ = Data.Text.pack "lnrpc.ClosedChannelsResponse"
  packedMessageDescriptor _
    = "\n\
      \\SYNClosedChannelsResponse\DC26\n\
      \\bchannels\CAN\SOH \ETX(\v2\SUB.lnrpc.ChannelCloseSummaryR\bchannels"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelCloseSummary)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"channels")) ::
              Data.ProtoLens.FieldDescriptor ClosedChannelsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channels__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ClosedChannelsResponse'_unknownFields
        (\ x__ y__ -> x__ {_ClosedChannelsResponse'_unknownFields = y__})
  defMessage
    = ClosedChannelsResponse'_constructor
        {_ClosedChannelsResponse'channels = Data.Vector.Generic.empty,
         _ClosedChannelsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ClosedChannelsResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelCloseSummary
             -> Data.ProtoLens.Encoding.Bytes.Parser ClosedChannelsResponse
        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)
                                        "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)
          "ClosedChannelsResponse"
  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'channels") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ClosedChannelsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ClosedChannelsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ClosedChannelsResponse'channels x__) ())
newtype CommitmentType'UnrecognizedValue
  = CommitmentType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data CommitmentType
  = LEGACY |
    STATIC_REMOTE_KEY |
    ANCHORS |
    UNKNOWN_COMMITMENT_TYPE |
    CommitmentType'Unrecognized !CommitmentType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum CommitmentType where
  maybeToEnum 0 = Prelude.Just LEGACY
  maybeToEnum 1 = Prelude.Just STATIC_REMOTE_KEY
  maybeToEnum 2 = Prelude.Just ANCHORS
  maybeToEnum 999 = Prelude.Just UNKNOWN_COMMITMENT_TYPE
  maybeToEnum k
    = Prelude.Just
        (CommitmentType'Unrecognized
           (CommitmentType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum LEGACY = "LEGACY"
  showEnum STATIC_REMOTE_KEY = "STATIC_REMOTE_KEY"
  showEnum ANCHORS = "ANCHORS"
  showEnum UNKNOWN_COMMITMENT_TYPE = "UNKNOWN_COMMITMENT_TYPE"
  showEnum
    (CommitmentType'Unrecognized (CommitmentType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "LEGACY" = Prelude.Just LEGACY
    | (Prelude.==) k "STATIC_REMOTE_KEY"
    = Prelude.Just STATIC_REMOTE_KEY
    | (Prelude.==) k "ANCHORS" = Prelude.Just ANCHORS
    | (Prelude.==) k "UNKNOWN_COMMITMENT_TYPE"
    = Prelude.Just UNKNOWN_COMMITMENT_TYPE
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded CommitmentType where
  minBound = LEGACY
  maxBound = UNKNOWN_COMMITMENT_TYPE
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 LEGACY = 0
  fromEnum STATIC_REMOTE_KEY = 1
  fromEnum ANCHORS = 2
  fromEnum UNKNOWN_COMMITMENT_TYPE = 999
  fromEnum
    (CommitmentType'Unrecognized (CommitmentType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ UNKNOWN_COMMITMENT_TYPE
    = Prelude.error
        "CommitmentType.succ: bad argument UNKNOWN_COMMITMENT_TYPE. This value would be out of bounds."
  succ LEGACY = STATIC_REMOTE_KEY
  succ STATIC_REMOTE_KEY = ANCHORS
  succ ANCHORS = UNKNOWN_COMMITMENT_TYPE
  succ (CommitmentType'Unrecognized _)
    = Prelude.error
        "CommitmentType.succ: bad argument: unrecognized value"
  pred LEGACY
    = Prelude.error
        "CommitmentType.pred: bad argument LEGACY. This value would be out of bounds."
  pred STATIC_REMOTE_KEY = LEGACY
  pred ANCHORS = STATIC_REMOTE_KEY
  pred UNKNOWN_COMMITMENT_TYPE = 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 = LEGACY
instance Control.DeepSeq.NFData CommitmentType where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.blockSha' @:: Lens' ConfirmationUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.blockHeight' @:: Lens' ConfirmationUpdate Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.numConfsLeft' @:: Lens' ConfirmationUpdate Data.Word.Word32@ -}
data ConfirmationUpdate
  = ConfirmationUpdate'_constructor {_ConfirmationUpdate'blockSha :: !Data.ByteString.ByteString,
                                     _ConfirmationUpdate'blockHeight :: !Data.Int.Int32,
                                     _ConfirmationUpdate'numConfsLeft :: !Data.Word.Word32,
                                     _ConfirmationUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ConfirmationUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ConfirmationUpdate "blockSha" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConfirmationUpdate'blockSha
           (\ x__ y__ -> x__ {_ConfirmationUpdate'blockSha = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ConfirmationUpdate "blockHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConfirmationUpdate'blockHeight
           (\ x__ y__ -> x__ {_ConfirmationUpdate'blockHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ConfirmationUpdate "numConfsLeft" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConfirmationUpdate'numConfsLeft
           (\ x__ y__ -> x__ {_ConfirmationUpdate'numConfsLeft = y__}))
        Prelude.id
instance Data.ProtoLens.Message ConfirmationUpdate where
  messageName _ = Data.Text.pack "lnrpc.ConfirmationUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DC2ConfirmationUpdate\DC2\ESC\n\
      \\tblock_sha\CAN\SOH \SOH(\fR\bblockSha\DC2!\n\
      \\fblock_height\CAN\STX \SOH(\ENQR\vblockHeight\DC2$\n\
      \\SOnum_confs_left\CAN\ETX \SOH(\rR\fnumConfsLeft"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        blockSha__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_sha"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockSha")) ::
              Data.ProtoLens.FieldDescriptor ConfirmationUpdate
        blockHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockHeight")) ::
              Data.ProtoLens.FieldDescriptor ConfirmationUpdate
        numConfsLeft__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_confs_left"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numConfsLeft")) ::
              Data.ProtoLens.FieldDescriptor ConfirmationUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, blockSha__field_descriptor),
           (Data.ProtoLens.Tag 2, blockHeight__field_descriptor),
           (Data.ProtoLens.Tag 3, numConfsLeft__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ConfirmationUpdate'_unknownFields
        (\ x__ y__ -> x__ {_ConfirmationUpdate'_unknownFields = y__})
  defMessage
    = ConfirmationUpdate'_constructor
        {_ConfirmationUpdate'blockSha = Data.ProtoLens.fieldDefault,
         _ConfirmationUpdate'blockHeight = Data.ProtoLens.fieldDefault,
         _ConfirmationUpdate'numConfsLeft = Data.ProtoLens.fieldDefault,
         _ConfirmationUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ConfirmationUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser ConfirmationUpdate
        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))
                                       "block_sha"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockSha") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "block_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockHeight") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_confs_left"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numConfsLeft") 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) "ConfirmationUpdate"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"blockSha") _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 @"blockHeight") _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 @"numConfsLeft") _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 ConfirmationUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ConfirmationUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ConfirmationUpdate'blockSha x__)
                (Control.DeepSeq.deepseq
                   (_ConfirmationUpdate'blockHeight x__)
                   (Control.DeepSeq.deepseq
                      (_ConfirmationUpdate'numConfsLeft x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.addr' @:: Lens' ConnectPeerRequest LightningAddress@
         * 'Proto.LndGrpc_Fields.maybe'addr' @:: Lens' ConnectPeerRequest (Prelude.Maybe LightningAddress)@
         * 'Proto.LndGrpc_Fields.perm' @:: Lens' ConnectPeerRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.timeout' @:: Lens' ConnectPeerRequest Data.Word.Word64@ -}
data ConnectPeerRequest
  = ConnectPeerRequest'_constructor {_ConnectPeerRequest'addr :: !(Prelude.Maybe LightningAddress),
                                     _ConnectPeerRequest'perm :: !Prelude.Bool,
                                     _ConnectPeerRequest'timeout :: !Data.Word.Word64,
                                     _ConnectPeerRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ConnectPeerRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ConnectPeerRequest "addr" LightningAddress where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConnectPeerRequest'addr
           (\ x__ y__ -> x__ {_ConnectPeerRequest'addr = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ConnectPeerRequest "maybe'addr" (Prelude.Maybe LightningAddress) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConnectPeerRequest'addr
           (\ x__ y__ -> x__ {_ConnectPeerRequest'addr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ConnectPeerRequest "perm" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConnectPeerRequest'perm
           (\ x__ y__ -> x__ {_ConnectPeerRequest'perm = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ConnectPeerRequest "timeout" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ConnectPeerRequest'timeout
           (\ x__ y__ -> x__ {_ConnectPeerRequest'timeout = y__}))
        Prelude.id
instance Data.ProtoLens.Message ConnectPeerRequest where
  messageName _ = Data.Text.pack "lnrpc.ConnectPeerRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2ConnectPeerRequest\DC2+\n\
      \\EOTaddr\CAN\SOH \SOH(\v2\ETB.lnrpc.LightningAddressR\EOTaddr\DC2\DC2\n\
      \\EOTperm\CAN\STX \SOH(\bR\EOTperm\DC2\CAN\n\
      \\atimeout\CAN\ETX \SOH(\EOTR\atimeout"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "addr"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor LightningAddress)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'addr")) ::
              Data.ProtoLens.FieldDescriptor ConnectPeerRequest
        perm__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "perm"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"perm")) ::
              Data.ProtoLens.FieldDescriptor ConnectPeerRequest
        timeout__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timeout"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"timeout")) ::
              Data.ProtoLens.FieldDescriptor ConnectPeerRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addr__field_descriptor),
           (Data.ProtoLens.Tag 2, perm__field_descriptor),
           (Data.ProtoLens.Tag 3, timeout__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ConnectPeerRequest'_unknownFields
        (\ x__ y__ -> x__ {_ConnectPeerRequest'_unknownFields = y__})
  defMessage
    = ConnectPeerRequest'_constructor
        {_ConnectPeerRequest'addr = Prelude.Nothing,
         _ConnectPeerRequest'perm = Data.ProtoLens.fieldDefault,
         _ConnectPeerRequest'timeout = Data.ProtoLens.fieldDefault,
         _ConnectPeerRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ConnectPeerRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ConnectPeerRequest
        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)
                                       "addr"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"addr") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "perm"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"perm") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "timeout"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"timeout") 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) "ConnectPeerRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'addr") _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 @"perm") _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.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"timeout") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData ConnectPeerRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ConnectPeerRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ConnectPeerRequest'addr x__)
                (Control.DeepSeq.deepseq
                   (_ConnectPeerRequest'perm x__)
                   (Control.DeepSeq.deepseq (_ConnectPeerRequest'timeout x__) ())))
{- | Fields :
      -}
data ConnectPeerResponse
  = ConnectPeerResponse'_constructor {_ConnectPeerResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ConnectPeerResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message ConnectPeerResponse where
  messageName _ = Data.Text.pack "lnrpc.ConnectPeerResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3ConnectPeerResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ConnectPeerResponse'_unknownFields
        (\ x__ y__ -> x__ {_ConnectPeerResponse'_unknownFields = y__})
  defMessage
    = ConnectPeerResponse'_constructor
        {_ConnectPeerResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ConnectPeerResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser ConnectPeerResponse
        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) "ConnectPeerResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ConnectPeerResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ConnectPeerResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.show' @:: Lens' DebugLevelRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.levelSpec' @:: Lens' DebugLevelRequest Data.Text.Text@ -}
data DebugLevelRequest
  = DebugLevelRequest'_constructor {_DebugLevelRequest'show :: !Prelude.Bool,
                                    _DebugLevelRequest'levelSpec :: !Data.Text.Text,
                                    _DebugLevelRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DebugLevelRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DebugLevelRequest "show" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DebugLevelRequest'show
           (\ x__ y__ -> x__ {_DebugLevelRequest'show = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField DebugLevelRequest "levelSpec" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DebugLevelRequest'levelSpec
           (\ x__ y__ -> x__ {_DebugLevelRequest'levelSpec = y__}))
        Prelude.id
instance Data.ProtoLens.Message DebugLevelRequest where
  messageName _ = Data.Text.pack "lnrpc.DebugLevelRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC1DebugLevelRequest\DC2\DC2\n\
      \\EOTshow\CAN\SOH \SOH(\bR\EOTshow\DC2\GS\n\
      \\n\
      \level_spec\CAN\STX \SOH(\tR\tlevelSpec"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        show__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "show"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"show")) ::
              Data.ProtoLens.FieldDescriptor DebugLevelRequest
        levelSpec__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "level_spec"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"levelSpec")) ::
              Data.ProtoLens.FieldDescriptor DebugLevelRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, show__field_descriptor),
           (Data.ProtoLens.Tag 2, levelSpec__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DebugLevelRequest'_unknownFields
        (\ x__ y__ -> x__ {_DebugLevelRequest'_unknownFields = y__})
  defMessage
    = DebugLevelRequest'_constructor
        {_DebugLevelRequest'show = Data.ProtoLens.fieldDefault,
         _DebugLevelRequest'levelSpec = Data.ProtoLens.fieldDefault,
         _DebugLevelRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DebugLevelRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser DebugLevelRequest
        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)
                                       "show"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"show") 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))
                                       "level_spec"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"levelSpec") 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) "DebugLevelRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"show") _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 @"levelSpec") _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 DebugLevelRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DebugLevelRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_DebugLevelRequest'show x__)
                (Control.DeepSeq.deepseq (_DebugLevelRequest'levelSpec x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.subSystems' @:: Lens' DebugLevelResponse Data.Text.Text@ -}
data DebugLevelResponse
  = DebugLevelResponse'_constructor {_DebugLevelResponse'subSystems :: !Data.Text.Text,
                                     _DebugLevelResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DebugLevelResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DebugLevelResponse "subSystems" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DebugLevelResponse'subSystems
           (\ x__ y__ -> x__ {_DebugLevelResponse'subSystems = y__}))
        Prelude.id
instance Data.ProtoLens.Message DebugLevelResponse where
  messageName _ = Data.Text.pack "lnrpc.DebugLevelResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC2DebugLevelResponse\DC2\US\n\
      \\vsub_systems\CAN\SOH \SOH(\tR\n\
      \subSystems"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        subSystems__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sub_systems"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"subSystems")) ::
              Data.ProtoLens.FieldDescriptor DebugLevelResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, subSystems__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DebugLevelResponse'_unknownFields
        (\ x__ y__ -> x__ {_DebugLevelResponse'_unknownFields = y__})
  defMessage
    = DebugLevelResponse'_constructor
        {_DebugLevelResponse'subSystems = Data.ProtoLens.fieldDefault,
         _DebugLevelResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DebugLevelResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser DebugLevelResponse
        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))
                                       "sub_systems"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"subSystems") 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) "DebugLevelResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"subSystems") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData DebugLevelResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DebugLevelResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_DebugLevelResponse'subSystems x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.failedPaymentsOnly' @:: Lens' DeleteAllPaymentsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.failedHtlcsOnly' @:: Lens' DeleteAllPaymentsRequest Prelude.Bool@ -}
data DeleteAllPaymentsRequest
  = DeleteAllPaymentsRequest'_constructor {_DeleteAllPaymentsRequest'failedPaymentsOnly :: !Prelude.Bool,
                                           _DeleteAllPaymentsRequest'failedHtlcsOnly :: !Prelude.Bool,
                                           _DeleteAllPaymentsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DeleteAllPaymentsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DeleteAllPaymentsRequest "failedPaymentsOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DeleteAllPaymentsRequest'failedPaymentsOnly
           (\ x__ y__
              -> x__ {_DeleteAllPaymentsRequest'failedPaymentsOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField DeleteAllPaymentsRequest "failedHtlcsOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DeleteAllPaymentsRequest'failedHtlcsOnly
           (\ x__ y__
              -> x__ {_DeleteAllPaymentsRequest'failedHtlcsOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Message DeleteAllPaymentsRequest where
  messageName _ = Data.Text.pack "lnrpc.DeleteAllPaymentsRequest"
  packedMessageDescriptor _
    = "\n\
      \\CANDeleteAllPaymentsRequest\DC20\n\
      \\DC4failed_payments_only\CAN\SOH \SOH(\bR\DC2failedPaymentsOnly\DC2*\n\
      \\DC1failed_htlcs_only\CAN\STX \SOH(\bR\SIfailedHtlcsOnly"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        failedPaymentsOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "failed_payments_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"failedPaymentsOnly")) ::
              Data.ProtoLens.FieldDescriptor DeleteAllPaymentsRequest
        failedHtlcsOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "failed_htlcs_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"failedHtlcsOnly")) ::
              Data.ProtoLens.FieldDescriptor DeleteAllPaymentsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, failedPaymentsOnly__field_descriptor),
           (Data.ProtoLens.Tag 2, failedHtlcsOnly__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DeleteAllPaymentsRequest'_unknownFields
        (\ x__ y__ -> x__ {_DeleteAllPaymentsRequest'_unknownFields = y__})
  defMessage
    = DeleteAllPaymentsRequest'_constructor
        {_DeleteAllPaymentsRequest'failedPaymentsOnly = Data.ProtoLens.fieldDefault,
         _DeleteAllPaymentsRequest'failedHtlcsOnly = Data.ProtoLens.fieldDefault,
         _DeleteAllPaymentsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DeleteAllPaymentsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser DeleteAllPaymentsRequest
        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)
                                       "failed_payments_only"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"failedPaymentsOnly") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "failed_htlcs_only"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"failedHtlcsOnly") 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) "DeleteAllPaymentsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"failedPaymentsOnly") _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 @"failedHtlcsOnly") _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 DeleteAllPaymentsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DeleteAllPaymentsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_DeleteAllPaymentsRequest'failedPaymentsOnly x__)
                (Control.DeepSeq.deepseq
                   (_DeleteAllPaymentsRequest'failedHtlcsOnly x__) ()))
{- | Fields :
      -}
data DeleteAllPaymentsResponse
  = DeleteAllPaymentsResponse'_constructor {_DeleteAllPaymentsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DeleteAllPaymentsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message DeleteAllPaymentsResponse where
  messageName _ = Data.Text.pack "lnrpc.DeleteAllPaymentsResponse"
  packedMessageDescriptor _
    = "\n\
      \\EMDeleteAllPaymentsResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DeleteAllPaymentsResponse'_unknownFields
        (\ x__ y__
           -> x__ {_DeleteAllPaymentsResponse'_unknownFields = y__})
  defMessage
    = DeleteAllPaymentsResponse'_constructor
        {_DeleteAllPaymentsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DeleteAllPaymentsResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser DeleteAllPaymentsResponse
        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) "DeleteAllPaymentsResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData DeleteAllPaymentsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DeleteAllPaymentsResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rootKeyId' @:: Lens' DeleteMacaroonIDRequest Data.Word.Word64@ -}
data DeleteMacaroonIDRequest
  = DeleteMacaroonIDRequest'_constructor {_DeleteMacaroonIDRequest'rootKeyId :: !Data.Word.Word64,
                                          _DeleteMacaroonIDRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DeleteMacaroonIDRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DeleteMacaroonIDRequest "rootKeyId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DeleteMacaroonIDRequest'rootKeyId
           (\ x__ y__ -> x__ {_DeleteMacaroonIDRequest'rootKeyId = y__}))
        Prelude.id
instance Data.ProtoLens.Message DeleteMacaroonIDRequest where
  messageName _ = Data.Text.pack "lnrpc.DeleteMacaroonIDRequest"
  packedMessageDescriptor _
    = "\n\
      \\ETBDeleteMacaroonIDRequest\DC2\RS\n\
      \\vroot_key_id\CAN\SOH \SOH(\EOTR\trootKeyId"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rootKeyId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "root_key_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rootKeyId")) ::
              Data.ProtoLens.FieldDescriptor DeleteMacaroonIDRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rootKeyId__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DeleteMacaroonIDRequest'_unknownFields
        (\ x__ y__ -> x__ {_DeleteMacaroonIDRequest'_unknownFields = y__})
  defMessage
    = DeleteMacaroonIDRequest'_constructor
        {_DeleteMacaroonIDRequest'rootKeyId = Data.ProtoLens.fieldDefault,
         _DeleteMacaroonIDRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DeleteMacaroonIDRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser DeleteMacaroonIDRequest
        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 "root_key_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rootKeyId") 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) "DeleteMacaroonIDRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"rootKeyId") _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 DeleteMacaroonIDRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DeleteMacaroonIDRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_DeleteMacaroonIDRequest'rootKeyId x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.deleted' @:: Lens' DeleteMacaroonIDResponse Prelude.Bool@ -}
data DeleteMacaroonIDResponse
  = DeleteMacaroonIDResponse'_constructor {_DeleteMacaroonIDResponse'deleted :: !Prelude.Bool,
                                           _DeleteMacaroonIDResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DeleteMacaroonIDResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DeleteMacaroonIDResponse "deleted" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DeleteMacaroonIDResponse'deleted
           (\ x__ y__ -> x__ {_DeleteMacaroonIDResponse'deleted = y__}))
        Prelude.id
instance Data.ProtoLens.Message DeleteMacaroonIDResponse where
  messageName _ = Data.Text.pack "lnrpc.DeleteMacaroonIDResponse"
  packedMessageDescriptor _
    = "\n\
      \\CANDeleteMacaroonIDResponse\DC2\CAN\n\
      \\adeleted\CAN\SOH \SOH(\bR\adeleted"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        deleted__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "deleted"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"deleted")) ::
              Data.ProtoLens.FieldDescriptor DeleteMacaroonIDResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, deleted__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DeleteMacaroonIDResponse'_unknownFields
        (\ x__ y__ -> x__ {_DeleteMacaroonIDResponse'_unknownFields = y__})
  defMessage
    = DeleteMacaroonIDResponse'_constructor
        {_DeleteMacaroonIDResponse'deleted = Data.ProtoLens.fieldDefault,
         _DeleteMacaroonIDResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DeleteMacaroonIDResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser DeleteMacaroonIDResponse
        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)
                                       "deleted"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"deleted") 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) "DeleteMacaroonIDResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"deleted") _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 DeleteMacaroonIDResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DeleteMacaroonIDResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_DeleteMacaroonIDResponse'deleted x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pubKey' @:: Lens' DisconnectPeerRequest Data.Text.Text@ -}
data DisconnectPeerRequest
  = DisconnectPeerRequest'_constructor {_DisconnectPeerRequest'pubKey :: !Data.Text.Text,
                                        _DisconnectPeerRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DisconnectPeerRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField DisconnectPeerRequest "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _DisconnectPeerRequest'pubKey
           (\ x__ y__ -> x__ {_DisconnectPeerRequest'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Message DisconnectPeerRequest where
  messageName _ = Data.Text.pack "lnrpc.DisconnectPeerRequest"
  packedMessageDescriptor _
    = "\n\
      \\NAKDisconnectPeerRequest\DC2\ETB\n\
      \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey"
  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 DisconnectPeerRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubKey__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DisconnectPeerRequest'_unknownFields
        (\ x__ y__ -> x__ {_DisconnectPeerRequest'_unknownFields = y__})
  defMessage
    = DisconnectPeerRequest'_constructor
        {_DisconnectPeerRequest'pubKey = Data.ProtoLens.fieldDefault,
         _DisconnectPeerRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DisconnectPeerRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser DisconnectPeerRequest
        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)
                        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) "DisconnectPeerRequest"
  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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData DisconnectPeerRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DisconnectPeerRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_DisconnectPeerRequest'pubKey x__) ())
{- | Fields :
      -}
data DisconnectPeerResponse
  = DisconnectPeerResponse'_constructor {_DisconnectPeerResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show DisconnectPeerResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message DisconnectPeerResponse where
  messageName _ = Data.Text.pack "lnrpc.DisconnectPeerResponse"
  packedMessageDescriptor _
    = "\n\
      \\SYNDisconnectPeerResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _DisconnectPeerResponse'_unknownFields
        (\ x__ y__ -> x__ {_DisconnectPeerResponse'_unknownFields = y__})
  defMessage
    = DisconnectPeerResponse'_constructor
        {_DisconnectPeerResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          DisconnectPeerResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser DisconnectPeerResponse
        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) "DisconnectPeerResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData DisconnectPeerResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_DisconnectPeerResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channelId' @:: Lens' EdgeLocator Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show EdgeLocator where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.addrToAmount' @:: Lens' EstimateFeeRequest (Data.Map.Map Data.Text.Text Data.Int.Int64)@
         * 'Proto.LndGrpc_Fields.targetConf' @:: Lens' EstimateFeeRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.minConfs' @:: Lens' EstimateFeeRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.spendUnconfirmed' @:: Lens' EstimateFeeRequest Prelude.Bool@ -}
data EstimateFeeRequest
  = EstimateFeeRequest'_constructor {_EstimateFeeRequest'addrToAmount :: !(Data.Map.Map Data.Text.Text Data.Int.Int64),
                                     _EstimateFeeRequest'targetConf :: !Data.Int.Int32,
                                     _EstimateFeeRequest'minConfs :: !Data.Int.Int32,
                                     _EstimateFeeRequest'spendUnconfirmed :: !Prelude.Bool,
                                     _EstimateFeeRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show EstimateFeeRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField EstimateFeeRequest "addrToAmount" (Data.Map.Map Data.Text.Text Data.Int.Int64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'addrToAmount
           (\ x__ y__ -> x__ {_EstimateFeeRequest'addrToAmount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeRequest "targetConf" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'targetConf
           (\ x__ y__ -> x__ {_EstimateFeeRequest'targetConf = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeRequest "minConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'minConfs
           (\ x__ y__ -> x__ {_EstimateFeeRequest'minConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeRequest "spendUnconfirmed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'spendUnconfirmed
           (\ x__ y__ -> x__ {_EstimateFeeRequest'spendUnconfirmed = y__}))
        Prelude.id
instance Data.ProtoLens.Message EstimateFeeRequest where
  messageName _ = Data.Text.pack "lnrpc.EstimateFeeRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2EstimateFeeRequest\DC2O\n\
      \\fAddrToAmount\CAN\SOH \ETX(\v2+.lnrpc.EstimateFeeRequest.AddrToAmountEntryR\fAddrToAmount\DC2\US\n\
      \\vtarget_conf\CAN\STX \SOH(\ENQR\n\
      \targetConf\DC2\ESC\n\
      \\tmin_confs\CAN\ETX \SOH(\ENQR\bminConfs\DC2+\n\
      \\DC1spend_unconfirmed\CAN\EOT \SOH(\bR\DLEspendUnconfirmed\SUB?\n\
      \\DC1AddrToAmountEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addrToAmount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "AddrToAmount"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor EstimateFeeRequest'AddrToAmountEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"addrToAmount")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeRequest
        targetConf__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "target_conf"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"targetConf")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeRequest
        minConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minConfs")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeRequest
        spendUnconfirmed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "spend_unconfirmed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"spendUnconfirmed")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addrToAmount__field_descriptor),
           (Data.ProtoLens.Tag 2, targetConf__field_descriptor),
           (Data.ProtoLens.Tag 3, minConfs__field_descriptor),
           (Data.ProtoLens.Tag 4, spendUnconfirmed__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _EstimateFeeRequest'_unknownFields
        (\ x__ y__ -> x__ {_EstimateFeeRequest'_unknownFields = y__})
  defMessage
    = EstimateFeeRequest'_constructor
        {_EstimateFeeRequest'addrToAmount = Data.Map.empty,
         _EstimateFeeRequest'targetConf = Data.ProtoLens.fieldDefault,
         _EstimateFeeRequest'minConfs = Data.ProtoLens.fieldDefault,
         _EstimateFeeRequest'spendUnconfirmed = Data.ProtoLens.fieldDefault,
         _EstimateFeeRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          EstimateFeeRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser EstimateFeeRequest
        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 :: EstimateFeeRequest'AddrToAmountEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                      (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                          Data.ProtoLens.Encoding.Bytes.isolate
                                                                                            (Prelude.fromIntegral
                                                                                               len)
                                                                                            Data.ProtoLens.parseMessage)
                                                                                      "AddrToAmount"
                                (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 @"addrToAmount")
                                        (\ !t -> Data.Map.insert key value t)
                                        x))
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "target_conf"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"targetConf") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minConfs") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "spend_unconfirmed"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"spendUnconfirmed") 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) "EstimateFeeRequest"
  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 ::
                                       EstimateFeeRequest'AddrToAmountEntry)))))
                   (Data.Map.toList
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"addrToAmount") _x))))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"targetConf") _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 @"minConfs") _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 @"spendUnconfirmed") _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 EstimateFeeRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_EstimateFeeRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_EstimateFeeRequest'addrToAmount x__)
                (Control.DeepSeq.deepseq
                   (_EstimateFeeRequest'targetConf x__)
                   (Control.DeepSeq.deepseq
                      (_EstimateFeeRequest'minConfs x__)
                      (Control.DeepSeq.deepseq
                         (_EstimateFeeRequest'spendUnconfirmed x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' EstimateFeeRequest'AddrToAmountEntry Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' EstimateFeeRequest'AddrToAmountEntry Data.Int.Int64@ -}
data EstimateFeeRequest'AddrToAmountEntry
  = EstimateFeeRequest'AddrToAmountEntry'_constructor {_EstimateFeeRequest'AddrToAmountEntry'key :: !Data.Text.Text,
                                                       _EstimateFeeRequest'AddrToAmountEntry'value :: !Data.Int.Int64,
                                                       _EstimateFeeRequest'AddrToAmountEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show EstimateFeeRequest'AddrToAmountEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField EstimateFeeRequest'AddrToAmountEntry "key" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'AddrToAmountEntry'key
           (\ x__ y__
              -> x__ {_EstimateFeeRequest'AddrToAmountEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeRequest'AddrToAmountEntry "value" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeRequest'AddrToAmountEntry'value
           (\ x__ y__
              -> x__ {_EstimateFeeRequest'AddrToAmountEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message EstimateFeeRequest'AddrToAmountEntry where
  messageName _
    = Data.Text.pack "lnrpc.EstimateFeeRequest.AddrToAmountEntry"
  packedMessageDescriptor _
    = "\n\
      \\DC1AddrToAmountEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\ETXR\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 EstimateFeeRequest'AddrToAmountEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeRequest'AddrToAmountEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _EstimateFeeRequest'AddrToAmountEntry'_unknownFields
        (\ x__ y__
           -> x__
                {_EstimateFeeRequest'AddrToAmountEntry'_unknownFields = y__})
  defMessage
    = EstimateFeeRequest'AddrToAmountEntry'_constructor
        {_EstimateFeeRequest'AddrToAmountEntry'key = Data.ProtoLens.fieldDefault,
         _EstimateFeeRequest'AddrToAmountEntry'value = Data.ProtoLens.fieldDefault,
         _EstimateFeeRequest'AddrToAmountEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          EstimateFeeRequest'AddrToAmountEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser EstimateFeeRequest'AddrToAmountEntry
        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)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "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) "AddrToAmountEntry"
  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.<>)
                (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 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 EstimateFeeRequest'AddrToAmountEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_EstimateFeeRequest'AddrToAmountEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_EstimateFeeRequest'AddrToAmountEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_EstimateFeeRequest'AddrToAmountEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.feeSat' @:: Lens' EstimateFeeResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feerateSatPerByte' @:: Lens' EstimateFeeResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.satPerVbyte' @:: Lens' EstimateFeeResponse Data.Word.Word64@ -}
data EstimateFeeResponse
  = EstimateFeeResponse'_constructor {_EstimateFeeResponse'feeSat :: !Data.Int.Int64,
                                      _EstimateFeeResponse'feerateSatPerByte :: !Data.Int.Int64,
                                      _EstimateFeeResponse'satPerVbyte :: !Data.Word.Word64,
                                      _EstimateFeeResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show EstimateFeeResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField EstimateFeeResponse "feeSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeResponse'feeSat
           (\ x__ y__ -> x__ {_EstimateFeeResponse'feeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeResponse "feerateSatPerByte" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeResponse'feerateSatPerByte
           (\ x__ y__ -> x__ {_EstimateFeeResponse'feerateSatPerByte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField EstimateFeeResponse "satPerVbyte" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _EstimateFeeResponse'satPerVbyte
           (\ x__ y__ -> x__ {_EstimateFeeResponse'satPerVbyte = y__}))
        Prelude.id
instance Data.ProtoLens.Message EstimateFeeResponse where
  messageName _ = Data.Text.pack "lnrpc.EstimateFeeResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3EstimateFeeResponse\DC2\ETB\n\
      \\afee_sat\CAN\SOH \SOH(\ETXR\ACKfeeSat\DC23\n\
      \\DC4feerate_sat_per_byte\CAN\STX \SOH(\ETXR\DC1feerateSatPerByteB\STX\CAN\SOH\DC2\"\n\
      \\rsat_per_vbyte\CAN\ETX \SOH(\EOTR\vsatPerVbyte"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        feeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeSat")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeResponse
        feerateSatPerByte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "feerate_sat_per_byte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"feerateSatPerByte")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeResponse
        satPerVbyte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_vbyte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerVbyte")) ::
              Data.ProtoLens.FieldDescriptor EstimateFeeResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, feeSat__field_descriptor),
           (Data.ProtoLens.Tag 2, feerateSatPerByte__field_descriptor),
           (Data.ProtoLens.Tag 3, satPerVbyte__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _EstimateFeeResponse'_unknownFields
        (\ x__ y__ -> x__ {_EstimateFeeResponse'_unknownFields = y__})
  defMessage
    = EstimateFeeResponse'_constructor
        {_EstimateFeeResponse'feeSat = Data.ProtoLens.fieldDefault,
         _EstimateFeeResponse'feerateSatPerByte = Data.ProtoLens.fieldDefault,
         _EstimateFeeResponse'satPerVbyte = Data.ProtoLens.fieldDefault,
         _EstimateFeeResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          EstimateFeeResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser EstimateFeeResponse
        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)
                                       "fee_sat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeSat") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "feerate_sat_per_byte"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"feerateSatPerByte") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "sat_per_vbyte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerVbyte") 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) "EstimateFeeResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"feeSat") _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 @"feerateSatPerByte") _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 @"satPerVbyte") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData EstimateFeeResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_EstimateFeeResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_EstimateFeeResponse'feeSat x__)
                (Control.DeepSeq.deepseq
                   (_EstimateFeeResponse'feerateSatPerByte x__)
                   (Control.DeepSeq.deepseq
                      (_EstimateFeeResponse'satPerVbyte x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' ExportChannelBackupRequest ChannelPoint@
         * 'Proto.LndGrpc_Fields.maybe'chanPoint' @:: Lens' ExportChannelBackupRequest (Prelude.Maybe ChannelPoint)@ -}
data ExportChannelBackupRequest
  = ExportChannelBackupRequest'_constructor {_ExportChannelBackupRequest'chanPoint :: !(Prelude.Maybe ChannelPoint),
                                             _ExportChannelBackupRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ExportChannelBackupRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ExportChannelBackupRequest "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ExportChannelBackupRequest'chanPoint
           (\ x__ y__ -> x__ {_ExportChannelBackupRequest'chanPoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ExportChannelBackupRequest "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ExportChannelBackupRequest'chanPoint
           (\ x__ y__ -> x__ {_ExportChannelBackupRequest'chanPoint = y__}))
        Prelude.id
instance Data.ProtoLens.Message ExportChannelBackupRequest where
  messageName _ = Data.Text.pack "lnrpc.ExportChannelBackupRequest"
  packedMessageDescriptor _
    = "\n\
      \\SUBExportChannelBackupRequest\DC22\n\
      \\n\
      \chan_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        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 ExportChannelBackupRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanPoint__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ExportChannelBackupRequest'_unknownFields
        (\ x__ y__
           -> x__ {_ExportChannelBackupRequest'_unknownFields = y__})
  defMessage
    = ExportChannelBackupRequest'_constructor
        {_ExportChannelBackupRequest'chanPoint = Prelude.Nothing,
         _ExportChannelBackupRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ExportChannelBackupRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ExportChannelBackupRequest
        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"
                                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) "ExportChannelBackupRequest"
  buildMessage
    = \ _x
        -> (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 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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ExportChannelBackupRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ExportChannelBackupRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ExportChannelBackupRequest'chanPoint x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.code' @:: Lens' Failure Failure'FailureCode@
         * 'Proto.LndGrpc_Fields.channelUpdate' @:: Lens' Failure ChannelUpdate@
         * 'Proto.LndGrpc_Fields.maybe'channelUpdate' @:: Lens' Failure (Prelude.Maybe ChannelUpdate)@
         * 'Proto.LndGrpc_Fields.htlcMsat' @:: Lens' Failure Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.onionSha256' @:: Lens' Failure Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.cltvExpiry' @:: Lens' Failure Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.flags' @:: Lens' Failure Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.failureSourceIndex' @:: Lens' Failure Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.height' @:: Lens' Failure Data.Word.Word32@ -}
data Failure
  = Failure'_constructor {_Failure'code :: !Failure'FailureCode,
                          _Failure'channelUpdate :: !(Prelude.Maybe ChannelUpdate),
                          _Failure'htlcMsat :: !Data.Word.Word64,
                          _Failure'onionSha256 :: !Data.ByteString.ByteString,
                          _Failure'cltvExpiry :: !Data.Word.Word32,
                          _Failure'flags :: !Data.Word.Word32,
                          _Failure'failureSourceIndex :: !Data.Word.Word32,
                          _Failure'height :: !Data.Word.Word32,
                          _Failure'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Failure where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Failure "code" Failure'FailureCode where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'code (\ x__ y__ -> x__ {_Failure'code = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "channelUpdate" ChannelUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'channelUpdate
           (\ x__ y__ -> x__ {_Failure'channelUpdate = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Failure "maybe'channelUpdate" (Prelude.Maybe ChannelUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'channelUpdate
           (\ x__ y__ -> x__ {_Failure'channelUpdate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "htlcMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'htlcMsat (\ x__ y__ -> x__ {_Failure'htlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "onionSha256" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'onionSha256
           (\ x__ y__ -> x__ {_Failure'onionSha256 = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "cltvExpiry" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'cltvExpiry (\ x__ y__ -> x__ {_Failure'cltvExpiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "flags" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'flags (\ x__ y__ -> x__ {_Failure'flags = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "failureSourceIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'failureSourceIndex
           (\ x__ y__ -> x__ {_Failure'failureSourceIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Failure "height" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Failure'height (\ x__ y__ -> x__ {_Failure'height = y__}))
        Prelude.id
instance Data.ProtoLens.Message Failure where
  messageName _ = Data.Text.pack "lnrpc.Failure"
  packedMessageDescriptor _
    = "\n\
      \\aFailure\DC2.\n\
      \\EOTcode\CAN\SOH \SOH(\SO2\SUB.lnrpc.Failure.FailureCodeR\EOTcode\DC2;\n\
      \\SOchannel_update\CAN\ETX \SOH(\v2\DC4.lnrpc.ChannelUpdateR\rchannelUpdate\DC2\ESC\n\
      \\thtlc_msat\CAN\EOT \SOH(\EOTR\bhtlcMsat\DC2\"\n\
      \\ronion_sha_256\CAN\ENQ \SOH(\fR\vonionSha256\DC2\US\n\
      \\vcltv_expiry\CAN\ACK \SOH(\rR\n\
      \cltvExpiry\DC2\DC4\n\
      \\ENQflags\CAN\a \SOH(\rR\ENQflags\DC20\n\
      \\DC4failure_source_index\CAN\b \SOH(\rR\DC2failureSourceIndex\DC2\SYN\n\
      \\ACKheight\CAN\t \SOH(\rR\ACKheight\"\239\ENQ\n\
      \\vFailureCode\DC2\f\n\
      \\bRESERVED\DLE\NUL\DC2(\n\
      \$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\DLE\SOH\DC2\FS\n\
      \\CANINCORRECT_PAYMENT_AMOUNT\DLE\STX\DC2\US\n\
      \\ESCFINAL_INCORRECT_CLTV_EXPIRY\DLE\ETX\DC2\US\n\
      \\ESCFINAL_INCORRECT_HTLC_AMOUNT\DLE\EOT\DC2\EM\n\
      \\NAKFINAL_EXPIRY_TOO_SOON\DLE\ENQ\DC2\DC1\n\
      \\rINVALID_REALM\DLE\ACK\DC2\DC3\n\
      \\SIEXPIRY_TOO_SOON\DLE\a\DC2\EM\n\
      \\NAKINVALID_ONION_VERSION\DLE\b\DC2\SYN\n\
      \\DC2INVALID_ONION_HMAC\DLE\t\DC2\NAK\n\
      \\DC1INVALID_ONION_KEY\DLE\n\
      \\DC2\CAN\n\
      \\DC4AMOUNT_BELOW_MINIMUM\DLE\v\DC2\DC4\n\
      \\DLEFEE_INSUFFICIENT\DLE\f\DC2\EM\n\
      \\NAKINCORRECT_CLTV_EXPIRY\DLE\r\DC2\DC4\n\
      \\DLECHANNEL_DISABLED\DLE\SO\DC2\GS\n\
      \\EMTEMPORARY_CHANNEL_FAILURE\DLE\SI\DC2!\n\
      \\GSREQUIRED_NODE_FEATURE_MISSING\DLE\DLE\DC2$\n\
      \ REQUIRED_CHANNEL_FEATURE_MISSING\DLE\DC1\DC2\NAK\n\
      \\DC1UNKNOWN_NEXT_PEER\DLE\DC2\DC2\SUB\n\
      \\SYNTEMPORARY_NODE_FAILURE\DLE\DC3\DC2\SUB\n\
      \\SYNPERMANENT_NODE_FAILURE\DLE\DC4\DC2\GS\n\
      \\EMPERMANENT_CHANNEL_FAILURE\DLE\NAK\DC2\DC2\n\
      \\SOEXPIRY_TOO_FAR\DLE\SYN\DC2\SI\n\
      \\vMPP_TIMEOUT\DLE\ETB\DC2\EM\n\
      \\NAKINVALID_ONION_PAYLOAD\DLE\CAN\DC2\NAK\n\
      \\DLEINTERNAL_FAILURE\DLE\229\a\DC2\DC4\n\
      \\SIUNKNOWN_FAILURE\DLE\230\a\DC2\ETB\n\
      \\DC2UNREADABLE_FAILURE\DLE\231\aJ\EOT\b\STX\DLE\ETX"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        code__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "code"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Failure'FailureCode)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"code")) ::
              Data.ProtoLens.FieldDescriptor Failure
        channelUpdate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_update"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'channelUpdate")) ::
              Data.ProtoLens.FieldDescriptor Failure
        htlcMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlc_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"htlcMsat")) ::
              Data.ProtoLens.FieldDescriptor Failure
        onionSha256__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "onion_sha_256"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"onionSha256")) ::
              Data.ProtoLens.FieldDescriptor Failure
        cltvExpiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cltv_expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cltvExpiry")) ::
              Data.ProtoLens.FieldDescriptor Failure
        flags__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "flags"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"flags")) ::
              Data.ProtoLens.FieldDescriptor Failure
        failureSourceIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "failure_source_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"failureSourceIndex")) ::
              Data.ProtoLens.FieldDescriptor Failure
        height__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"height")) ::
              Data.ProtoLens.FieldDescriptor Failure
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, code__field_descriptor),
           (Data.ProtoLens.Tag 3, channelUpdate__field_descriptor),
           (Data.ProtoLens.Tag 4, htlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 5, onionSha256__field_descriptor),
           (Data.ProtoLens.Tag 6, cltvExpiry__field_descriptor),
           (Data.ProtoLens.Tag 7, flags__field_descriptor),
           (Data.ProtoLens.Tag 8, failureSourceIndex__field_descriptor),
           (Data.ProtoLens.Tag 9, height__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Failure'_unknownFields
        (\ x__ y__ -> x__ {_Failure'_unknownFields = y__})
  defMessage
    = Failure'_constructor
        {_Failure'code = Data.ProtoLens.fieldDefault,
         _Failure'channelUpdate = Prelude.Nothing,
         _Failure'htlcMsat = Data.ProtoLens.fieldDefault,
         _Failure'onionSha256 = Data.ProtoLens.fieldDefault,
         _Failure'cltvExpiry = Data.ProtoLens.fieldDefault,
         _Failure'flags = Data.ProtoLens.fieldDefault,
         _Failure'failureSourceIndex = Data.ProtoLens.fieldDefault,
         _Failure'height = Data.ProtoLens.fieldDefault,
         _Failure'_unknownFields = []}
  parseMessage
    = let
        loop :: Failure -> Data.ProtoLens.Encoding.Bytes.Parser Failure
        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))
                                       "code"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"code") 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)
                                       "channel_update"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"channelUpdate") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "htlc_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"htlcMsat") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "onion_sha_256"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"onionSha256") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "cltv_expiry"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cltvExpiry") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "flags"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"flags") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "failure_source_index"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"failureSourceIndex") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "height"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"height") 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) "Failure"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"code") _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.<>)
                (case
                     Lens.Family2.view
                       (Data.ProtoLens.Field.field @"maybe'channelUpdate") _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 @"htlcMsat") _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 @"onionSha256") _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 @"cltvExpiry") _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 @"flags") _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 @"failureSourceIndex") _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 @"height") _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.ProtoLens.Encoding.Wire.buildFieldSet
                                     (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))))
instance Control.DeepSeq.NFData Failure where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Failure'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Failure'code x__)
                (Control.DeepSeq.deepseq
                   (_Failure'channelUpdate x__)
                   (Control.DeepSeq.deepseq
                      (_Failure'htlcMsat x__)
                      (Control.DeepSeq.deepseq
                         (_Failure'onionSha256 x__)
                         (Control.DeepSeq.deepseq
                            (_Failure'cltvExpiry x__)
                            (Control.DeepSeq.deepseq
                               (_Failure'flags x__)
                               (Control.DeepSeq.deepseq
                                  (_Failure'failureSourceIndex x__)
                                  (Control.DeepSeq.deepseq (_Failure'height x__) ()))))))))
newtype Failure'FailureCode'UnrecognizedValue
  = Failure'FailureCode'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data Failure'FailureCode
  = Failure'RESERVED |
    Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS |
    Failure'INCORRECT_PAYMENT_AMOUNT |
    Failure'FINAL_INCORRECT_CLTV_EXPIRY |
    Failure'FINAL_INCORRECT_HTLC_AMOUNT |
    Failure'FINAL_EXPIRY_TOO_SOON |
    Failure'INVALID_REALM |
    Failure'EXPIRY_TOO_SOON |
    Failure'INVALID_ONION_VERSION |
    Failure'INVALID_ONION_HMAC |
    Failure'INVALID_ONION_KEY |
    Failure'AMOUNT_BELOW_MINIMUM |
    Failure'FEE_INSUFFICIENT |
    Failure'INCORRECT_CLTV_EXPIRY |
    Failure'CHANNEL_DISABLED |
    Failure'TEMPORARY_CHANNEL_FAILURE |
    Failure'REQUIRED_NODE_FEATURE_MISSING |
    Failure'REQUIRED_CHANNEL_FEATURE_MISSING |
    Failure'UNKNOWN_NEXT_PEER |
    Failure'TEMPORARY_NODE_FAILURE |
    Failure'PERMANENT_NODE_FAILURE |
    Failure'PERMANENT_CHANNEL_FAILURE |
    Failure'EXPIRY_TOO_FAR |
    Failure'MPP_TIMEOUT |
    Failure'INVALID_ONION_PAYLOAD |
    Failure'INTERNAL_FAILURE |
    Failure'UNKNOWN_FAILURE |
    Failure'UNREADABLE_FAILURE |
    Failure'FailureCode'Unrecognized !Failure'FailureCode'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum Failure'FailureCode where
  maybeToEnum 0 = Prelude.Just Failure'RESERVED
  maybeToEnum 1
    = Prelude.Just Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
  maybeToEnum 2 = Prelude.Just Failure'INCORRECT_PAYMENT_AMOUNT
  maybeToEnum 3 = Prelude.Just Failure'FINAL_INCORRECT_CLTV_EXPIRY
  maybeToEnum 4 = Prelude.Just Failure'FINAL_INCORRECT_HTLC_AMOUNT
  maybeToEnum 5 = Prelude.Just Failure'FINAL_EXPIRY_TOO_SOON
  maybeToEnum 6 = Prelude.Just Failure'INVALID_REALM
  maybeToEnum 7 = Prelude.Just Failure'EXPIRY_TOO_SOON
  maybeToEnum 8 = Prelude.Just Failure'INVALID_ONION_VERSION
  maybeToEnum 9 = Prelude.Just Failure'INVALID_ONION_HMAC
  maybeToEnum 10 = Prelude.Just Failure'INVALID_ONION_KEY
  maybeToEnum 11 = Prelude.Just Failure'AMOUNT_BELOW_MINIMUM
  maybeToEnum 12 = Prelude.Just Failure'FEE_INSUFFICIENT
  maybeToEnum 13 = Prelude.Just Failure'INCORRECT_CLTV_EXPIRY
  maybeToEnum 14 = Prelude.Just Failure'CHANNEL_DISABLED
  maybeToEnum 15 = Prelude.Just Failure'TEMPORARY_CHANNEL_FAILURE
  maybeToEnum 16 = Prelude.Just Failure'REQUIRED_NODE_FEATURE_MISSING
  maybeToEnum 17
    = Prelude.Just Failure'REQUIRED_CHANNEL_FEATURE_MISSING
  maybeToEnum 18 = Prelude.Just Failure'UNKNOWN_NEXT_PEER
  maybeToEnum 19 = Prelude.Just Failure'TEMPORARY_NODE_FAILURE
  maybeToEnum 20 = Prelude.Just Failure'PERMANENT_NODE_FAILURE
  maybeToEnum 21 = Prelude.Just Failure'PERMANENT_CHANNEL_FAILURE
  maybeToEnum 22 = Prelude.Just Failure'EXPIRY_TOO_FAR
  maybeToEnum 23 = Prelude.Just Failure'MPP_TIMEOUT
  maybeToEnum 24 = Prelude.Just Failure'INVALID_ONION_PAYLOAD
  maybeToEnum 997 = Prelude.Just Failure'INTERNAL_FAILURE
  maybeToEnum 998 = Prelude.Just Failure'UNKNOWN_FAILURE
  maybeToEnum 999 = Prelude.Just Failure'UNREADABLE_FAILURE
  maybeToEnum k
    = Prelude.Just
        (Failure'FailureCode'Unrecognized
           (Failure'FailureCode'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum Failure'RESERVED = "RESERVED"
  showEnum Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
    = "INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS"
  showEnum Failure'INCORRECT_PAYMENT_AMOUNT
    = "INCORRECT_PAYMENT_AMOUNT"
  showEnum Failure'FINAL_INCORRECT_CLTV_EXPIRY
    = "FINAL_INCORRECT_CLTV_EXPIRY"
  showEnum Failure'FINAL_INCORRECT_HTLC_AMOUNT
    = "FINAL_INCORRECT_HTLC_AMOUNT"
  showEnum Failure'FINAL_EXPIRY_TOO_SOON = "FINAL_EXPIRY_TOO_SOON"
  showEnum Failure'INVALID_REALM = "INVALID_REALM"
  showEnum Failure'EXPIRY_TOO_SOON = "EXPIRY_TOO_SOON"
  showEnum Failure'INVALID_ONION_VERSION = "INVALID_ONION_VERSION"
  showEnum Failure'INVALID_ONION_HMAC = "INVALID_ONION_HMAC"
  showEnum Failure'INVALID_ONION_KEY = "INVALID_ONION_KEY"
  showEnum Failure'AMOUNT_BELOW_MINIMUM = "AMOUNT_BELOW_MINIMUM"
  showEnum Failure'FEE_INSUFFICIENT = "FEE_INSUFFICIENT"
  showEnum Failure'INCORRECT_CLTV_EXPIRY = "INCORRECT_CLTV_EXPIRY"
  showEnum Failure'CHANNEL_DISABLED = "CHANNEL_DISABLED"
  showEnum Failure'TEMPORARY_CHANNEL_FAILURE
    = "TEMPORARY_CHANNEL_FAILURE"
  showEnum Failure'REQUIRED_NODE_FEATURE_MISSING
    = "REQUIRED_NODE_FEATURE_MISSING"
  showEnum Failure'REQUIRED_CHANNEL_FEATURE_MISSING
    = "REQUIRED_CHANNEL_FEATURE_MISSING"
  showEnum Failure'UNKNOWN_NEXT_PEER = "UNKNOWN_NEXT_PEER"
  showEnum Failure'TEMPORARY_NODE_FAILURE = "TEMPORARY_NODE_FAILURE"
  showEnum Failure'PERMANENT_NODE_FAILURE = "PERMANENT_NODE_FAILURE"
  showEnum Failure'PERMANENT_CHANNEL_FAILURE
    = "PERMANENT_CHANNEL_FAILURE"
  showEnum Failure'EXPIRY_TOO_FAR = "EXPIRY_TOO_FAR"
  showEnum Failure'MPP_TIMEOUT = "MPP_TIMEOUT"
  showEnum Failure'INVALID_ONION_PAYLOAD = "INVALID_ONION_PAYLOAD"
  showEnum Failure'INTERNAL_FAILURE = "INTERNAL_FAILURE"
  showEnum Failure'UNKNOWN_FAILURE = "UNKNOWN_FAILURE"
  showEnum Failure'UNREADABLE_FAILURE = "UNREADABLE_FAILURE"
  showEnum
    (Failure'FailureCode'Unrecognized (Failure'FailureCode'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "RESERVED" = Prelude.Just Failure'RESERVED
    | (Prelude.==) k "INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS"
    = Prelude.Just Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
    | (Prelude.==) k "INCORRECT_PAYMENT_AMOUNT"
    = Prelude.Just Failure'INCORRECT_PAYMENT_AMOUNT
    | (Prelude.==) k "FINAL_INCORRECT_CLTV_EXPIRY"
    = Prelude.Just Failure'FINAL_INCORRECT_CLTV_EXPIRY
    | (Prelude.==) k "FINAL_INCORRECT_HTLC_AMOUNT"
    = Prelude.Just Failure'FINAL_INCORRECT_HTLC_AMOUNT
    | (Prelude.==) k "FINAL_EXPIRY_TOO_SOON"
    = Prelude.Just Failure'FINAL_EXPIRY_TOO_SOON
    | (Prelude.==) k "INVALID_REALM"
    = Prelude.Just Failure'INVALID_REALM
    | (Prelude.==) k "EXPIRY_TOO_SOON"
    = Prelude.Just Failure'EXPIRY_TOO_SOON
    | (Prelude.==) k "INVALID_ONION_VERSION"
    = Prelude.Just Failure'INVALID_ONION_VERSION
    | (Prelude.==) k "INVALID_ONION_HMAC"
    = Prelude.Just Failure'INVALID_ONION_HMAC
    | (Prelude.==) k "INVALID_ONION_KEY"
    = Prelude.Just Failure'INVALID_ONION_KEY
    | (Prelude.==) k "AMOUNT_BELOW_MINIMUM"
    = Prelude.Just Failure'AMOUNT_BELOW_MINIMUM
    | (Prelude.==) k "FEE_INSUFFICIENT"
    = Prelude.Just Failure'FEE_INSUFFICIENT
    | (Prelude.==) k "INCORRECT_CLTV_EXPIRY"
    = Prelude.Just Failure'INCORRECT_CLTV_EXPIRY
    | (Prelude.==) k "CHANNEL_DISABLED"
    = Prelude.Just Failure'CHANNEL_DISABLED
    | (Prelude.==) k "TEMPORARY_CHANNEL_FAILURE"
    = Prelude.Just Failure'TEMPORARY_CHANNEL_FAILURE
    | (Prelude.==) k "REQUIRED_NODE_FEATURE_MISSING"
    = Prelude.Just Failure'REQUIRED_NODE_FEATURE_MISSING
    | (Prelude.==) k "REQUIRED_CHANNEL_FEATURE_MISSING"
    = Prelude.Just Failure'REQUIRED_CHANNEL_FEATURE_MISSING
    | (Prelude.==) k "UNKNOWN_NEXT_PEER"
    = Prelude.Just Failure'UNKNOWN_NEXT_PEER
    | (Prelude.==) k "TEMPORARY_NODE_FAILURE"
    = Prelude.Just Failure'TEMPORARY_NODE_FAILURE
    | (Prelude.==) k "PERMANENT_NODE_FAILURE"
    = Prelude.Just Failure'PERMANENT_NODE_FAILURE
    | (Prelude.==) k "PERMANENT_CHANNEL_FAILURE"
    = Prelude.Just Failure'PERMANENT_CHANNEL_FAILURE
    | (Prelude.==) k "EXPIRY_TOO_FAR"
    = Prelude.Just Failure'EXPIRY_TOO_FAR
    | (Prelude.==) k "MPP_TIMEOUT" = Prelude.Just Failure'MPP_TIMEOUT
    | (Prelude.==) k "INVALID_ONION_PAYLOAD"
    = Prelude.Just Failure'INVALID_ONION_PAYLOAD
    | (Prelude.==) k "INTERNAL_FAILURE"
    = Prelude.Just Failure'INTERNAL_FAILURE
    | (Prelude.==) k "UNKNOWN_FAILURE"
    = Prelude.Just Failure'UNKNOWN_FAILURE
    | (Prelude.==) k "UNREADABLE_FAILURE"
    = Prelude.Just Failure'UNREADABLE_FAILURE
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded Failure'FailureCode where
  minBound = Failure'RESERVED
  maxBound = Failure'UNREADABLE_FAILURE
instance Prelude.Enum Failure'FailureCode where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum FailureCode: " (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum Failure'RESERVED = 0
  fromEnum Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS = 1
  fromEnum Failure'INCORRECT_PAYMENT_AMOUNT = 2
  fromEnum Failure'FINAL_INCORRECT_CLTV_EXPIRY = 3
  fromEnum Failure'FINAL_INCORRECT_HTLC_AMOUNT = 4
  fromEnum Failure'FINAL_EXPIRY_TOO_SOON = 5
  fromEnum Failure'INVALID_REALM = 6
  fromEnum Failure'EXPIRY_TOO_SOON = 7
  fromEnum Failure'INVALID_ONION_VERSION = 8
  fromEnum Failure'INVALID_ONION_HMAC = 9
  fromEnum Failure'INVALID_ONION_KEY = 10
  fromEnum Failure'AMOUNT_BELOW_MINIMUM = 11
  fromEnum Failure'FEE_INSUFFICIENT = 12
  fromEnum Failure'INCORRECT_CLTV_EXPIRY = 13
  fromEnum Failure'CHANNEL_DISABLED = 14
  fromEnum Failure'TEMPORARY_CHANNEL_FAILURE = 15
  fromEnum Failure'REQUIRED_NODE_FEATURE_MISSING = 16
  fromEnum Failure'REQUIRED_CHANNEL_FEATURE_MISSING = 17
  fromEnum Failure'UNKNOWN_NEXT_PEER = 18
  fromEnum Failure'TEMPORARY_NODE_FAILURE = 19
  fromEnum Failure'PERMANENT_NODE_FAILURE = 20
  fromEnum Failure'PERMANENT_CHANNEL_FAILURE = 21
  fromEnum Failure'EXPIRY_TOO_FAR = 22
  fromEnum Failure'MPP_TIMEOUT = 23
  fromEnum Failure'INVALID_ONION_PAYLOAD = 24
  fromEnum Failure'INTERNAL_FAILURE = 997
  fromEnum Failure'UNKNOWN_FAILURE = 998
  fromEnum Failure'UNREADABLE_FAILURE = 999
  fromEnum
    (Failure'FailureCode'Unrecognized (Failure'FailureCode'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ Failure'UNREADABLE_FAILURE
    = Prelude.error
        "Failure'FailureCode.succ: bad argument Failure'UNREADABLE_FAILURE. This value would be out of bounds."
  succ Failure'RESERVED
    = Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
  succ Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
    = Failure'INCORRECT_PAYMENT_AMOUNT
  succ Failure'INCORRECT_PAYMENT_AMOUNT
    = Failure'FINAL_INCORRECT_CLTV_EXPIRY
  succ Failure'FINAL_INCORRECT_CLTV_EXPIRY
    = Failure'FINAL_INCORRECT_HTLC_AMOUNT
  succ Failure'FINAL_INCORRECT_HTLC_AMOUNT
    = Failure'FINAL_EXPIRY_TOO_SOON
  succ Failure'FINAL_EXPIRY_TOO_SOON = Failure'INVALID_REALM
  succ Failure'INVALID_REALM = Failure'EXPIRY_TOO_SOON
  succ Failure'EXPIRY_TOO_SOON = Failure'INVALID_ONION_VERSION
  succ Failure'INVALID_ONION_VERSION = Failure'INVALID_ONION_HMAC
  succ Failure'INVALID_ONION_HMAC = Failure'INVALID_ONION_KEY
  succ Failure'INVALID_ONION_KEY = Failure'AMOUNT_BELOW_MINIMUM
  succ Failure'AMOUNT_BELOW_MINIMUM = Failure'FEE_INSUFFICIENT
  succ Failure'FEE_INSUFFICIENT = Failure'INCORRECT_CLTV_EXPIRY
  succ Failure'INCORRECT_CLTV_EXPIRY = Failure'CHANNEL_DISABLED
  succ Failure'CHANNEL_DISABLED = Failure'TEMPORARY_CHANNEL_FAILURE
  succ Failure'TEMPORARY_CHANNEL_FAILURE
    = Failure'REQUIRED_NODE_FEATURE_MISSING
  succ Failure'REQUIRED_NODE_FEATURE_MISSING
    = Failure'REQUIRED_CHANNEL_FEATURE_MISSING
  succ Failure'REQUIRED_CHANNEL_FEATURE_MISSING
    = Failure'UNKNOWN_NEXT_PEER
  succ Failure'UNKNOWN_NEXT_PEER = Failure'TEMPORARY_NODE_FAILURE
  succ Failure'TEMPORARY_NODE_FAILURE
    = Failure'PERMANENT_NODE_FAILURE
  succ Failure'PERMANENT_NODE_FAILURE
    = Failure'PERMANENT_CHANNEL_FAILURE
  succ Failure'PERMANENT_CHANNEL_FAILURE = Failure'EXPIRY_TOO_FAR
  succ Failure'EXPIRY_TOO_FAR = Failure'MPP_TIMEOUT
  succ Failure'MPP_TIMEOUT = Failure'INVALID_ONION_PAYLOAD
  succ Failure'INVALID_ONION_PAYLOAD = Failure'INTERNAL_FAILURE
  succ Failure'INTERNAL_FAILURE = Failure'UNKNOWN_FAILURE
  succ Failure'UNKNOWN_FAILURE = Failure'UNREADABLE_FAILURE
  succ (Failure'FailureCode'Unrecognized _)
    = Prelude.error
        "Failure'FailureCode.succ: bad argument: unrecognized value"
  pred Failure'RESERVED
    = Prelude.error
        "Failure'FailureCode.pred: bad argument Failure'RESERVED. This value would be out of bounds."
  pred Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
    = Failure'RESERVED
  pred Failure'INCORRECT_PAYMENT_AMOUNT
    = Failure'INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS
  pred Failure'FINAL_INCORRECT_CLTV_EXPIRY
    = Failure'INCORRECT_PAYMENT_AMOUNT
  pred Failure'FINAL_INCORRECT_HTLC_AMOUNT
    = Failure'FINAL_INCORRECT_CLTV_EXPIRY
  pred Failure'FINAL_EXPIRY_TOO_SOON
    = Failure'FINAL_INCORRECT_HTLC_AMOUNT
  pred Failure'INVALID_REALM = Failure'FINAL_EXPIRY_TOO_SOON
  pred Failure'EXPIRY_TOO_SOON = Failure'INVALID_REALM
  pred Failure'INVALID_ONION_VERSION = Failure'EXPIRY_TOO_SOON
  pred Failure'INVALID_ONION_HMAC = Failure'INVALID_ONION_VERSION
  pred Failure'INVALID_ONION_KEY = Failure'INVALID_ONION_HMAC
  pred Failure'AMOUNT_BELOW_MINIMUM = Failure'INVALID_ONION_KEY
  pred Failure'FEE_INSUFFICIENT = Failure'AMOUNT_BELOW_MINIMUM
  pred Failure'INCORRECT_CLTV_EXPIRY = Failure'FEE_INSUFFICIENT
  pred Failure'CHANNEL_DISABLED = Failure'INCORRECT_CLTV_EXPIRY
  pred Failure'TEMPORARY_CHANNEL_FAILURE = Failure'CHANNEL_DISABLED
  pred Failure'REQUIRED_NODE_FEATURE_MISSING
    = Failure'TEMPORARY_CHANNEL_FAILURE
  pred Failure'REQUIRED_CHANNEL_FEATURE_MISSING
    = Failure'REQUIRED_NODE_FEATURE_MISSING
  pred Failure'UNKNOWN_NEXT_PEER
    = Failure'REQUIRED_CHANNEL_FEATURE_MISSING
  pred Failure'TEMPORARY_NODE_FAILURE = Failure'UNKNOWN_NEXT_PEER
  pred Failure'PERMANENT_NODE_FAILURE
    = Failure'TEMPORARY_NODE_FAILURE
  pred Failure'PERMANENT_CHANNEL_FAILURE
    = Failure'PERMANENT_NODE_FAILURE
  pred Failure'EXPIRY_TOO_FAR = Failure'PERMANENT_CHANNEL_FAILURE
  pred Failure'MPP_TIMEOUT = Failure'EXPIRY_TOO_FAR
  pred Failure'INVALID_ONION_PAYLOAD = Failure'MPP_TIMEOUT
  pred Failure'INTERNAL_FAILURE = Failure'INVALID_ONION_PAYLOAD
  pred Failure'UNKNOWN_FAILURE = Failure'INTERNAL_FAILURE
  pred Failure'UNREADABLE_FAILURE = Failure'UNKNOWN_FAILURE
  pred (Failure'FailureCode'Unrecognized _)
    = Prelude.error
        "Failure'FailureCode.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 Failure'FailureCode where
  fieldDefault = Failure'RESERVED
instance Control.DeepSeq.NFData Failure'FailureCode where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.name' @:: Lens' Feature Data.Text.Text@
         * 'Proto.LndGrpc_Fields.isRequired' @:: Lens' Feature Prelude.Bool@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Feature where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
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)
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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.maybe'limit' @:: Lens' FeeLimit (Prelude.Maybe FeeLimit'Limit)@
         * 'Proto.LndGrpc_Fields.maybe'fixed' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.LndGrpc_Fields.fixed' @:: Lens' FeeLimit Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.maybe'fixedMsat' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.LndGrpc_Fields.fixedMsat' @:: Lens' FeeLimit Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.maybe'percent' @:: Lens' FeeLimit (Prelude.Maybe Data.Int.Int64)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show FeeLimit where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
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 :
      -}
data FeeReportRequest
  = FeeReportRequest'_constructor {_FeeReportRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show FeeReportRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message FeeReportRequest where
  messageName _ = Data.Text.pack "lnrpc.FeeReportRequest"
  packedMessageDescriptor _
    = "\n\
      \\DLEFeeReportRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FeeReportRequest'_unknownFields
        (\ x__ y__ -> x__ {_FeeReportRequest'_unknownFields = y__})
  defMessage
    = FeeReportRequest'_constructor
        {_FeeReportRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FeeReportRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser FeeReportRequest
        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) "FeeReportRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData FeeReportRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FeeReportRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channelFees' @:: Lens' FeeReportResponse [ChannelFeeReport]@
         * 'Proto.LndGrpc_Fields.vec'channelFees' @:: Lens' FeeReportResponse (Data.Vector.Vector ChannelFeeReport)@
         * 'Proto.LndGrpc_Fields.dayFeeSum' @:: Lens' FeeReportResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.weekFeeSum' @:: Lens' FeeReportResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.monthFeeSum' @:: Lens' FeeReportResponse Data.Word.Word64@ -}
data FeeReportResponse
  = FeeReportResponse'_constructor {_FeeReportResponse'channelFees :: !(Data.Vector.Vector ChannelFeeReport),
                                    _FeeReportResponse'dayFeeSum :: !Data.Word.Word64,
                                    _FeeReportResponse'weekFeeSum :: !Data.Word.Word64,
                                    _FeeReportResponse'monthFeeSum :: !Data.Word.Word64,
                                    _FeeReportResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show FeeReportResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField FeeReportResponse "channelFees" [ChannelFeeReport] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeReportResponse'channelFees
           (\ x__ y__ -> x__ {_FeeReportResponse'channelFees = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField FeeReportResponse "vec'channelFees" (Data.Vector.Vector ChannelFeeReport) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeReportResponse'channelFees
           (\ x__ y__ -> x__ {_FeeReportResponse'channelFees = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FeeReportResponse "dayFeeSum" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeReportResponse'dayFeeSum
           (\ x__ y__ -> x__ {_FeeReportResponse'dayFeeSum = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FeeReportResponse "weekFeeSum" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeReportResponse'weekFeeSum
           (\ x__ y__ -> x__ {_FeeReportResponse'weekFeeSum = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField FeeReportResponse "monthFeeSum" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _FeeReportResponse'monthFeeSum
           (\ x__ y__ -> x__ {_FeeReportResponse'monthFeeSum = y__}))
        Prelude.id
instance Data.ProtoLens.Message FeeReportResponse where
  messageName _ = Data.Text.pack "lnrpc.FeeReportResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC1FeeReportResponse\DC2:\n\
      \\fchannel_fees\CAN\SOH \ETX(\v2\ETB.lnrpc.ChannelFeeReportR\vchannelFees\DC2\RS\n\
      \\vday_fee_sum\CAN\STX \SOH(\EOTR\tdayFeeSum\DC2 \n\
      \\fweek_fee_sum\CAN\ETX \SOH(\EOTR\n\
      \weekFeeSum\DC2\"\n\
      \\rmonth_fee_sum\CAN\EOT \SOH(\EOTR\vmonthFeeSum"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channelFees__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channel_fees"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelFeeReport)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"channelFees")) ::
              Data.ProtoLens.FieldDescriptor FeeReportResponse
        dayFeeSum__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "day_fee_sum"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"dayFeeSum")) ::
              Data.ProtoLens.FieldDescriptor FeeReportResponse
        weekFeeSum__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "week_fee_sum"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"weekFeeSum")) ::
              Data.ProtoLens.FieldDescriptor FeeReportResponse
        monthFeeSum__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "month_fee_sum"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"monthFeeSum")) ::
              Data.ProtoLens.FieldDescriptor FeeReportResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, channelFees__field_descriptor),
           (Data.ProtoLens.Tag 2, dayFeeSum__field_descriptor),
           (Data.ProtoLens.Tag 3, weekFeeSum__field_descriptor),
           (Data.ProtoLens.Tag 4, monthFeeSum__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _FeeReportResponse'_unknownFields
        (\ x__ y__ -> x__ {_FeeReportResponse'_unknownFields = y__})
  defMessage
    = FeeReportResponse'_constructor
        {_FeeReportResponse'channelFees = Data.Vector.Generic.empty,
         _FeeReportResponse'dayFeeSum = Data.ProtoLens.fieldDefault,
         _FeeReportResponse'weekFeeSum = Data.ProtoLens.fieldDefault,
         _FeeReportResponse'monthFeeSum = Data.ProtoLens.fieldDefault,
         _FeeReportResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          FeeReportResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelFeeReport
             -> Data.ProtoLens.Encoding.Bytes.Parser FeeReportResponse
        loop x mutable'channelFees
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'channelFees <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'channelFees)
                      (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'channelFees")
                              frozen'channelFees
                              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_fees"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'channelFees y)
                                loop x v
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "day_fee_sum"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"dayFeeSum") y x)
                                  mutable'channelFees
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "week_fee_sum"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"weekFeeSum") y x)
                                  mutable'channelFees
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "month_fee_sum"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"monthFeeSum") y x)
                                  mutable'channelFees
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'channelFees
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'channelFees <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'channelFees)
          "FeeReportResponse"
  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'channelFees") _x))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"dayFeeSum") _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 @"weekFeeSum") _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 @"monthFeeSum") _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.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData FeeReportResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_FeeReportResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_FeeReportResponse'channelFees x__)
                (Control.DeepSeq.deepseq
                   (_FeeReportResponse'dayFeeSum x__)
                   (Control.DeepSeq.deepseq
                      (_FeeReportResponse'weekFeeSum x__)
                      (Control.DeepSeq.deepseq
                         (_FeeReportResponse'monthFeeSum x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.value' @:: Lens' FloatMetric Prelude.Double@
         * 'Proto.LndGrpc_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)
instance Prelude.Show FloatMetric where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.timestamp' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chanIdIn' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chanIdOut' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtIn' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtOut' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.fee' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.feeMsat' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtInMsat' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtOutMsat' @:: Lens' ForwardingEvent Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.timestampNs' @:: Lens' ForwardingEvent Data.Word.Word64@ -}
data ForwardingEvent
  = ForwardingEvent'_constructor {_ForwardingEvent'timestamp :: !Data.Word.Word64,
                                  _ForwardingEvent'chanIdIn :: !Data.Word.Word64,
                                  _ForwardingEvent'chanIdOut :: !Data.Word.Word64,
                                  _ForwardingEvent'amtIn :: !Data.Word.Word64,
                                  _ForwardingEvent'amtOut :: !Data.Word.Word64,
                                  _ForwardingEvent'fee :: !Data.Word.Word64,
                                  _ForwardingEvent'feeMsat :: !Data.Word.Word64,
                                  _ForwardingEvent'amtInMsat :: !Data.Word.Word64,
                                  _ForwardingEvent'amtOutMsat :: !Data.Word.Word64,
                                  _ForwardingEvent'timestampNs :: !Data.Word.Word64,
                                  _ForwardingEvent'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ForwardingEvent where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ForwardingEvent "timestamp" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'timestamp
           (\ x__ y__ -> x__ {_ForwardingEvent'timestamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "chanIdIn" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'chanIdIn
           (\ x__ y__ -> x__ {_ForwardingEvent'chanIdIn = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "chanIdOut" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'chanIdOut
           (\ x__ y__ -> x__ {_ForwardingEvent'chanIdOut = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "amtIn" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'amtIn
           (\ x__ y__ -> x__ {_ForwardingEvent'amtIn = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "amtOut" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'amtOut
           (\ x__ y__ -> x__ {_ForwardingEvent'amtOut = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "fee" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'fee
           (\ x__ y__ -> x__ {_ForwardingEvent'fee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "feeMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'feeMsat
           (\ x__ y__ -> x__ {_ForwardingEvent'feeMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "amtInMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'amtInMsat
           (\ x__ y__ -> x__ {_ForwardingEvent'amtInMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "amtOutMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'amtOutMsat
           (\ x__ y__ -> x__ {_ForwardingEvent'amtOutMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingEvent "timestampNs" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingEvent'timestampNs
           (\ x__ y__ -> x__ {_ForwardingEvent'timestampNs = y__}))
        Prelude.id
instance Data.ProtoLens.Message ForwardingEvent where
  messageName _ = Data.Text.pack "lnrpc.ForwardingEvent"
  packedMessageDescriptor _
    = "\n\
      \\SIForwardingEvent\DC2 \n\
      \\ttimestamp\CAN\SOH \SOH(\EOTR\ttimestampB\STX\CAN\SOH\DC2 \n\
      \\n\
      \chan_id_in\CAN\STX \SOH(\EOTR\bchanIdInB\STX0\SOH\DC2\"\n\
      \\vchan_id_out\CAN\EOT \SOH(\EOTR\tchanIdOutB\STX0\SOH\DC2\NAK\n\
      \\ACKamt_in\CAN\ENQ \SOH(\EOTR\ENQamtIn\DC2\ETB\n\
      \\aamt_out\CAN\ACK \SOH(\EOTR\ACKamtOut\DC2\DLE\n\
      \\ETXfee\CAN\a \SOH(\EOTR\ETXfee\DC2\EM\n\
      \\bfee_msat\CAN\b \SOH(\EOTR\afeeMsat\DC2\RS\n\
      \\vamt_in_msat\CAN\t \SOH(\EOTR\tamtInMsat\DC2 \n\
      \\famt_out_msat\CAN\n\
      \ \SOH(\EOTR\n\
      \amtOutMsat\DC2!\n\
      \\ftimestamp_ns\CAN\v \SOH(\EOTR\vtimestampNs"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        timestamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timestamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timestamp")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        chanIdIn__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id_in"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanIdIn")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        chanIdOut__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_id_out"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"chanIdOut")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        amtIn__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_in"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amtIn")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        amtOut__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_out"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amtOut")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        fee__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"fee")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        feeMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeMsat")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        amtInMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_in_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtInMsat")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        amtOutMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_out_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtOutMsat")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
        timestampNs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timestamp_ns"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timestampNs")) ::
              Data.ProtoLens.FieldDescriptor ForwardingEvent
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, timestamp__field_descriptor),
           (Data.ProtoLens.Tag 2, chanIdIn__field_descriptor),
           (Data.ProtoLens.Tag 4, chanIdOut__field_descriptor),
           (Data.ProtoLens.Tag 5, amtIn__field_descriptor),
           (Data.ProtoLens.Tag 6, amtOut__field_descriptor),
           (Data.ProtoLens.Tag 7, fee__field_descriptor),
           (Data.ProtoLens.Tag 8, feeMsat__field_descriptor),
           (Data.ProtoLens.Tag 9, amtInMsat__field_descriptor),
           (Data.ProtoLens.Tag 10, amtOutMsat__field_descriptor),
           (Data.ProtoLens.Tag 11, timestampNs__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ForwardingEvent'_unknownFields
        (\ x__ y__ -> x__ {_ForwardingEvent'_unknownFields = y__})
  defMessage
    = ForwardingEvent'_constructor
        {_ForwardingEvent'timestamp = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'chanIdIn = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'chanIdOut = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'amtIn = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'amtOut = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'fee = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'feeMsat = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'amtInMsat = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'amtOutMsat = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'timestampNs = Data.ProtoLens.fieldDefault,
         _ForwardingEvent'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ForwardingEvent
          -> Data.ProtoLens.Encoding.Bytes.Parser ForwardingEvent
        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 "timestamp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timestamp") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id_in"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanIdIn") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "chan_id_out"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanIdOut") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amt_in"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amtIn") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amt_out"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amtOut") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "fee"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"fee") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "fee_msat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeMsat") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amt_in_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtInMsat") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amt_out_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtOutMsat") y x)
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "timestamp_ns"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timestampNs") 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) "ForwardingEvent"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"timestamp") _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 @"chanIdIn") _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 @"chanIdOut") _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 @"amtIn") _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 @"amtOut") _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 @"fee") _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.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 64)
                                        (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"amtInMsat") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 72)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"amtOutMsat") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"timestampNs") _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 ForwardingEvent where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ForwardingEvent'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ForwardingEvent'timestamp x__)
                (Control.DeepSeq.deepseq
                   (_ForwardingEvent'chanIdIn x__)
                   (Control.DeepSeq.deepseq
                      (_ForwardingEvent'chanIdOut x__)
                      (Control.DeepSeq.deepseq
                         (_ForwardingEvent'amtIn x__)
                         (Control.DeepSeq.deepseq
                            (_ForwardingEvent'amtOut x__)
                            (Control.DeepSeq.deepseq
                               (_ForwardingEvent'fee x__)
                               (Control.DeepSeq.deepseq
                                  (_ForwardingEvent'feeMsat x__)
                                  (Control.DeepSeq.deepseq
                                     (_ForwardingEvent'amtInMsat x__)
                                     (Control.DeepSeq.deepseq
                                        (_ForwardingEvent'amtOutMsat x__)
                                        (Control.DeepSeq.deepseq
                                           (_ForwardingEvent'timestampNs x__) ()))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.startTime' @:: Lens' ForwardingHistoryRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.endTime' @:: Lens' ForwardingHistoryRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.indexOffset' @:: Lens' ForwardingHistoryRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numMaxEvents' @:: Lens' ForwardingHistoryRequest Data.Word.Word32@ -}
data ForwardingHistoryRequest
  = ForwardingHistoryRequest'_constructor {_ForwardingHistoryRequest'startTime :: !Data.Word.Word64,
                                           _ForwardingHistoryRequest'endTime :: !Data.Word.Word64,
                                           _ForwardingHistoryRequest'indexOffset :: !Data.Word.Word32,
                                           _ForwardingHistoryRequest'numMaxEvents :: !Data.Word.Word32,
                                           _ForwardingHistoryRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ForwardingHistoryRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ForwardingHistoryRequest "startTime" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryRequest'startTime
           (\ x__ y__ -> x__ {_ForwardingHistoryRequest'startTime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingHistoryRequest "endTime" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryRequest'endTime
           (\ x__ y__ -> x__ {_ForwardingHistoryRequest'endTime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingHistoryRequest "indexOffset" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryRequest'indexOffset
           (\ x__ y__ -> x__ {_ForwardingHistoryRequest'indexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingHistoryRequest "numMaxEvents" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryRequest'numMaxEvents
           (\ x__ y__ -> x__ {_ForwardingHistoryRequest'numMaxEvents = y__}))
        Prelude.id
instance Data.ProtoLens.Message ForwardingHistoryRequest where
  messageName _ = Data.Text.pack "lnrpc.ForwardingHistoryRequest"
  packedMessageDescriptor _
    = "\n\
      \\CANForwardingHistoryRequest\DC2\GS\n\
      \\n\
      \start_time\CAN\SOH \SOH(\EOTR\tstartTime\DC2\EM\n\
      \\bend_time\CAN\STX \SOH(\EOTR\aendTime\DC2!\n\
      \\findex_offset\CAN\ETX \SOH(\rR\vindexOffset\DC2$\n\
      \\SOnum_max_events\CAN\EOT \SOH(\rR\fnumMaxEvents"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        startTime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "start_time"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"startTime")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryRequest
        endTime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "end_time"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"endTime")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryRequest
        indexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"indexOffset")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryRequest
        numMaxEvents__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_max_events"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numMaxEvents")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, startTime__field_descriptor),
           (Data.ProtoLens.Tag 2, endTime__field_descriptor),
           (Data.ProtoLens.Tag 3, indexOffset__field_descriptor),
           (Data.ProtoLens.Tag 4, numMaxEvents__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ForwardingHistoryRequest'_unknownFields
        (\ x__ y__ -> x__ {_ForwardingHistoryRequest'_unknownFields = y__})
  defMessage
    = ForwardingHistoryRequest'_constructor
        {_ForwardingHistoryRequest'startTime = Data.ProtoLens.fieldDefault,
         _ForwardingHistoryRequest'endTime = Data.ProtoLens.fieldDefault,
         _ForwardingHistoryRequest'indexOffset = Data.ProtoLens.fieldDefault,
         _ForwardingHistoryRequest'numMaxEvents = Data.ProtoLens.fieldDefault,
         _ForwardingHistoryRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ForwardingHistoryRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ForwardingHistoryRequest
        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 "start_time"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"startTime") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "end_time"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"endTime") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "index_offset"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"indexOffset") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_max_events"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numMaxEvents") 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) "ForwardingHistoryRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"startTime") _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 @"endTime") _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 @"indexOffset") _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 @"numMaxEvents") _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.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData ForwardingHistoryRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ForwardingHistoryRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ForwardingHistoryRequest'startTime x__)
                (Control.DeepSeq.deepseq
                   (_ForwardingHistoryRequest'endTime x__)
                   (Control.DeepSeq.deepseq
                      (_ForwardingHistoryRequest'indexOffset x__)
                      (Control.DeepSeq.deepseq
                         (_ForwardingHistoryRequest'numMaxEvents x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.forwardingEvents' @:: Lens' ForwardingHistoryResponse [ForwardingEvent]@
         * 'Proto.LndGrpc_Fields.vec'forwardingEvents' @:: Lens' ForwardingHistoryResponse (Data.Vector.Vector ForwardingEvent)@
         * 'Proto.LndGrpc_Fields.lastOffsetIndex' @:: Lens' ForwardingHistoryResponse Data.Word.Word32@ -}
data ForwardingHistoryResponse
  = ForwardingHistoryResponse'_constructor {_ForwardingHistoryResponse'forwardingEvents :: !(Data.Vector.Vector ForwardingEvent),
                                            _ForwardingHistoryResponse'lastOffsetIndex :: !Data.Word.Word32,
                                            _ForwardingHistoryResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ForwardingHistoryResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ForwardingHistoryResponse "forwardingEvents" [ForwardingEvent] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryResponse'forwardingEvents
           (\ x__ y__
              -> x__ {_ForwardingHistoryResponse'forwardingEvents = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ForwardingHistoryResponse "vec'forwardingEvents" (Data.Vector.Vector ForwardingEvent) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryResponse'forwardingEvents
           (\ x__ y__
              -> x__ {_ForwardingHistoryResponse'forwardingEvents = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ForwardingHistoryResponse "lastOffsetIndex" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ForwardingHistoryResponse'lastOffsetIndex
           (\ x__ y__
              -> x__ {_ForwardingHistoryResponse'lastOffsetIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message ForwardingHistoryResponse where
  messageName _ = Data.Text.pack "lnrpc.ForwardingHistoryResponse"
  packedMessageDescriptor _
    = "\n\
      \\EMForwardingHistoryResponse\DC2C\n\
      \\DC1forwarding_events\CAN\SOH \ETX(\v2\SYN.lnrpc.ForwardingEventR\DLEforwardingEvents\DC2*\n\
      \\DC1last_offset_index\CAN\STX \SOH(\rR\SIlastOffsetIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        forwardingEvents__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "forwarding_events"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ForwardingEvent)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"forwardingEvents")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryResponse
        lastOffsetIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_offset_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastOffsetIndex")) ::
              Data.ProtoLens.FieldDescriptor ForwardingHistoryResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, forwardingEvents__field_descriptor),
           (Data.ProtoLens.Tag 2, lastOffsetIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ForwardingHistoryResponse'_unknownFields
        (\ x__ y__
           -> x__ {_ForwardingHistoryResponse'_unknownFields = y__})
  defMessage
    = ForwardingHistoryResponse'_constructor
        {_ForwardingHistoryResponse'forwardingEvents = Data.Vector.Generic.empty,
         _ForwardingHistoryResponse'lastOffsetIndex = Data.ProtoLens.fieldDefault,
         _ForwardingHistoryResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ForwardingHistoryResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ForwardingEvent
             -> Data.ProtoLens.Encoding.Bytes.Parser ForwardingHistoryResponse
        loop x mutable'forwardingEvents
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'forwardingEvents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                   (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                      mutable'forwardingEvents)
                      (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'forwardingEvents")
                              frozen'forwardingEvents
                              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)
                                        "forwarding_events"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'forwardingEvents y)
                                loop x v
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "last_offset_index"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"lastOffsetIndex") y x)
                                  mutable'forwardingEvents
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'forwardingEvents
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'forwardingEvents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                            Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'forwardingEvents)
          "ForwardingHistoryResponse"
  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'forwardingEvents") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"lastOffsetIndex") _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 ForwardingHistoryResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ForwardingHistoryResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ForwardingHistoryResponse'forwardingEvents x__)
                (Control.DeepSeq.deepseq
                   (_ForwardingHistoryResponse'lastOffsetIndex x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.signedPsbt' @:: Lens' FundingPsbtFinalize Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' FundingPsbtFinalize Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show FundingPsbtFinalize where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.fundedPsbt' @:: Lens' FundingPsbtVerify Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' FundingPsbtVerify Data.ByteString.ByteString@ -}
data FundingPsbtVerify
  = FundingPsbtVerify'_constructor {_FundingPsbtVerify'fundedPsbt :: !Data.ByteString.ByteString,
                                    _FundingPsbtVerify'pendingChanId :: !Data.ByteString.ByteString,
                                    _FundingPsbtVerify'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show FundingPsbtVerify where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.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"
  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
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, fundedPsbt__field_descriptor),
           (Data.ProtoLens.Tag 2, pendingChanId__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'_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)
                        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.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__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.maybe'shim' @:: Lens' FundingShim (Prelude.Maybe FundingShim'Shim)@
         * 'Proto.LndGrpc_Fields.maybe'chanPointShim' @:: Lens' FundingShim (Prelude.Maybe ChanPointShim)@
         * 'Proto.LndGrpc_Fields.chanPointShim' @:: Lens' FundingShim ChanPointShim@
         * 'Proto.LndGrpc_Fields.maybe'psbtShim' @:: Lens' FundingShim (Prelude.Maybe PsbtShim)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show FundingShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data FundingShim'Shim
  = FundingShim'ChanPointShim !ChanPointShim |
    FundingShim'PsbtShim !PsbtShim
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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.LndGrpc_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)
instance Prelude.Show FundingShimCancel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
instance Prelude.Show FundingStateStepResp where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.maybe'trigger' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingTransitionMsg'Trigger)@
         * 'Proto.LndGrpc_Fields.maybe'shimRegister' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingShim)@
         * 'Proto.LndGrpc_Fields.shimRegister' @:: Lens' FundingTransitionMsg FundingShim@
         * 'Proto.LndGrpc_Fields.maybe'shimCancel' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingShimCancel)@
         * 'Proto.LndGrpc_Fields.shimCancel' @:: Lens' FundingTransitionMsg FundingShimCancel@
         * 'Proto.LndGrpc_Fields.maybe'psbtVerify' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingPsbtVerify)@
         * 'Proto.LndGrpc_Fields.psbtVerify' @:: Lens' FundingTransitionMsg FundingPsbtVerify@
         * 'Proto.LndGrpc_Fields.maybe'psbtFinalize' @:: Lens' FundingTransitionMsg (Prelude.Maybe FundingPsbtFinalize)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show FundingTransitionMsg where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data FundingTransitionMsg'Trigger
  = FundingTransitionMsg'ShimRegister !FundingShim |
    FundingTransitionMsg'ShimCancel !FundingShimCancel |
    FundingTransitionMsg'PsbtVerify !FundingPsbtVerify |
    FundingTransitionMsg'PsbtFinalize !FundingPsbtFinalize
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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 GetInfoRequest
  = GetInfoRequest'_constructor {_GetInfoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message GetInfoRequest where
  messageName _ = Data.Text.pack "lnrpc.GetInfoRequest"
  packedMessageDescriptor _
    = "\n\
      \\SOGetInfoRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetInfoRequest'_unknownFields
        (\ x__ y__ -> x__ {_GetInfoRequest'_unknownFields = y__})
  defMessage
    = GetInfoRequest'_constructor {_GetInfoRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetInfoRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser GetInfoRequest
        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) "GetInfoRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData GetInfoRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq (_GetInfoRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.version' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.commitHash' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.identityPubkey' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.alias' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.color' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.numPendingChannels' @:: Lens' GetInfoResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numActiveChannels' @:: Lens' GetInfoResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numInactiveChannels' @:: Lens' GetInfoResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numPeers' @:: Lens' GetInfoResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.blockHeight' @:: Lens' GetInfoResponse Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.blockHash' @:: Lens' GetInfoResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.bestHeaderTimestamp' @:: Lens' GetInfoResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.syncedToChain' @:: Lens' GetInfoResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.syncedToGraph' @:: Lens' GetInfoResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.testnet' @:: Lens' GetInfoResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.chains' @:: Lens' GetInfoResponse [Chain]@
         * 'Proto.LndGrpc_Fields.vec'chains' @:: Lens' GetInfoResponse (Data.Vector.Vector Chain)@
         * 'Proto.LndGrpc_Fields.uris' @:: Lens' GetInfoResponse [Data.Text.Text]@
         * 'Proto.LndGrpc_Fields.vec'uris' @:: Lens' GetInfoResponse (Data.Vector.Vector Data.Text.Text)@
         * 'Proto.LndGrpc_Fields.features' @:: Lens' GetInfoResponse (Data.Map.Map Data.Word.Word32 Feature)@ -}
data GetInfoResponse
  = GetInfoResponse'_constructor {_GetInfoResponse'version :: !Data.Text.Text,
                                  _GetInfoResponse'commitHash :: !Data.Text.Text,
                                  _GetInfoResponse'identityPubkey :: !Data.Text.Text,
                                  _GetInfoResponse'alias :: !Data.Text.Text,
                                  _GetInfoResponse'color :: !Data.Text.Text,
                                  _GetInfoResponse'numPendingChannels :: !Data.Word.Word32,
                                  _GetInfoResponse'numActiveChannels :: !Data.Word.Word32,
                                  _GetInfoResponse'numInactiveChannels :: !Data.Word.Word32,
                                  _GetInfoResponse'numPeers :: !Data.Word.Word32,
                                  _GetInfoResponse'blockHeight :: !Data.Word.Word32,
                                  _GetInfoResponse'blockHash :: !Data.Text.Text,
                                  _GetInfoResponse'bestHeaderTimestamp :: !Data.Int.Int64,
                                  _GetInfoResponse'syncedToChain :: !Prelude.Bool,
                                  _GetInfoResponse'syncedToGraph :: !Prelude.Bool,
                                  _GetInfoResponse'testnet :: !Prelude.Bool,
                                  _GetInfoResponse'chains :: !(Data.Vector.Vector Chain),
                                  _GetInfoResponse'uris :: !(Data.Vector.Vector Data.Text.Text),
                                  _GetInfoResponse'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                                  _GetInfoResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetInfoResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField GetInfoResponse "version" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'version
           (\ x__ y__ -> x__ {_GetInfoResponse'version = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "commitHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'commitHash
           (\ x__ y__ -> x__ {_GetInfoResponse'commitHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "identityPubkey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'identityPubkey
           (\ x__ y__ -> x__ {_GetInfoResponse'identityPubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "alias" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'alias
           (\ x__ y__ -> x__ {_GetInfoResponse'alias = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "color" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'color
           (\ x__ y__ -> x__ {_GetInfoResponse'color = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "numPendingChannels" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'numPendingChannels
           (\ x__ y__ -> x__ {_GetInfoResponse'numPendingChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "numActiveChannels" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'numActiveChannels
           (\ x__ y__ -> x__ {_GetInfoResponse'numActiveChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "numInactiveChannels" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'numInactiveChannels
           (\ x__ y__ -> x__ {_GetInfoResponse'numInactiveChannels = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "numPeers" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'numPeers
           (\ x__ y__ -> x__ {_GetInfoResponse'numPeers = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "blockHeight" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'blockHeight
           (\ x__ y__ -> x__ {_GetInfoResponse'blockHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "blockHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'blockHash
           (\ x__ y__ -> x__ {_GetInfoResponse'blockHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "bestHeaderTimestamp" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'bestHeaderTimestamp
           (\ x__ y__ -> x__ {_GetInfoResponse'bestHeaderTimestamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "syncedToChain" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'syncedToChain
           (\ x__ y__ -> x__ {_GetInfoResponse'syncedToChain = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "syncedToGraph" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'syncedToGraph
           (\ x__ y__ -> x__ {_GetInfoResponse'syncedToGraph = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "testnet" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'testnet
           (\ x__ y__ -> x__ {_GetInfoResponse'testnet = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "chains" [Chain] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'chains
           (\ x__ y__ -> x__ {_GetInfoResponse'chains = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField GetInfoResponse "vec'chains" (Data.Vector.Vector Chain) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'chains
           (\ x__ y__ -> x__ {_GetInfoResponse'chains = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "uris" [Data.Text.Text] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'uris
           (\ x__ y__ -> x__ {_GetInfoResponse'uris = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField GetInfoResponse "vec'uris" (Data.Vector.Vector Data.Text.Text) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'uris
           (\ x__ y__ -> x__ {_GetInfoResponse'uris = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'features
           (\ x__ y__ -> x__ {_GetInfoResponse'features = y__}))
        Prelude.id
instance Data.ProtoLens.Message GetInfoResponse where
  messageName _ = Data.Text.pack "lnrpc.GetInfoResponse"
  packedMessageDescriptor _
    = "\n\
      \\SIGetInfoResponse\DC2\CAN\n\
      \\aversion\CAN\SO \SOH(\tR\aversion\DC2\US\n\
      \\vcommit_hash\CAN\DC4 \SOH(\tR\n\
      \commitHash\DC2'\n\
      \\SIidentity_pubkey\CAN\SOH \SOH(\tR\SOidentityPubkey\DC2\DC4\n\
      \\ENQalias\CAN\STX \SOH(\tR\ENQalias\DC2\DC4\n\
      \\ENQcolor\CAN\DC1 \SOH(\tR\ENQcolor\DC20\n\
      \\DC4num_pending_channels\CAN\ETX \SOH(\rR\DC2numPendingChannels\DC2.\n\
      \\DC3num_active_channels\CAN\EOT \SOH(\rR\DC1numActiveChannels\DC22\n\
      \\NAKnum_inactive_channels\CAN\SI \SOH(\rR\DC3numInactiveChannels\DC2\ESC\n\
      \\tnum_peers\CAN\ENQ \SOH(\rR\bnumPeers\DC2!\n\
      \\fblock_height\CAN\ACK \SOH(\rR\vblockHeight\DC2\GS\n\
      \\n\
      \block_hash\CAN\b \SOH(\tR\tblockHash\DC22\n\
      \\NAKbest_header_timestamp\CAN\r \SOH(\ETXR\DC3bestHeaderTimestamp\DC2&\n\
      \\SIsynced_to_chain\CAN\t \SOH(\bR\rsyncedToChain\DC2&\n\
      \\SIsynced_to_graph\CAN\DC2 \SOH(\bR\rsyncedToGraph\DC2\FS\n\
      \\atestnet\CAN\n\
      \ \SOH(\bR\atestnetB\STX\CAN\SOH\DC2$\n\
      \\ACKchains\CAN\DLE \ETX(\v2\f.lnrpc.ChainR\ACKchains\DC2\DC2\n\
      \\EOTuris\CAN\f \ETX(\tR\EOTuris\DC2@\n\
      \\bfeatures\CAN\DC3 \ETX(\v2$.lnrpc.GetInfoResponse.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\SOHJ\EOT\b\v\DLE\f"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        version__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "version"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        commitHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "commit_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"commitHash")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        identityPubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "identity_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"identityPubkey")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        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 GetInfoResponse
        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 GetInfoResponse
        numPendingChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_pending_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numPendingChannels")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        numActiveChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_active_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numActiveChannels")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        numInactiveChannels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_inactive_channels"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numInactiveChannels")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        numPeers__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_peers"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numPeers")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        blockHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockHeight")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        blockHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockHash")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        bestHeaderTimestamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "best_header_timestamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"bestHeaderTimestamp")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        syncedToChain__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "synced_to_chain"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"syncedToChain")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        syncedToGraph__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "synced_to_graph"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"syncedToGraph")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        testnet__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "testnet"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"testnet")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        chains__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chains"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Chain)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"chains")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        uris__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "uris"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"uris")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor GetInfoResponse'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor GetInfoResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 14, version__field_descriptor),
           (Data.ProtoLens.Tag 20, commitHash__field_descriptor),
           (Data.ProtoLens.Tag 1, identityPubkey__field_descriptor),
           (Data.ProtoLens.Tag 2, alias__field_descriptor),
           (Data.ProtoLens.Tag 17, color__field_descriptor),
           (Data.ProtoLens.Tag 3, numPendingChannels__field_descriptor),
           (Data.ProtoLens.Tag 4, numActiveChannels__field_descriptor),
           (Data.ProtoLens.Tag 15, numInactiveChannels__field_descriptor),
           (Data.ProtoLens.Tag 5, numPeers__field_descriptor),
           (Data.ProtoLens.Tag 6, blockHeight__field_descriptor),
           (Data.ProtoLens.Tag 8, blockHash__field_descriptor),
           (Data.ProtoLens.Tag 13, bestHeaderTimestamp__field_descriptor),
           (Data.ProtoLens.Tag 9, syncedToChain__field_descriptor),
           (Data.ProtoLens.Tag 18, syncedToGraph__field_descriptor),
           (Data.ProtoLens.Tag 10, testnet__field_descriptor),
           (Data.ProtoLens.Tag 16, chains__field_descriptor),
           (Data.ProtoLens.Tag 12, uris__field_descriptor),
           (Data.ProtoLens.Tag 19, features__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetInfoResponse'_unknownFields
        (\ x__ y__ -> x__ {_GetInfoResponse'_unknownFields = y__})
  defMessage
    = GetInfoResponse'_constructor
        {_GetInfoResponse'version = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'commitHash = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'identityPubkey = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'alias = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'color = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'numPendingChannels = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'numActiveChannels = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'numInactiveChannels = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'numPeers = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'blockHeight = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'blockHash = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'bestHeaderTimestamp = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'syncedToChain = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'syncedToGraph = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'testnet = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'chains = Data.Vector.Generic.empty,
         _GetInfoResponse'uris = Data.Vector.Generic.empty,
         _GetInfoResponse'features = Data.Map.empty,
         _GetInfoResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetInfoResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Chain
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
                -> Data.ProtoLens.Encoding.Bytes.Parser GetInfoResponse
        loop x mutable'chains mutable'uris
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'chains <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                            mutable'chains)
                      frozen'uris <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'uris)
                      (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'chains")
                              frozen'chains
                              (Lens.Family2.set
                                 (Data.ProtoLens.Field.field @"vec'uris") frozen'uris x)))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        114
                          -> 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))
                                       "version"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
                                  mutable'chains
                                  mutable'uris
                        162
                          -> 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))
                                       "commit_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"commitHash") y x)
                                  mutable'chains
                                  mutable'uris
                        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))
                                       "identity_pubkey"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"identityPubkey") y x)
                                  mutable'chains
                                  mutable'uris
                        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))
                                       "alias"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"alias") y x)
                                  mutable'chains
                                  mutable'uris
                        138
                          -> 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'chains
                                  mutable'uris
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_pending_channels"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numPendingChannels") y x)
                                  mutable'chains
                                  mutable'uris
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_active_channels"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numActiveChannels") y x)
                                  mutable'chains
                                  mutable'uris
                        120
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_inactive_channels"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numInactiveChannels") y x)
                                  mutable'chains
                                  mutable'uris
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_peers"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numPeers") y x)
                                  mutable'chains
                                  mutable'uris
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "block_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockHeight") y x)
                                  mutable'chains
                                  mutable'uris
                        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))
                                       "block_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockHash") y x)
                                  mutable'chains
                                  mutable'uris
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "best_header_timestamp"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"bestHeaderTimestamp") y x)
                                  mutable'chains
                                  mutable'uris
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "synced_to_chain"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"syncedToChain") y x)
                                  mutable'chains
                                  mutable'uris
                        144
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "synced_to_graph"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"syncedToGraph") y x)
                                  mutable'chains
                                  mutable'uris
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "testnet"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"testnet") y x)
                                  mutable'chains
                                  mutable'uris
                        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)
                                        "chains"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'chains y)
                                loop x v mutable'uris
                        98
                          -> 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))
                                        "uris"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'uris y)
                                loop x mutable'chains v
                        154
                          -> do !(entry :: GetInfoResponse'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'chains
                                     mutable'uris)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'chains
                                  mutable'uris
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'chains <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                  Data.ProtoLens.Encoding.Growing.new
              mutable'uris <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'chains mutable'uris)
          "GetInfoResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
              in
                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                    Data.Monoid.mempty
                else
                    (Data.Monoid.<>)
                      (Data.ProtoLens.Encoding.Bytes.putVarInt 114)
                      ((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 @"commitHash") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 162)
                         ((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 @"identityPubkey") _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 @"alias") _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 @"color") _x
                          in
                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                Data.Monoid.mempty
                            else
                                (Data.Monoid.<>)
                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 138)
                                  ((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 @"numPendingChannels") _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 @"numActiveChannels") _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 @"numInactiveChannels") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 120)
                                           ((Prelude..)
                                              Data.ProtoLens.Encoding.Bytes.putVarInt
                                              Prelude.fromIntegral
                                              _v))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"numPeers") _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 @"blockHeight") _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 @"blockHash") _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
                                                          @"bestHeaderTimestamp")
                                                       _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
                                                             @"syncedToChain")
                                                          _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.<>)
                                                    (let
                                                       _v
                                                         = Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"syncedToGraph")
                                                             _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
                                                                   @"testnet")
                                                                _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
                                                                   (\ b -> if b then 1 else 0)
                                                                   _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'chains")
                                                                _x))
                                                          ((Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                                (\ _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.Text.Encoding.encodeUtf8
                                                                           _v))
                                                                (Lens.Family2.view
                                                                   (Data.ProtoLens.Field.field
                                                                      @"vec'uris")
                                                                   _x))
                                                             ((Data.Monoid.<>)
                                                                (Data.Monoid.mconcat
                                                                   (Prelude.map
                                                                      (\ _v
                                                                         -> (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.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 ::
                                                                                          GetInfoResponse'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 GetInfoResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GetInfoResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_GetInfoResponse'version x__)
                (Control.DeepSeq.deepseq
                   (_GetInfoResponse'commitHash x__)
                   (Control.DeepSeq.deepseq
                      (_GetInfoResponse'identityPubkey x__)
                      (Control.DeepSeq.deepseq
                         (_GetInfoResponse'alias x__)
                         (Control.DeepSeq.deepseq
                            (_GetInfoResponse'color x__)
                            (Control.DeepSeq.deepseq
                               (_GetInfoResponse'numPendingChannels x__)
                               (Control.DeepSeq.deepseq
                                  (_GetInfoResponse'numActiveChannels x__)
                                  (Control.DeepSeq.deepseq
                                     (_GetInfoResponse'numInactiveChannels x__)
                                     (Control.DeepSeq.deepseq
                                        (_GetInfoResponse'numPeers x__)
                                        (Control.DeepSeq.deepseq
                                           (_GetInfoResponse'blockHeight x__)
                                           (Control.DeepSeq.deepseq
                                              (_GetInfoResponse'blockHash x__)
                                              (Control.DeepSeq.deepseq
                                                 (_GetInfoResponse'bestHeaderTimestamp x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_GetInfoResponse'syncedToChain x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_GetInfoResponse'syncedToGraph x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_GetInfoResponse'testnet x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_GetInfoResponse'chains x__)
                                                             (Control.DeepSeq.deepseq
                                                                (_GetInfoResponse'uris x__)
                                                                (Control.DeepSeq.deepseq
                                                                   (_GetInfoResponse'features x__)
                                                                   ()))))))))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' GetInfoResponse'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' GetInfoResponse'FeaturesEntry Feature@
         * 'Proto.LndGrpc_Fields.maybe'value' @:: Lens' GetInfoResponse'FeaturesEntry (Prelude.Maybe Feature)@ -}
data GetInfoResponse'FeaturesEntry
  = GetInfoResponse'FeaturesEntry'_constructor {_GetInfoResponse'FeaturesEntry'key :: !Data.Word.Word32,
                                                _GetInfoResponse'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                                _GetInfoResponse'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetInfoResponse'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField GetInfoResponse'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'FeaturesEntry'key
           (\ x__ y__ -> x__ {_GetInfoResponse'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetInfoResponse'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'FeaturesEntry'value
           (\ x__ y__ -> x__ {_GetInfoResponse'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField GetInfoResponse'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetInfoResponse'FeaturesEntry'value
           (\ x__ y__ -> x__ {_GetInfoResponse'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message GetInfoResponse'FeaturesEntry where
  messageName _
    = Data.Text.pack "lnrpc.GetInfoResponse.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 GetInfoResponse'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 GetInfoResponse'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetInfoResponse'FeaturesEntry'_unknownFields
        (\ x__ y__
           -> x__ {_GetInfoResponse'FeaturesEntry'_unknownFields = y__})
  defMessage
    = GetInfoResponse'FeaturesEntry'_constructor
        {_GetInfoResponse'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _GetInfoResponse'FeaturesEntry'value = Prelude.Nothing,
         _GetInfoResponse'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetInfoResponse'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser GetInfoResponse'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 GetInfoResponse'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GetInfoResponse'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_GetInfoResponse'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_GetInfoResponse'FeaturesEntry'value x__) ()))
{- | Fields :
      -}
data GetRecoveryInfoRequest
  = GetRecoveryInfoRequest'_constructor {_GetRecoveryInfoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetRecoveryInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message GetRecoveryInfoRequest where
  messageName _ = Data.Text.pack "lnrpc.GetRecoveryInfoRequest"
  packedMessageDescriptor _
    = "\n\
      \\SYNGetRecoveryInfoRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetRecoveryInfoRequest'_unknownFields
        (\ x__ y__ -> x__ {_GetRecoveryInfoRequest'_unknownFields = y__})
  defMessage
    = GetRecoveryInfoRequest'_constructor
        {_GetRecoveryInfoRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetRecoveryInfoRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser GetRecoveryInfoRequest
        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) "GetRecoveryInfoRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData GetRecoveryInfoRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GetRecoveryInfoRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.recoveryMode' @:: Lens' GetRecoveryInfoResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.recoveryFinished' @:: Lens' GetRecoveryInfoResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.progress' @:: Lens' GetRecoveryInfoResponse Prelude.Double@ -}
data GetRecoveryInfoResponse
  = GetRecoveryInfoResponse'_constructor {_GetRecoveryInfoResponse'recoveryMode :: !Prelude.Bool,
                                          _GetRecoveryInfoResponse'recoveryFinished :: !Prelude.Bool,
                                          _GetRecoveryInfoResponse'progress :: !Prelude.Double,
                                          _GetRecoveryInfoResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetRecoveryInfoResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField GetRecoveryInfoResponse "recoveryMode" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetRecoveryInfoResponse'recoveryMode
           (\ x__ y__ -> x__ {_GetRecoveryInfoResponse'recoveryMode = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetRecoveryInfoResponse "recoveryFinished" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetRecoveryInfoResponse'recoveryFinished
           (\ x__ y__
              -> x__ {_GetRecoveryInfoResponse'recoveryFinished = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetRecoveryInfoResponse "progress" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetRecoveryInfoResponse'progress
           (\ x__ y__ -> x__ {_GetRecoveryInfoResponse'progress = y__}))
        Prelude.id
instance Data.ProtoLens.Message GetRecoveryInfoResponse where
  messageName _ = Data.Text.pack "lnrpc.GetRecoveryInfoResponse"
  packedMessageDescriptor _
    = "\n\
      \\ETBGetRecoveryInfoResponse\DC2#\n\
      \\rrecovery_mode\CAN\SOH \SOH(\bR\frecoveryMode\DC2+\n\
      \\DC1recovery_finished\CAN\STX \SOH(\bR\DLErecoveryFinished\DC2\SUB\n\
      \\bprogress\CAN\ETX \SOH(\SOHR\bprogress"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        recoveryMode__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "recovery_mode"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"recoveryMode")) ::
              Data.ProtoLens.FieldDescriptor GetRecoveryInfoResponse
        recoveryFinished__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "recovery_finished"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"recoveryFinished")) ::
              Data.ProtoLens.FieldDescriptor GetRecoveryInfoResponse
        progress__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "progress"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"progress")) ::
              Data.ProtoLens.FieldDescriptor GetRecoveryInfoResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, recoveryMode__field_descriptor),
           (Data.ProtoLens.Tag 2, recoveryFinished__field_descriptor),
           (Data.ProtoLens.Tag 3, progress__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetRecoveryInfoResponse'_unknownFields
        (\ x__ y__ -> x__ {_GetRecoveryInfoResponse'_unknownFields = y__})
  defMessage
    = GetRecoveryInfoResponse'_constructor
        {_GetRecoveryInfoResponse'recoveryMode = Data.ProtoLens.fieldDefault,
         _GetRecoveryInfoResponse'recoveryFinished = Data.ProtoLens.fieldDefault,
         _GetRecoveryInfoResponse'progress = Data.ProtoLens.fieldDefault,
         _GetRecoveryInfoResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetRecoveryInfoResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser GetRecoveryInfoResponse
        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)
                                       "recovery_mode"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"recoveryMode") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "recovery_finished"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"recoveryFinished") y x)
                        25
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "progress"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"progress") 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) "GetRecoveryInfoResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"recoveryMode") _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 @"recoveryFinished") _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.Monoid.<>)
                   (let
                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"progress") _x
                    in
                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                          Data.Monoid.mempty
                      else
                          (Data.Monoid.<>)
                            (Data.ProtoLens.Encoding.Bytes.putVarInt 25)
                            ((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 GetRecoveryInfoResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GetRecoveryInfoResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_GetRecoveryInfoResponse'recoveryMode x__)
                (Control.DeepSeq.deepseq
                   (_GetRecoveryInfoResponse'recoveryFinished x__)
                   (Control.DeepSeq.deepseq
                      (_GetRecoveryInfoResponse'progress x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.startHeight' @:: Lens' GetTransactionsRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.endHeight' @:: Lens' GetTransactionsRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.account' @:: Lens' GetTransactionsRequest Data.Text.Text@ -}
data GetTransactionsRequest
  = GetTransactionsRequest'_constructor {_GetTransactionsRequest'startHeight :: !Data.Int.Int32,
                                         _GetTransactionsRequest'endHeight :: !Data.Int.Int32,
                                         _GetTransactionsRequest'account :: !Data.Text.Text,
                                         _GetTransactionsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GetTransactionsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField GetTransactionsRequest "startHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetTransactionsRequest'startHeight
           (\ x__ y__ -> x__ {_GetTransactionsRequest'startHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetTransactionsRequest "endHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetTransactionsRequest'endHeight
           (\ x__ y__ -> x__ {_GetTransactionsRequest'endHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField GetTransactionsRequest "account" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _GetTransactionsRequest'account
           (\ x__ y__ -> x__ {_GetTransactionsRequest'account = y__}))
        Prelude.id
instance Data.ProtoLens.Message GetTransactionsRequest where
  messageName _ = Data.Text.pack "lnrpc.GetTransactionsRequest"
  packedMessageDescriptor _
    = "\n\
      \\SYNGetTransactionsRequest\DC2!\n\
      \\fstart_height\CAN\SOH \SOH(\ENQR\vstartHeight\DC2\GS\n\
      \\n\
      \end_height\CAN\STX \SOH(\ENQR\tendHeight\DC2\CAN\n\
      \\aaccount\CAN\ETX \SOH(\tR\aaccount"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        startHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "start_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"startHeight")) ::
              Data.ProtoLens.FieldDescriptor GetTransactionsRequest
        endHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "end_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"endHeight")) ::
              Data.ProtoLens.FieldDescriptor GetTransactionsRequest
        account__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "account"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"account")) ::
              Data.ProtoLens.FieldDescriptor GetTransactionsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, startHeight__field_descriptor),
           (Data.ProtoLens.Tag 2, endHeight__field_descriptor),
           (Data.ProtoLens.Tag 3, account__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _GetTransactionsRequest'_unknownFields
        (\ x__ y__ -> x__ {_GetTransactionsRequest'_unknownFields = y__})
  defMessage
    = GetTransactionsRequest'_constructor
        {_GetTransactionsRequest'startHeight = Data.ProtoLens.fieldDefault,
         _GetTransactionsRequest'endHeight = Data.ProtoLens.fieldDefault,
         _GetTransactionsRequest'account = Data.ProtoLens.fieldDefault,
         _GetTransactionsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          GetTransactionsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser GetTransactionsRequest
        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)
                                       "start_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"startHeight") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "end_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"endHeight") 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))
                                       "account"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"account") 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) "GetTransactionsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"startHeight") _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 @"endHeight") _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 @"account") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData GetTransactionsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_GetTransactionsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_GetTransactionsRequest'startHeight x__)
                (Control.DeepSeq.deepseq
                   (_GetTransactionsRequest'endHeight x__)
                   (Control.DeepSeq.deepseq
                      (_GetTransactionsRequest'account x__) ())))
{- | Fields :
      -}
data GraphTopologySubscription
  = GraphTopologySubscription'_constructor {_GraphTopologySubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show GraphTopologySubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.nodeUpdates' @:: Lens' GraphTopologyUpdate [NodeUpdate]@
         * 'Proto.LndGrpc_Fields.vec'nodeUpdates' @:: Lens' GraphTopologyUpdate (Data.Vector.Vector NodeUpdate)@
         * 'Proto.LndGrpc_Fields.channelUpdates' @:: Lens' GraphTopologyUpdate [ChannelEdgeUpdate]@
         * 'Proto.LndGrpc_Fields.vec'channelUpdates' @:: Lens' GraphTopologyUpdate (Data.Vector.Vector ChannelEdgeUpdate)@
         * 'Proto.LndGrpc_Fields.closedChans' @:: Lens' GraphTopologyUpdate [ClosedChannelUpdate]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show GraphTopologyUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.incoming' @:: Lens' HTLC Prelude.Bool@
         * 'Proto.LndGrpc_Fields.amount' @:: Lens' HTLC Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.hashLock' @:: Lens' HTLC Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.expirationHeight' @:: Lens' HTLC Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.htlcIndex' @:: Lens' HTLC Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.forwardingChannel' @:: Lens' HTLC Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show HTLC where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.attemptId' @:: Lens' HTLCAttempt Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.status' @:: Lens' HTLCAttempt HTLCAttempt'HTLCStatus@
         * 'Proto.LndGrpc_Fields.route' @:: Lens' HTLCAttempt Route@
         * 'Proto.LndGrpc_Fields.maybe'route' @:: Lens' HTLCAttempt (Prelude.Maybe Route)@
         * 'Proto.LndGrpc_Fields.attemptTimeNs' @:: Lens' HTLCAttempt Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.resolveTimeNs' @:: Lens' HTLCAttempt Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.failure' @:: Lens' HTLCAttempt Failure@
         * 'Proto.LndGrpc_Fields.maybe'failure' @:: Lens' HTLCAttempt (Prelude.Maybe Failure)@
         * 'Proto.LndGrpc_Fields.preimage' @:: Lens' HTLCAttempt Data.ByteString.ByteString@ -}
data HTLCAttempt
  = HTLCAttempt'_constructor {_HTLCAttempt'attemptId :: !Data.Word.Word64,
                              _HTLCAttempt'status :: !HTLCAttempt'HTLCStatus,
                              _HTLCAttempt'route :: !(Prelude.Maybe Route),
                              _HTLCAttempt'attemptTimeNs :: !Data.Int.Int64,
                              _HTLCAttempt'resolveTimeNs :: !Data.Int.Int64,
                              _HTLCAttempt'failure :: !(Prelude.Maybe Failure),
                              _HTLCAttempt'preimage :: !Data.ByteString.ByteString,
                              _HTLCAttempt'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show HTLCAttempt where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField HTLCAttempt "attemptId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'attemptId
           (\ x__ y__ -> x__ {_HTLCAttempt'attemptId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "status" HTLCAttempt'HTLCStatus where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'status (\ x__ y__ -> x__ {_HTLCAttempt'status = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "route" Route where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'route (\ x__ y__ -> x__ {_HTLCAttempt'route = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField HTLCAttempt "maybe'route" (Prelude.Maybe Route) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'route (\ x__ y__ -> x__ {_HTLCAttempt'route = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "attemptTimeNs" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'attemptTimeNs
           (\ x__ y__ -> x__ {_HTLCAttempt'attemptTimeNs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "resolveTimeNs" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'resolveTimeNs
           (\ x__ y__ -> x__ {_HTLCAttempt'resolveTimeNs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "failure" Failure where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'failure
           (\ x__ y__ -> x__ {_HTLCAttempt'failure = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField HTLCAttempt "maybe'failure" (Prelude.Maybe Failure) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'failure
           (\ x__ y__ -> x__ {_HTLCAttempt'failure = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField HTLCAttempt "preimage" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _HTLCAttempt'preimage
           (\ x__ y__ -> x__ {_HTLCAttempt'preimage = y__}))
        Prelude.id
instance Data.ProtoLens.Message HTLCAttempt where
  messageName _ = Data.Text.pack "lnrpc.HTLCAttempt"
  packedMessageDescriptor _
    = "\n\
      \\vHTLCAttempt\DC2\GS\n\
      \\n\
      \attempt_id\CAN\a \SOH(\EOTR\tattemptId\DC25\n\
      \\ACKstatus\CAN\SOH \SOH(\SO2\GS.lnrpc.HTLCAttempt.HTLCStatusR\ACKstatus\DC2\"\n\
      \\ENQroute\CAN\STX \SOH(\v2\f.lnrpc.RouteR\ENQroute\DC2&\n\
      \\SIattempt_time_ns\CAN\ETX \SOH(\ETXR\rattemptTimeNs\DC2&\n\
      \\SIresolve_time_ns\CAN\EOT \SOH(\ETXR\rresolveTimeNs\DC2(\n\
      \\afailure\CAN\ENQ \SOH(\v2\SO.lnrpc.FailureR\afailure\DC2\SUB\n\
      \\bpreimage\CAN\ACK \SOH(\fR\bpreimage\"6\n\
      \\n\
      \HTLCStatus\DC2\r\n\
      \\tIN_FLIGHT\DLE\NUL\DC2\r\n\
      \\tSUCCEEDED\DLE\SOH\DC2\n\
      \\n\
      \\ACKFAILED\DLE\STX"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        attemptId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "attempt_id"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"attemptId")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        status__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "status"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor HTLCAttempt'HTLCStatus)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"status")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        route__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "route"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Route)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'route")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        attemptTimeNs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "attempt_time_ns"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"attemptTimeNs")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        resolveTimeNs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "resolve_time_ns"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"resolveTimeNs")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        failure__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "failure"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Failure)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'failure")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
        preimage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "preimage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"preimage")) ::
              Data.ProtoLens.FieldDescriptor HTLCAttempt
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 7, attemptId__field_descriptor),
           (Data.ProtoLens.Tag 1, status__field_descriptor),
           (Data.ProtoLens.Tag 2, route__field_descriptor),
           (Data.ProtoLens.Tag 3, attemptTimeNs__field_descriptor),
           (Data.ProtoLens.Tag 4, resolveTimeNs__field_descriptor),
           (Data.ProtoLens.Tag 5, failure__field_descriptor),
           (Data.ProtoLens.Tag 6, preimage__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _HTLCAttempt'_unknownFields
        (\ x__ y__ -> x__ {_HTLCAttempt'_unknownFields = y__})
  defMessage
    = HTLCAttempt'_constructor
        {_HTLCAttempt'attemptId = Data.ProtoLens.fieldDefault,
         _HTLCAttempt'status = Data.ProtoLens.fieldDefault,
         _HTLCAttempt'route = Prelude.Nothing,
         _HTLCAttempt'attemptTimeNs = Data.ProtoLens.fieldDefault,
         _HTLCAttempt'resolveTimeNs = Data.ProtoLens.fieldDefault,
         _HTLCAttempt'failure = Prelude.Nothing,
         _HTLCAttempt'preimage = Data.ProtoLens.fieldDefault,
         _HTLCAttempt'_unknownFields = []}
  parseMessage
    = let
        loop ::
          HTLCAttempt -> Data.ProtoLens.Encoding.Bytes.Parser HTLCAttempt
        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
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "attempt_id"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"attemptId") y x)
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "status"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"status") 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)
                                       "route"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"route") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "attempt_time_ns"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"attemptTimeNs") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "resolve_time_ns"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"resolveTimeNs") 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)
                                       "failure"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"failure") y x)
                        50
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "preimage"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"preimage") 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) "HTLCAttempt"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"attemptId") _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.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"status") _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.<>)
                   (case
                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'route") _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 @"attemptTimeNs") _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 @"resolveTimeNs") _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'failure") _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.<>)
                               (let
                                  _v = Lens.Family2.view (Data.ProtoLens.Field.field @"preimage") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (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))
                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
instance Control.DeepSeq.NFData HTLCAttempt where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_HTLCAttempt'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_HTLCAttempt'attemptId x__)
                (Control.DeepSeq.deepseq
                   (_HTLCAttempt'status x__)
                   (Control.DeepSeq.deepseq
                      (_HTLCAttempt'route x__)
                      (Control.DeepSeq.deepseq
                         (_HTLCAttempt'attemptTimeNs x__)
                         (Control.DeepSeq.deepseq
                            (_HTLCAttempt'resolveTimeNs x__)
                            (Control.DeepSeq.deepseq
                               (_HTLCAttempt'failure x__)
                               (Control.DeepSeq.deepseq (_HTLCAttempt'preimage x__) ())))))))
newtype HTLCAttempt'HTLCStatus'UnrecognizedValue
  = HTLCAttempt'HTLCStatus'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data HTLCAttempt'HTLCStatus
  = HTLCAttempt'IN_FLIGHT |
    HTLCAttempt'SUCCEEDED |
    HTLCAttempt'FAILED |
    HTLCAttempt'HTLCStatus'Unrecognized !HTLCAttempt'HTLCStatus'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum HTLCAttempt'HTLCStatus where
  maybeToEnum 0 = Prelude.Just HTLCAttempt'IN_FLIGHT
  maybeToEnum 1 = Prelude.Just HTLCAttempt'SUCCEEDED
  maybeToEnum 2 = Prelude.Just HTLCAttempt'FAILED
  maybeToEnum k
    = Prelude.Just
        (HTLCAttempt'HTLCStatus'Unrecognized
           (HTLCAttempt'HTLCStatus'UnrecognizedValue
              (Prelude.fromIntegral k)))
  showEnum HTLCAttempt'IN_FLIGHT = "IN_FLIGHT"
  showEnum HTLCAttempt'SUCCEEDED = "SUCCEEDED"
  showEnum HTLCAttempt'FAILED = "FAILED"
  showEnum
    (HTLCAttempt'HTLCStatus'Unrecognized (HTLCAttempt'HTLCStatus'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "IN_FLIGHT" = Prelude.Just HTLCAttempt'IN_FLIGHT
    | (Prelude.==) k "SUCCEEDED" = Prelude.Just HTLCAttempt'SUCCEEDED
    | (Prelude.==) k "FAILED" = Prelude.Just HTLCAttempt'FAILED
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded HTLCAttempt'HTLCStatus where
  minBound = HTLCAttempt'IN_FLIGHT
  maxBound = HTLCAttempt'FAILED
instance Prelude.Enum HTLCAttempt'HTLCStatus where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum HTLCStatus: " (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum HTLCAttempt'IN_FLIGHT = 0
  fromEnum HTLCAttempt'SUCCEEDED = 1
  fromEnum HTLCAttempt'FAILED = 2
  fromEnum
    (HTLCAttempt'HTLCStatus'Unrecognized (HTLCAttempt'HTLCStatus'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ HTLCAttempt'FAILED
    = Prelude.error
        "HTLCAttempt'HTLCStatus.succ: bad argument HTLCAttempt'FAILED. This value would be out of bounds."
  succ HTLCAttempt'IN_FLIGHT = HTLCAttempt'SUCCEEDED
  succ HTLCAttempt'SUCCEEDED = HTLCAttempt'FAILED
  succ (HTLCAttempt'HTLCStatus'Unrecognized _)
    = Prelude.error
        "HTLCAttempt'HTLCStatus.succ: bad argument: unrecognized value"
  pred HTLCAttempt'IN_FLIGHT
    = Prelude.error
        "HTLCAttempt'HTLCStatus.pred: bad argument HTLCAttempt'IN_FLIGHT. This value would be out of bounds."
  pred HTLCAttempt'SUCCEEDED = HTLCAttempt'IN_FLIGHT
  pred HTLCAttempt'FAILED = HTLCAttempt'SUCCEEDED
  pred (HTLCAttempt'HTLCStatus'Unrecognized _)
    = Prelude.error
        "HTLCAttempt'HTLCStatus.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 HTLCAttempt'HTLCStatus where
  fieldDefault = HTLCAttempt'IN_FLIGHT
instance Control.DeepSeq.NFData HTLCAttempt'HTLCStatus where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' Hop Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.chanCapacity' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.amtToForward' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.fee' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.expiry' @:: Lens' Hop Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.amtToForwardMsat' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeMsat' @:: Lens' Hop Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pubKey' @:: Lens' Hop Data.Text.Text@
         * 'Proto.LndGrpc_Fields.tlvPayload' @:: Lens' Hop Prelude.Bool@
         * 'Proto.LndGrpc_Fields.mppRecord' @:: Lens' Hop MPPRecord@
         * 'Proto.LndGrpc_Fields.maybe'mppRecord' @:: Lens' Hop (Prelude.Maybe MPPRecord)@
         * 'Proto.LndGrpc_Fields.ampRecord' @:: Lens' Hop AMPRecord@
         * 'Proto.LndGrpc_Fields.maybe'ampRecord' @:: Lens' Hop (Prelude.Maybe AMPRecord)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Hop where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' Hop'CustomRecordsEntry Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Hop'CustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.nodeId' @:: Lens' HopHint Data.Text.Text@
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' HopHint Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.feeBaseMsat' @:: Lens' HopHint Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.feeProportionalMillionths' @:: Lens' HopHint Data.Word.Word32@
         * 'Proto.LndGrpc_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)
instance Prelude.Show HopHint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
data Initiator
  = INITIATOR_UNKNOWN |
    INITIATOR_LOCAL |
    INITIATOR_REMOTE |
    INITIATOR_BOTH |
    Initiator'Unrecognized !Initiator'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.memo' @:: Lens' Invoice Data.Text.Text@
         * 'Proto.LndGrpc_Fields.rPreimage' @:: Lens' Invoice Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.rHash' @:: Lens' Invoice Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.valueMsat' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.settled' @:: Lens' Invoice Prelude.Bool@
         * 'Proto.LndGrpc_Fields.creationDate' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.settleDate' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.paymentRequest' @:: Lens' Invoice Data.Text.Text@
         * 'Proto.LndGrpc_Fields.descriptionHash' @:: Lens' Invoice Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.expiry' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.fallbackAddr' @:: Lens' Invoice Data.Text.Text@
         * 'Proto.LndGrpc_Fields.cltvExpiry' @:: Lens' Invoice Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.routeHints' @:: Lens' Invoice [RouteHint]@
         * 'Proto.LndGrpc_Fields.vec'routeHints' @:: Lens' Invoice (Data.Vector.Vector RouteHint)@
         * 'Proto.LndGrpc_Fields.private' @:: Lens' Invoice Prelude.Bool@
         * 'Proto.LndGrpc_Fields.addIndex' @:: Lens' Invoice Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.settleIndex' @:: Lens' Invoice Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtPaid' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.amtPaidSat' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.amtPaidMsat' @:: Lens' Invoice Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.state' @:: Lens' Invoice Invoice'InvoiceState@
         * 'Proto.LndGrpc_Fields.htlcs' @:: Lens' Invoice [InvoiceHTLC]@
         * 'Proto.LndGrpc_Fields.vec'htlcs' @:: Lens' Invoice (Data.Vector.Vector InvoiceHTLC)@
         * 'Proto.LndGrpc_Fields.features' @:: Lens' Invoice (Data.Map.Map Data.Word.Word32 Feature)@
         * 'Proto.LndGrpc_Fields.isKeysend' @:: Lens' Invoice Prelude.Bool@
         * 'Proto.LndGrpc_Fields.paymentAddr' @:: Lens' Invoice Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.isAmp' @:: Lens' Invoice Prelude.Bool@ -}
data Invoice
  = Invoice'_constructor {_Invoice'memo :: !Data.Text.Text,
                          _Invoice'rPreimage :: !Data.ByteString.ByteString,
                          _Invoice'rHash :: !Data.ByteString.ByteString,
                          _Invoice'value :: !Data.Int.Int64,
                          _Invoice'valueMsat :: !Data.Int.Int64,
                          _Invoice'settled :: !Prelude.Bool,
                          _Invoice'creationDate :: !Data.Int.Int64,
                          _Invoice'settleDate :: !Data.Int.Int64,
                          _Invoice'paymentRequest :: !Data.Text.Text,
                          _Invoice'descriptionHash :: !Data.ByteString.ByteString,
                          _Invoice'expiry :: !Data.Int.Int64,
                          _Invoice'fallbackAddr :: !Data.Text.Text,
                          _Invoice'cltvExpiry :: !Data.Word.Word64,
                          _Invoice'routeHints :: !(Data.Vector.Vector RouteHint),
                          _Invoice'private :: !Prelude.Bool,
                          _Invoice'addIndex :: !Data.Word.Word64,
                          _Invoice'settleIndex :: !Data.Word.Word64,
                          _Invoice'amtPaid :: !Data.Int.Int64,
                          _Invoice'amtPaidSat :: !Data.Int.Int64,
                          _Invoice'amtPaidMsat :: !Data.Int.Int64,
                          _Invoice'state :: !Invoice'InvoiceState,
                          _Invoice'htlcs :: !(Data.Vector.Vector InvoiceHTLC),
                          _Invoice'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                          _Invoice'isKeysend :: !Prelude.Bool,
                          _Invoice'paymentAddr :: !Data.ByteString.ByteString,
                          _Invoice'isAmp :: !Prelude.Bool,
                          _Invoice'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Invoice where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Invoice "memo" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'memo (\ x__ y__ -> x__ {_Invoice'memo = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "rPreimage" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'rPreimage (\ x__ y__ -> x__ {_Invoice'rPreimage = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "rHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'rHash (\ x__ y__ -> x__ {_Invoice'rHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "value" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'value (\ x__ y__ -> x__ {_Invoice'value = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "valueMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'valueMsat (\ x__ y__ -> x__ {_Invoice'valueMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "settled" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'settled (\ x__ y__ -> x__ {_Invoice'settled = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "creationDate" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'creationDate
           (\ x__ y__ -> x__ {_Invoice'creationDate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "settleDate" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'settleDate (\ x__ y__ -> x__ {_Invoice'settleDate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "paymentRequest" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'paymentRequest
           (\ x__ y__ -> x__ {_Invoice'paymentRequest = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "descriptionHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'descriptionHash
           (\ x__ y__ -> x__ {_Invoice'descriptionHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "expiry" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'expiry (\ x__ y__ -> x__ {_Invoice'expiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "fallbackAddr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'fallbackAddr
           (\ x__ y__ -> x__ {_Invoice'fallbackAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "cltvExpiry" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'cltvExpiry (\ x__ y__ -> x__ {_Invoice'cltvExpiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "routeHints" [RouteHint] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'routeHints (\ x__ y__ -> x__ {_Invoice'routeHints = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Invoice "vec'routeHints" (Data.Vector.Vector RouteHint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'routeHints (\ x__ y__ -> x__ {_Invoice'routeHints = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "private" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'private (\ x__ y__ -> x__ {_Invoice'private = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "addIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'addIndex (\ x__ y__ -> x__ {_Invoice'addIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "settleIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'settleIndex
           (\ x__ y__ -> x__ {_Invoice'settleIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "amtPaid" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'amtPaid (\ x__ y__ -> x__ {_Invoice'amtPaid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "amtPaidSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'amtPaidSat (\ x__ y__ -> x__ {_Invoice'amtPaidSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "amtPaidMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'amtPaidMsat
           (\ x__ y__ -> x__ {_Invoice'amtPaidMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "state" Invoice'InvoiceState where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'state (\ x__ y__ -> x__ {_Invoice'state = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "htlcs" [InvoiceHTLC] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'htlcs (\ x__ y__ -> x__ {_Invoice'htlcs = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Invoice "vec'htlcs" (Data.Vector.Vector InvoiceHTLC) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'htlcs (\ x__ y__ -> x__ {_Invoice'htlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'features (\ x__ y__ -> x__ {_Invoice'features = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "isKeysend" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'isKeysend (\ x__ y__ -> x__ {_Invoice'isKeysend = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "paymentAddr" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'paymentAddr
           (\ x__ y__ -> x__ {_Invoice'paymentAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice "isAmp" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'isAmp (\ x__ y__ -> x__ {_Invoice'isAmp = y__}))
        Prelude.id
instance Data.ProtoLens.Message Invoice where
  messageName _ = Data.Text.pack "lnrpc.Invoice"
  packedMessageDescriptor _
    = "\n\
      \\aInvoice\DC2\DC2\n\
      \\EOTmemo\CAN\SOH \SOH(\tR\EOTmemo\DC2\GS\n\
      \\n\
      \r_preimage\CAN\ETX \SOH(\fR\trPreimage\DC2\NAK\n\
      \\ACKr_hash\CAN\EOT \SOH(\fR\ENQrHash\DC2\DC4\n\
      \\ENQvalue\CAN\ENQ \SOH(\ETXR\ENQvalue\DC2\GS\n\
      \\n\
      \value_msat\CAN\ETB \SOH(\ETXR\tvalueMsat\DC2\FS\n\
      \\asettled\CAN\ACK \SOH(\bR\asettledB\STX\CAN\SOH\DC2#\n\
      \\rcreation_date\CAN\a \SOH(\ETXR\fcreationDate\DC2\US\n\
      \\vsettle_date\CAN\b \SOH(\ETXR\n\
      \settleDate\DC2'\n\
      \\SIpayment_request\CAN\t \SOH(\tR\SOpaymentRequest\DC2)\n\
      \\DLEdescription_hash\CAN\n\
      \ \SOH(\fR\SIdescriptionHash\DC2\SYN\n\
      \\ACKexpiry\CAN\v \SOH(\ETXR\ACKexpiry\DC2#\n\
      \\rfallback_addr\CAN\f \SOH(\tR\ffallbackAddr\DC2\US\n\
      \\vcltv_expiry\CAN\r \SOH(\EOTR\n\
      \cltvExpiry\DC21\n\
      \\vroute_hints\CAN\SO \ETX(\v2\DLE.lnrpc.RouteHintR\n\
      \routeHints\DC2\CAN\n\
      \\aprivate\CAN\SI \SOH(\bR\aprivate\DC2\ESC\n\
      \\tadd_index\CAN\DLE \SOH(\EOTR\baddIndex\DC2!\n\
      \\fsettle_index\CAN\DC1 \SOH(\EOTR\vsettleIndex\DC2\GS\n\
      \\bamt_paid\CAN\DC2 \SOH(\ETXR\aamtPaidB\STX\CAN\SOH\DC2 \n\
      \\famt_paid_sat\CAN\DC3 \SOH(\ETXR\n\
      \amtPaidSat\DC2\"\n\
      \\ramt_paid_msat\CAN\DC4 \SOH(\ETXR\vamtPaidMsat\DC21\n\
      \\ENQstate\CAN\NAK \SOH(\SO2\ESC.lnrpc.Invoice.InvoiceStateR\ENQstate\DC2(\n\
      \\ENQhtlcs\CAN\SYN \ETX(\v2\DC2.lnrpc.InvoiceHTLCR\ENQhtlcs\DC28\n\
      \\bfeatures\CAN\CAN \ETX(\v2\FS.lnrpc.Invoice.FeaturesEntryR\bfeatures\DC2\GS\n\
      \\n\
      \is_keysend\CAN\EM \SOH(\bR\tisKeysend\DC2!\n\
      \\fpayment_addr\CAN\SUB \SOH(\fR\vpaymentAddr\DC2\NAK\n\
      \\ACKis_amp\CAN\ESC \SOH(\bR\ENQisAmp\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\"A\n\
      \\fInvoiceState\DC2\b\n\
      \\EOTOPEN\DLE\NUL\DC2\v\n\
      \\aSETTLED\DLE\SOH\DC2\f\n\
      \\bCANCELED\DLE\STX\DC2\f\n\
      \\bACCEPTED\DLE\ETXJ\EOT\b\STX\DLE\ETX"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        memo__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "memo"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"memo")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        rPreimage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "r_preimage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rPreimage")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        rHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "r_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"rHash")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        valueMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"valueMsat")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        settled__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "settled"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"settled")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        creationDate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "creation_date"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"creationDate")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        settleDate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "settle_date"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"settleDate")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        paymentRequest__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_request"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentRequest")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        descriptionHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "description_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"descriptionHash")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        expiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"expiry")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        fallbackAddr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fallback_addr"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fallbackAddr")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        cltvExpiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cltv_expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cltvExpiry")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        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 Invoice
        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 Invoice
        addIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "add_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"addIndex")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        settleIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "settle_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"settleIndex")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        amtPaid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_paid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amtPaid")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        amtPaidSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_paid_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtPaidSat")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        amtPaidMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_paid_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amtPaidMsat")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        state__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "state"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Invoice'InvoiceState)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"state")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        htlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlcs"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor InvoiceHTLC)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"htlcs")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Invoice'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        isKeysend__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "is_keysend"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"isKeysend")) ::
              Data.ProtoLens.FieldDescriptor Invoice
        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 Invoice
        isAmp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "is_amp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"isAmp")) ::
              Data.ProtoLens.FieldDescriptor Invoice
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, memo__field_descriptor),
           (Data.ProtoLens.Tag 3, rPreimage__field_descriptor),
           (Data.ProtoLens.Tag 4, rHash__field_descriptor),
           (Data.ProtoLens.Tag 5, value__field_descriptor),
           (Data.ProtoLens.Tag 23, valueMsat__field_descriptor),
           (Data.ProtoLens.Tag 6, settled__field_descriptor),
           (Data.ProtoLens.Tag 7, creationDate__field_descriptor),
           (Data.ProtoLens.Tag 8, settleDate__field_descriptor),
           (Data.ProtoLens.Tag 9, paymentRequest__field_descriptor),
           (Data.ProtoLens.Tag 10, descriptionHash__field_descriptor),
           (Data.ProtoLens.Tag 11, expiry__field_descriptor),
           (Data.ProtoLens.Tag 12, fallbackAddr__field_descriptor),
           (Data.ProtoLens.Tag 13, cltvExpiry__field_descriptor),
           (Data.ProtoLens.Tag 14, routeHints__field_descriptor),
           (Data.ProtoLens.Tag 15, private__field_descriptor),
           (Data.ProtoLens.Tag 16, addIndex__field_descriptor),
           (Data.ProtoLens.Tag 17, settleIndex__field_descriptor),
           (Data.ProtoLens.Tag 18, amtPaid__field_descriptor),
           (Data.ProtoLens.Tag 19, amtPaidSat__field_descriptor),
           (Data.ProtoLens.Tag 20, amtPaidMsat__field_descriptor),
           (Data.ProtoLens.Tag 21, state__field_descriptor),
           (Data.ProtoLens.Tag 22, htlcs__field_descriptor),
           (Data.ProtoLens.Tag 24, features__field_descriptor),
           (Data.ProtoLens.Tag 25, isKeysend__field_descriptor),
           (Data.ProtoLens.Tag 26, paymentAddr__field_descriptor),
           (Data.ProtoLens.Tag 27, isAmp__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Invoice'_unknownFields
        (\ x__ y__ -> x__ {_Invoice'_unknownFields = y__})
  defMessage
    = Invoice'_constructor
        {_Invoice'memo = Data.ProtoLens.fieldDefault,
         _Invoice'rPreimage = Data.ProtoLens.fieldDefault,
         _Invoice'rHash = Data.ProtoLens.fieldDefault,
         _Invoice'value = Data.ProtoLens.fieldDefault,
         _Invoice'valueMsat = Data.ProtoLens.fieldDefault,
         _Invoice'settled = Data.ProtoLens.fieldDefault,
         _Invoice'creationDate = Data.ProtoLens.fieldDefault,
         _Invoice'settleDate = Data.ProtoLens.fieldDefault,
         _Invoice'paymentRequest = Data.ProtoLens.fieldDefault,
         _Invoice'descriptionHash = Data.ProtoLens.fieldDefault,
         _Invoice'expiry = Data.ProtoLens.fieldDefault,
         _Invoice'fallbackAddr = Data.ProtoLens.fieldDefault,
         _Invoice'cltvExpiry = Data.ProtoLens.fieldDefault,
         _Invoice'routeHints = Data.Vector.Generic.empty,
         _Invoice'private = Data.ProtoLens.fieldDefault,
         _Invoice'addIndex = Data.ProtoLens.fieldDefault,
         _Invoice'settleIndex = Data.ProtoLens.fieldDefault,
         _Invoice'amtPaid = Data.ProtoLens.fieldDefault,
         _Invoice'amtPaidSat = Data.ProtoLens.fieldDefault,
         _Invoice'amtPaidMsat = Data.ProtoLens.fieldDefault,
         _Invoice'state = Data.ProtoLens.fieldDefault,
         _Invoice'htlcs = Data.Vector.Generic.empty,
         _Invoice'features = Data.Map.empty,
         _Invoice'isKeysend = Data.ProtoLens.fieldDefault,
         _Invoice'paymentAddr = Data.ProtoLens.fieldDefault,
         _Invoice'isAmp = Data.ProtoLens.fieldDefault,
         _Invoice'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Invoice
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld InvoiceHTLC
             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld RouteHint
                -> Data.ProtoLens.Encoding.Bytes.Parser Invoice
        loop x mutable'htlcs mutable'routeHints
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'htlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'htlcs)
                      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'htlcs")
                              frozen'htlcs
                              (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))
                                       "memo"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"memo") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "r_preimage"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rPreimage") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "r_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rHash") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "value"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        184
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "value_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"valueMsat") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "settled"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"settled") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "creation_date"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"creationDate") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "settle_date"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"settleDate") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        74
                          -> 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))
                                       "payment_request"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentRequest") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        82
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "description_hash"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"descriptionHash") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        88
                          -> 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)
                                  mutable'htlcs
                                  mutable'routeHints
                        98
                          -> 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))
                                       "fallback_addr"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fallbackAddr") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "cltv_expiry"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cltvExpiry") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        114
                          -> 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'htlcs v
                        120
                          -> 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'htlcs
                                  mutable'routeHints
                        128
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "add_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"addIndex") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        136
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "settle_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"settleIndex") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        144
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_paid"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtPaid") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        152
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_paid_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtPaidSat") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        160
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amt_paid_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amtPaidMsat") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        168
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "state"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"state") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        178
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "htlcs"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'htlcs y)
                                loop x v mutable'routeHints
                        194
                          -> do !(entry :: Invoice'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'htlcs
                                     mutable'routeHints)
                        200
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "is_keysend"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isKeysend") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        210
                          -> 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)
                                  mutable'htlcs
                                  mutable'routeHints
                        216
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "is_amp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isAmp") y x)
                                  mutable'htlcs
                                  mutable'routeHints
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'htlcs
                                  mutable'routeHints
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'htlcs <- 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'htlcs mutable'routeHints)
          "Invoice"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"memo") _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 @"rPreimage") _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 @"rHash") _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 @"value") _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 @"valueMsat") _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 @"settled") _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
                                        (\ b -> if b then 1 else 0)
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"creationDate") _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 @"settleDate") _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 @"paymentRequest") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 74)
                                              ((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 @"descriptionHash") _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 82)
                                                 ((\ 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 @"expiry") _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 @"fallbackAddr")
                                                       _x
                                               in
                                                 if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                                     Data.Monoid.mempty
                                                 else
                                                     (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.Text.Encoding.encodeUtf8
                                                          _v))
                                              ((Data.Monoid.<>)
                                                 (let
                                                    _v
                                                      = Lens.Family2.view
                                                          (Data.ProtoLens.Field.field @"cltvExpiry")
                                                          _x
                                                  in
                                                    if (Prelude.==)
                                                         _v Data.ProtoLens.fieldDefault then
                                                        Data.Monoid.mempty
                                                    else
                                                        (Data.Monoid.<>)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             104)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             _v))
                                                 ((Data.Monoid.<>)
                                                    (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                       (\ _v
                                                          -> (Data.Monoid.<>)
                                                               (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                  114)
                                                               ((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
                                                          _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
                                                                   120)
                                                                ((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
                                                                      @"addIndex")
                                                                   _x
                                                           in
                                                             if (Prelude.==)
                                                                  _v
                                                                  Data.ProtoLens.fieldDefault then
                                                                 Data.Monoid.mempty
                                                             else
                                                                 (Data.Monoid.<>)
                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                      128)
                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                      _v))
                                                          ((Data.Monoid.<>)
                                                             (let
                                                                _v
                                                                  = Lens.Family2.view
                                                                      (Data.ProtoLens.Field.field
                                                                         @"settleIndex")
                                                                      _x
                                                              in
                                                                if (Prelude.==)
                                                                     _v
                                                                     Data.ProtoLens.fieldDefault then
                                                                    Data.Monoid.mempty
                                                                else
                                                                    (Data.Monoid.<>)
                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                         136)
                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                         _v))
                                                             ((Data.Monoid.<>)
                                                                (let
                                                                   _v
                                                                     = Lens.Family2.view
                                                                         (Data.ProtoLens.Field.field
                                                                            @"amtPaid")
                                                                         _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
                                                                            Prelude.fromIntegral
                                                                            _v))
                                                                ((Data.Monoid.<>)
                                                                   (let
                                                                      _v
                                                                        = Lens.Family2.view
                                                                            (Data.ProtoLens.Field.field
                                                                               @"amtPaidSat")
                                                                            _x
                                                                    in
                                                                      if (Prelude.==)
                                                                           _v
                                                                           Data.ProtoLens.fieldDefault then
                                                                          Data.Monoid.mempty
                                                                      else
                                                                          (Data.Monoid.<>)
                                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                               152)
                                                                            ((Prelude..)
                                                                               Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                               Prelude.fromIntegral
                                                                               _v))
                                                                   ((Data.Monoid.<>)
                                                                      (let
                                                                         _v
                                                                           = Lens.Family2.view
                                                                               (Data.ProtoLens.Field.field
                                                                                  @"amtPaidMsat")
                                                                               _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
                                                                                     @"state")
                                                                                  _x
                                                                          in
                                                                            if (Prelude.==)
                                                                                 _v
                                                                                 Data.ProtoLens.fieldDefault then
                                                                                Data.Monoid.mempty
                                                                            else
                                                                                (Data.Monoid.<>)
                                                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                     168)
                                                                                  ((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
                                                                                          178)
                                                                                       ((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'htlcs")
                                                                                  _x))
                                                                            ((Data.Monoid.<>)
                                                                               (Data.Monoid.mconcat
                                                                                  (Prelude.map
                                                                                     (\ _v
                                                                                        -> (Data.Monoid.<>)
                                                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                194)
                                                                                             ((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 ::
                                                                                                         Invoice'FeaturesEntry)))))
                                                                                     (Data.Map.toList
                                                                                        (Lens.Family2.view
                                                                                           (Data.ProtoLens.Field.field
                                                                                              @"features")
                                                                                           _x))))
                                                                               ((Data.Monoid.<>)
                                                                                  (let
                                                                                     _v
                                                                                       = Lens.Family2.view
                                                                                           (Data.ProtoLens.Field.field
                                                                                              @"isKeysend")
                                                                                           _x
                                                                                   in
                                                                                     if (Prelude.==)
                                                                                          _v
                                                                                          Data.ProtoLens.fieldDefault then
                                                                                         Data.Monoid.mempty
                                                                                     else
                                                                                         (Data.Monoid.<>)
                                                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                              200)
                                                                                           ((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
                                                                                                 @"paymentAddr")
                                                                                              _x
                                                                                      in
                                                                                        if (Prelude.==)
                                                                                             _v
                                                                                             Data.ProtoLens.fieldDefault then
                                                                                            Data.Monoid.mempty
                                                                                        else
                                                                                            (Data.Monoid.<>)
                                                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                 210)
                                                                                              ((\ 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
                                                                                                    @"isAmp")
                                                                                                 _x
                                                                                         in
                                                                                           if (Prelude.==)
                                                                                                _v
                                                                                                Data.ProtoLens.fieldDefault then
                                                                                               Data.Monoid.mempty
                                                                                           else
                                                                                               (Data.Monoid.<>)
                                                                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                                                    216)
                                                                                                 ((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 Invoice where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Invoice'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Invoice'memo x__)
                (Control.DeepSeq.deepseq
                   (_Invoice'rPreimage x__)
                   (Control.DeepSeq.deepseq
                      (_Invoice'rHash x__)
                      (Control.DeepSeq.deepseq
                         (_Invoice'value x__)
                         (Control.DeepSeq.deepseq
                            (_Invoice'valueMsat x__)
                            (Control.DeepSeq.deepseq
                               (_Invoice'settled x__)
                               (Control.DeepSeq.deepseq
                                  (_Invoice'creationDate x__)
                                  (Control.DeepSeq.deepseq
                                     (_Invoice'settleDate x__)
                                     (Control.DeepSeq.deepseq
                                        (_Invoice'paymentRequest x__)
                                        (Control.DeepSeq.deepseq
                                           (_Invoice'descriptionHash x__)
                                           (Control.DeepSeq.deepseq
                                              (_Invoice'expiry x__)
                                              (Control.DeepSeq.deepseq
                                                 (_Invoice'fallbackAddr x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_Invoice'cltvExpiry x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_Invoice'routeHints x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_Invoice'private x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_Invoice'addIndex x__)
                                                             (Control.DeepSeq.deepseq
                                                                (_Invoice'settleIndex x__)
                                                                (Control.DeepSeq.deepseq
                                                                   (_Invoice'amtPaid x__)
                                                                   (Control.DeepSeq.deepseq
                                                                      (_Invoice'amtPaidSat x__)
                                                                      (Control.DeepSeq.deepseq
                                                                         (_Invoice'amtPaidMsat x__)
                                                                         (Control.DeepSeq.deepseq
                                                                            (_Invoice'state x__)
                                                                            (Control.DeepSeq.deepseq
                                                                               (_Invoice'htlcs x__)
                                                                               (Control.DeepSeq.deepseq
                                                                                  (_Invoice'features
                                                                                     x__)
                                                                                  (Control.DeepSeq.deepseq
                                                                                     (_Invoice'isKeysend
                                                                                        x__)
                                                                                     (Control.DeepSeq.deepseq
                                                                                        (_Invoice'paymentAddr
                                                                                           x__)
                                                                                        (Control.DeepSeq.deepseq
                                                                                           (_Invoice'isAmp
                                                                                              x__)
                                                                                           ()))))))))))))))))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' Invoice'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' Invoice'FeaturesEntry Feature@
         * 'Proto.LndGrpc_Fields.maybe'value' @:: Lens' Invoice'FeaturesEntry (Prelude.Maybe Feature)@ -}
data Invoice'FeaturesEntry
  = Invoice'FeaturesEntry'_constructor {_Invoice'FeaturesEntry'key :: !Data.Word.Word32,
                                        _Invoice'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                        _Invoice'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Invoice'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Invoice'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'FeaturesEntry'key
           (\ x__ y__ -> x__ {_Invoice'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Invoice'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'FeaturesEntry'value
           (\ x__ y__ -> x__ {_Invoice'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Invoice'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Invoice'FeaturesEntry'value
           (\ x__ y__ -> x__ {_Invoice'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message Invoice'FeaturesEntry where
  messageName _ = Data.Text.pack "lnrpc.Invoice.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 Invoice'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 Invoice'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Invoice'FeaturesEntry'_unknownFields
        (\ x__ y__ -> x__ {_Invoice'FeaturesEntry'_unknownFields = y__})
  defMessage
    = Invoice'FeaturesEntry'_constructor
        {_Invoice'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _Invoice'FeaturesEntry'value = Prelude.Nothing,
         _Invoice'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Invoice'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser Invoice'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 Invoice'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Invoice'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Invoice'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq (_Invoice'FeaturesEntry'value x__) ()))
newtype Invoice'InvoiceState'UnrecognizedValue
  = Invoice'InvoiceState'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data Invoice'InvoiceState
  = Invoice'OPEN |
    Invoice'SETTLED |
    Invoice'CANCELED |
    Invoice'ACCEPTED |
    Invoice'InvoiceState'Unrecognized !Invoice'InvoiceState'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum Invoice'InvoiceState where
  maybeToEnum 0 = Prelude.Just Invoice'OPEN
  maybeToEnum 1 = Prelude.Just Invoice'SETTLED
  maybeToEnum 2 = Prelude.Just Invoice'CANCELED
  maybeToEnum 3 = Prelude.Just Invoice'ACCEPTED
  maybeToEnum k
    = Prelude.Just
        (Invoice'InvoiceState'Unrecognized
           (Invoice'InvoiceState'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum Invoice'OPEN = "OPEN"
  showEnum Invoice'SETTLED = "SETTLED"
  showEnum Invoice'CANCELED = "CANCELED"
  showEnum Invoice'ACCEPTED = "ACCEPTED"
  showEnum
    (Invoice'InvoiceState'Unrecognized (Invoice'InvoiceState'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "OPEN" = Prelude.Just Invoice'OPEN
    | (Prelude.==) k "SETTLED" = Prelude.Just Invoice'SETTLED
    | (Prelude.==) k "CANCELED" = Prelude.Just Invoice'CANCELED
    | (Prelude.==) k "ACCEPTED" = Prelude.Just Invoice'ACCEPTED
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded Invoice'InvoiceState where
  minBound = Invoice'OPEN
  maxBound = Invoice'ACCEPTED
instance Prelude.Enum Invoice'InvoiceState where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum InvoiceState: "
              (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum Invoice'OPEN = 0
  fromEnum Invoice'SETTLED = 1
  fromEnum Invoice'CANCELED = 2
  fromEnum Invoice'ACCEPTED = 3
  fromEnum
    (Invoice'InvoiceState'Unrecognized (Invoice'InvoiceState'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ Invoice'ACCEPTED
    = Prelude.error
        "Invoice'InvoiceState.succ: bad argument Invoice'ACCEPTED. This value would be out of bounds."
  succ Invoice'OPEN = Invoice'SETTLED
  succ Invoice'SETTLED = Invoice'CANCELED
  succ Invoice'CANCELED = Invoice'ACCEPTED
  succ (Invoice'InvoiceState'Unrecognized _)
    = Prelude.error
        "Invoice'InvoiceState.succ: bad argument: unrecognized value"
  pred Invoice'OPEN
    = Prelude.error
        "Invoice'InvoiceState.pred: bad argument Invoice'OPEN. This value would be out of bounds."
  pred Invoice'SETTLED = Invoice'OPEN
  pred Invoice'CANCELED = Invoice'SETTLED
  pred Invoice'ACCEPTED = Invoice'CANCELED
  pred (Invoice'InvoiceState'Unrecognized _)
    = Prelude.error
        "Invoice'InvoiceState.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 Invoice'InvoiceState where
  fieldDefault = Invoice'OPEN
instance Control.DeepSeq.NFData Invoice'InvoiceState where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanId' @:: Lens' InvoiceHTLC Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.htlcIndex' @:: Lens' InvoiceHTLC Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amtMsat' @:: Lens' InvoiceHTLC Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.acceptHeight' @:: Lens' InvoiceHTLC Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.acceptTime' @:: Lens' InvoiceHTLC Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.resolveTime' @:: Lens' InvoiceHTLC Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.expiryHeight' @:: Lens' InvoiceHTLC Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.state' @:: Lens' InvoiceHTLC InvoiceHTLCState@
         * 'Proto.LndGrpc_Fields.customRecords' @:: Lens' InvoiceHTLC (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.mppTotalAmtMsat' @:: Lens' InvoiceHTLC Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.amp' @:: Lens' InvoiceHTLC AMP@
         * 'Proto.LndGrpc_Fields.maybe'amp' @:: Lens' InvoiceHTLC (Prelude.Maybe AMP)@ -}
data InvoiceHTLC
  = InvoiceHTLC'_constructor {_InvoiceHTLC'chanId :: !Data.Word.Word64,
                              _InvoiceHTLC'htlcIndex :: !Data.Word.Word64,
                              _InvoiceHTLC'amtMsat :: !Data.Word.Word64,
                              _InvoiceHTLC'acceptHeight :: !Data.Int.Int32,
                              _InvoiceHTLC'acceptTime :: !Data.Int.Int64,
                              _InvoiceHTLC'resolveTime :: !Data.Int.Int64,
                              _InvoiceHTLC'expiryHeight :: !Data.Int.Int32,
                              _InvoiceHTLC'state :: !InvoiceHTLCState,
                              _InvoiceHTLC'customRecords :: !(Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString),
                              _InvoiceHTLC'mppTotalAmtMsat :: !Data.Word.Word64,
                              _InvoiceHTLC'amp :: !(Prelude.Maybe AMP),
                              _InvoiceHTLC'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show InvoiceHTLC where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField InvoiceHTLC "chanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'chanId (\ x__ y__ -> x__ {_InvoiceHTLC'chanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "htlcIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'htlcIndex
           (\ x__ y__ -> x__ {_InvoiceHTLC'htlcIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "amtMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'amtMsat
           (\ x__ y__ -> x__ {_InvoiceHTLC'amtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "acceptHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'acceptHeight
           (\ x__ y__ -> x__ {_InvoiceHTLC'acceptHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "acceptTime" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'acceptTime
           (\ x__ y__ -> x__ {_InvoiceHTLC'acceptTime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "resolveTime" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'resolveTime
           (\ x__ y__ -> x__ {_InvoiceHTLC'resolveTime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "expiryHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'expiryHeight
           (\ x__ y__ -> x__ {_InvoiceHTLC'expiryHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "state" InvoiceHTLCState where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'state (\ x__ y__ -> x__ {_InvoiceHTLC'state = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "customRecords" (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'customRecords
           (\ x__ y__ -> x__ {_InvoiceHTLC'customRecords = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "mppTotalAmtMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'mppTotalAmtMsat
           (\ x__ y__ -> x__ {_InvoiceHTLC'mppTotalAmtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC "amp" AMP where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'amp (\ x__ y__ -> x__ {_InvoiceHTLC'amp = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField InvoiceHTLC "maybe'amp" (Prelude.Maybe AMP) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'amp (\ x__ y__ -> x__ {_InvoiceHTLC'amp = y__}))
        Prelude.id
instance Data.ProtoLens.Message InvoiceHTLC where
  messageName _ = Data.Text.pack "lnrpc.InvoiceHTLC"
  packedMessageDescriptor _
    = "\n\
      \\vInvoiceHTLC\DC2\ESC\n\
      \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\GS\n\
      \\n\
      \htlc_index\CAN\STX \SOH(\EOTR\thtlcIndex\DC2\EM\n\
      \\bamt_msat\CAN\ETX \SOH(\EOTR\aamtMsat\DC2#\n\
      \\raccept_height\CAN\EOT \SOH(\ENQR\facceptHeight\DC2\US\n\
      \\vaccept_time\CAN\ENQ \SOH(\ETXR\n\
      \acceptTime\DC2!\n\
      \\fresolve_time\CAN\ACK \SOH(\ETXR\vresolveTime\DC2#\n\
      \\rexpiry_height\CAN\a \SOH(\ENQR\fexpiryHeight\DC2-\n\
      \\ENQstate\CAN\b \SOH(\SO2\ETB.lnrpc.InvoiceHTLCStateR\ENQstate\DC2L\n\
      \\SOcustom_records\CAN\t \ETX(\v2%.lnrpc.InvoiceHTLC.CustomRecordsEntryR\rcustomRecords\DC2+\n\
      \\DC2mpp_total_amt_msat\CAN\n\
      \ \SOH(\EOTR\SImppTotalAmtMsat\DC2\FS\n\
      \\ETXamp\CAN\v \SOH(\v2\n\
      \.lnrpc.AMPR\ETXamp\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 InvoiceHTLC
        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 InvoiceHTLC
        amtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"amtMsat")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        acceptHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "accept_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"acceptHeight")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        acceptTime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "accept_time"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"acceptTime")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        resolveTime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "resolve_time"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"resolveTime")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        expiryHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "expiry_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"expiryHeight")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        state__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "state"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor InvoiceHTLCState)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"state")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        customRecords__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "custom_records"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor InvoiceHTLC'CustomRecordsEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"customRecords")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        mppTotalAmtMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "mpp_total_amt_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"mppTotalAmtMsat")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
        amp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amp"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor AMP)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'amp")) ::
              Data.ProtoLens.FieldDescriptor InvoiceHTLC
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanId__field_descriptor),
           (Data.ProtoLens.Tag 2, htlcIndex__field_descriptor),
           (Data.ProtoLens.Tag 3, amtMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, acceptHeight__field_descriptor),
           (Data.ProtoLens.Tag 5, acceptTime__field_descriptor),
           (Data.ProtoLens.Tag 6, resolveTime__field_descriptor),
           (Data.ProtoLens.Tag 7, expiryHeight__field_descriptor),
           (Data.ProtoLens.Tag 8, state__field_descriptor),
           (Data.ProtoLens.Tag 9, customRecords__field_descriptor),
           (Data.ProtoLens.Tag 10, mppTotalAmtMsat__field_descriptor),
           (Data.ProtoLens.Tag 11, amp__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _InvoiceHTLC'_unknownFields
        (\ x__ y__ -> x__ {_InvoiceHTLC'_unknownFields = y__})
  defMessage
    = InvoiceHTLC'_constructor
        {_InvoiceHTLC'chanId = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'htlcIndex = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'amtMsat = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'acceptHeight = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'acceptTime = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'resolveTime = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'expiryHeight = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'state = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'customRecords = Data.Map.empty,
         _InvoiceHTLC'mppTotalAmtMsat = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'amp = Prelude.Nothing,
         _InvoiceHTLC'_unknownFields = []}
  parseMessage
    = let
        loop ::
          InvoiceHTLC -> Data.ProtoLens.Encoding.Bytes.Parser InvoiceHTLC
        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.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "htlc_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"htlcIndex") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "amt_msat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amtMsat") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "accept_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"acceptHeight") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "accept_time"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"acceptTime") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "resolve_time"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"resolveTime") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "expiry_height"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"expiryHeight") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "state"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"state") y x)
                        74
                          -> do !(entry :: InvoiceHTLC'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))
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "mpp_total_amt_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"mppTotalAmtMsat") y x)
                        90
                          -> 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"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"amp") 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) "InvoiceHTLC"
  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 @"htlcIndex") _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 @"amtMsat") _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 @"acceptHeight") _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 @"acceptTime") _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 @"resolveTime") _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 @"expiryHeight") _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 @"state") _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.<>)
                                     (Data.Monoid.mconcat
                                        (Prelude.map
                                           (\ _v
                                              -> (Data.Monoid.<>)
                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 74)
                                                   ((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 ::
                                                               InvoiceHTLC'CustomRecordsEntry)))))
                                           (Data.Map.toList
                                              (Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"customRecords")
                                                 _x))))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"mppTotalAmtMsat") _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (Data.Monoid.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)
                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt _v))
                                        ((Data.Monoid.<>)
                                           (case
                                                Lens.Family2.view
                                                  (Data.ProtoLens.Field.field @"maybe'amp") _x
                                            of
                                              Prelude.Nothing -> Data.Monoid.mempty
                                              (Prelude.Just _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
                                                        _v))
                                           (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                              (Lens.Family2.view
                                                 Data.ProtoLens.unknownFields _x))))))))))))
instance Control.DeepSeq.NFData InvoiceHTLC where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_InvoiceHTLC'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_InvoiceHTLC'chanId x__)
                (Control.DeepSeq.deepseq
                   (_InvoiceHTLC'htlcIndex x__)
                   (Control.DeepSeq.deepseq
                      (_InvoiceHTLC'amtMsat x__)
                      (Control.DeepSeq.deepseq
                         (_InvoiceHTLC'acceptHeight x__)
                         (Control.DeepSeq.deepseq
                            (_InvoiceHTLC'acceptTime x__)
                            (Control.DeepSeq.deepseq
                               (_InvoiceHTLC'resolveTime x__)
                               (Control.DeepSeq.deepseq
                                  (_InvoiceHTLC'expiryHeight x__)
                                  (Control.DeepSeq.deepseq
                                     (_InvoiceHTLC'state x__)
                                     (Control.DeepSeq.deepseq
                                        (_InvoiceHTLC'customRecords x__)
                                        (Control.DeepSeq.deepseq
                                           (_InvoiceHTLC'mppTotalAmtMsat x__)
                                           (Control.DeepSeq.deepseq
                                              (_InvoiceHTLC'amp x__) ())))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' InvoiceHTLC'CustomRecordsEntry Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' InvoiceHTLC'CustomRecordsEntry Data.ByteString.ByteString@ -}
data InvoiceHTLC'CustomRecordsEntry
  = InvoiceHTLC'CustomRecordsEntry'_constructor {_InvoiceHTLC'CustomRecordsEntry'key :: !Data.Word.Word64,
                                                 _InvoiceHTLC'CustomRecordsEntry'value :: !Data.ByteString.ByteString,
                                                 _InvoiceHTLC'CustomRecordsEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show InvoiceHTLC'CustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField InvoiceHTLC'CustomRecordsEntry "key" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'CustomRecordsEntry'key
           (\ x__ y__ -> x__ {_InvoiceHTLC'CustomRecordsEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceHTLC'CustomRecordsEntry "value" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceHTLC'CustomRecordsEntry'value
           (\ x__ y__ -> x__ {_InvoiceHTLC'CustomRecordsEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message InvoiceHTLC'CustomRecordsEntry where
  messageName _
    = Data.Text.pack "lnrpc.InvoiceHTLC.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 InvoiceHTLC'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 InvoiceHTLC'CustomRecordsEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _InvoiceHTLC'CustomRecordsEntry'_unknownFields
        (\ x__ y__
           -> x__ {_InvoiceHTLC'CustomRecordsEntry'_unknownFields = y__})
  defMessage
    = InvoiceHTLC'CustomRecordsEntry'_constructor
        {_InvoiceHTLC'CustomRecordsEntry'key = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'CustomRecordsEntry'value = Data.ProtoLens.fieldDefault,
         _InvoiceHTLC'CustomRecordsEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          InvoiceHTLC'CustomRecordsEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser InvoiceHTLC'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 InvoiceHTLC'CustomRecordsEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_InvoiceHTLC'CustomRecordsEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_InvoiceHTLC'CustomRecordsEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_InvoiceHTLC'CustomRecordsEntry'value x__) ()))
newtype InvoiceHTLCState'UnrecognizedValue
  = InvoiceHTLCState'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data InvoiceHTLCState
  = ACCEPTED |
    SETTLED |
    CANCELED |
    InvoiceHTLCState'Unrecognized !InvoiceHTLCState'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum InvoiceHTLCState where
  maybeToEnum 0 = Prelude.Just ACCEPTED
  maybeToEnum 1 = Prelude.Just SETTLED
  maybeToEnum 2 = Prelude.Just CANCELED
  maybeToEnum k
    = Prelude.Just
        (InvoiceHTLCState'Unrecognized
           (InvoiceHTLCState'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum ACCEPTED = "ACCEPTED"
  showEnum SETTLED = "SETTLED"
  showEnum CANCELED = "CANCELED"
  showEnum
    (InvoiceHTLCState'Unrecognized (InvoiceHTLCState'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "ACCEPTED" = Prelude.Just ACCEPTED
    | (Prelude.==) k "SETTLED" = Prelude.Just SETTLED
    | (Prelude.==) k "CANCELED" = Prelude.Just CANCELED
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded InvoiceHTLCState where
  minBound = ACCEPTED
  maxBound = CANCELED
instance Prelude.Enum InvoiceHTLCState where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum InvoiceHTLCState: "
              (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum ACCEPTED = 0
  fromEnum SETTLED = 1
  fromEnum CANCELED = 2
  fromEnum
    (InvoiceHTLCState'Unrecognized (InvoiceHTLCState'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ CANCELED
    = Prelude.error
        "InvoiceHTLCState.succ: bad argument CANCELED. This value would be out of bounds."
  succ ACCEPTED = SETTLED
  succ SETTLED = CANCELED
  succ (InvoiceHTLCState'Unrecognized _)
    = Prelude.error
        "InvoiceHTLCState.succ: bad argument: unrecognized value"
  pred ACCEPTED
    = Prelude.error
        "InvoiceHTLCState.pred: bad argument ACCEPTED. This value would be out of bounds."
  pred SETTLED = ACCEPTED
  pred CANCELED = SETTLED
  pred (InvoiceHTLCState'Unrecognized _)
    = Prelude.error
        "InvoiceHTLCState.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 InvoiceHTLCState where
  fieldDefault = ACCEPTED
instance Control.DeepSeq.NFData InvoiceHTLCState where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.addIndex' @:: Lens' InvoiceSubscription Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.settleIndex' @:: Lens' InvoiceSubscription Data.Word.Word64@ -}
data InvoiceSubscription
  = InvoiceSubscription'_constructor {_InvoiceSubscription'addIndex :: !Data.Word.Word64,
                                      _InvoiceSubscription'settleIndex :: !Data.Word.Word64,
                                      _InvoiceSubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show InvoiceSubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField InvoiceSubscription "addIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceSubscription'addIndex
           (\ x__ y__ -> x__ {_InvoiceSubscription'addIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField InvoiceSubscription "settleIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _InvoiceSubscription'settleIndex
           (\ x__ y__ -> x__ {_InvoiceSubscription'settleIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Message InvoiceSubscription where
  messageName _ = Data.Text.pack "lnrpc.InvoiceSubscription"
  packedMessageDescriptor _
    = "\n\
      \\DC3InvoiceSubscription\DC2\ESC\n\
      \\tadd_index\CAN\SOH \SOH(\EOTR\baddIndex\DC2!\n\
      \\fsettle_index\CAN\STX \SOH(\EOTR\vsettleIndex"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "add_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"addIndex")) ::
              Data.ProtoLens.FieldDescriptor InvoiceSubscription
        settleIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "settle_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"settleIndex")) ::
              Data.ProtoLens.FieldDescriptor InvoiceSubscription
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addIndex__field_descriptor),
           (Data.ProtoLens.Tag 2, settleIndex__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _InvoiceSubscription'_unknownFields
        (\ x__ y__ -> x__ {_InvoiceSubscription'_unknownFields = y__})
  defMessage
    = InvoiceSubscription'_constructor
        {_InvoiceSubscription'addIndex = Data.ProtoLens.fieldDefault,
         _InvoiceSubscription'settleIndex = Data.ProtoLens.fieldDefault,
         _InvoiceSubscription'_unknownFields = []}
  parseMessage
    = let
        loop ::
          InvoiceSubscription
          -> Data.ProtoLens.Encoding.Bytes.Parser InvoiceSubscription
        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 "add_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"addIndex") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "settle_index"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"settleIndex") 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) "InvoiceSubscription"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"addIndex") _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 @"settleIndex") _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 InvoiceSubscription where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_InvoiceSubscription'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_InvoiceSubscription'addIndex x__)
                (Control.DeepSeq.deepseq
                   (_InvoiceSubscription'settleIndex x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rawKeyBytes' @:: Lens' KeyDescriptor Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.keyLoc' @:: Lens' KeyDescriptor KeyLocator@
         * 'Proto.LndGrpc_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)
instance Prelude.Show KeyDescriptor where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.keyFamily' @:: Lens' KeyLocator Data.Int.Int32@
         * 'Proto.LndGrpc_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)
instance Prelude.Show KeyLocator where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.pubkey' @:: Lens' LightningAddress Data.Text.Text@
         * 'Proto.LndGrpc_Fields.host' @:: Lens' LightningAddress Data.Text.Text@ -}
data LightningAddress
  = LightningAddress'_constructor {_LightningAddress'pubkey :: !Data.Text.Text,
                                   _LightningAddress'host :: !Data.Text.Text,
                                   _LightningAddress'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show LightningAddress where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField LightningAddress "pubkey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningAddress'pubkey
           (\ x__ y__ -> x__ {_LightningAddress'pubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField LightningAddress "host" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _LightningAddress'host
           (\ x__ y__ -> x__ {_LightningAddress'host = y__}))
        Prelude.id
instance Data.ProtoLens.Message LightningAddress where
  messageName _ = Data.Text.pack "lnrpc.LightningAddress"
  packedMessageDescriptor _
    = "\n\
      \\DLELightningAddress\DC2\SYN\n\
      \\ACKpubkey\CAN\SOH \SOH(\tR\ACKpubkey\DC2\DC2\n\
      \\EOThost\CAN\STX \SOH(\tR\EOThost"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pubkey"
              (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 LightningAddress
        host__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "host"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"host")) ::
              Data.ProtoLens.FieldDescriptor LightningAddress
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubkey__field_descriptor),
           (Data.ProtoLens.Tag 2, host__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _LightningAddress'_unknownFields
        (\ x__ y__ -> x__ {_LightningAddress'_unknownFields = y__})
  defMessage
    = LightningAddress'_constructor
        {_LightningAddress'pubkey = Data.ProtoLens.fieldDefault,
         _LightningAddress'host = Data.ProtoLens.fieldDefault,
         _LightningAddress'_unknownFields = []}
  parseMessage
    = let
        loop ::
          LightningAddress
          -> Data.ProtoLens.Encoding.Bytes.Parser LightningAddress
        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))
                                       "pubkey"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pubkey") 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))
                                       "host"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"host") 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) "LightningAddress"
  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 @"host") _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 LightningAddress where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_LightningAddress'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_LightningAddress'pubkey x__)
                (Control.DeepSeq.deepseq (_LightningAddress'host x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.lastUpdate' @:: Lens' LightningNode Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.pubKey' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.LndGrpc_Fields.alias' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.LndGrpc_Fields.addresses' @:: Lens' LightningNode [NodeAddress]@
         * 'Proto.LndGrpc_Fields.vec'addresses' @:: Lens' LightningNode (Data.Vector.Vector NodeAddress)@
         * 'Proto.LndGrpc_Fields.color' @:: Lens' LightningNode Data.Text.Text@
         * 'Proto.LndGrpc_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)
instance Prelude.Show LightningNode where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' LightningNode'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' LightningNode'FeaturesEntry Feature@
         * 'Proto.LndGrpc_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)
instance Prelude.Show LightningNode'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.activeOnly' @:: Lens' ListChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.inactiveOnly' @:: Lens' ListChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.publicOnly' @:: Lens' ListChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.privateOnly' @:: Lens' ListChannelsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.peer' @:: Lens' ListChannelsRequest Data.ByteString.ByteString@ -}
data ListChannelsRequest
  = ListChannelsRequest'_constructor {_ListChannelsRequest'activeOnly :: !Prelude.Bool,
                                      _ListChannelsRequest'inactiveOnly :: !Prelude.Bool,
                                      _ListChannelsRequest'publicOnly :: !Prelude.Bool,
                                      _ListChannelsRequest'privateOnly :: !Prelude.Bool,
                                      _ListChannelsRequest'peer :: !Data.ByteString.ByteString,
                                      _ListChannelsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListChannelsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListChannelsRequest "activeOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsRequest'activeOnly
           (\ x__ y__ -> x__ {_ListChannelsRequest'activeOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListChannelsRequest "inactiveOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsRequest'inactiveOnly
           (\ x__ y__ -> x__ {_ListChannelsRequest'inactiveOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListChannelsRequest "publicOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsRequest'publicOnly
           (\ x__ y__ -> x__ {_ListChannelsRequest'publicOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListChannelsRequest "privateOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsRequest'privateOnly
           (\ x__ y__ -> x__ {_ListChannelsRequest'privateOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListChannelsRequest "peer" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsRequest'peer
           (\ x__ y__ -> x__ {_ListChannelsRequest'peer = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListChannelsRequest where
  messageName _ = Data.Text.pack "lnrpc.ListChannelsRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3ListChannelsRequest\DC2\US\n\
      \\vactive_only\CAN\SOH \SOH(\bR\n\
      \activeOnly\DC2#\n\
      \\rinactive_only\CAN\STX \SOH(\bR\finactiveOnly\DC2\US\n\
      \\vpublic_only\CAN\ETX \SOH(\bR\n\
      \publicOnly\DC2!\n\
      \\fprivate_only\CAN\EOT \SOH(\bR\vprivateOnly\DC2\DC2\n\
      \\EOTpeer\CAN\ENQ \SOH(\fR\EOTpeer"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        activeOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "active_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"activeOnly")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsRequest
        inactiveOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "inactive_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"inactiveOnly")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsRequest
        publicOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "public_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"publicOnly")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsRequest
        privateOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "private_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"privateOnly")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsRequest
        peer__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "peer"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"peer")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, activeOnly__field_descriptor),
           (Data.ProtoLens.Tag 2, inactiveOnly__field_descriptor),
           (Data.ProtoLens.Tag 3, publicOnly__field_descriptor),
           (Data.ProtoLens.Tag 4, privateOnly__field_descriptor),
           (Data.ProtoLens.Tag 5, peer__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListChannelsRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListChannelsRequest'_unknownFields = y__})
  defMessage
    = ListChannelsRequest'_constructor
        {_ListChannelsRequest'activeOnly = Data.ProtoLens.fieldDefault,
         _ListChannelsRequest'inactiveOnly = Data.ProtoLens.fieldDefault,
         _ListChannelsRequest'publicOnly = Data.ProtoLens.fieldDefault,
         _ListChannelsRequest'privateOnly = Data.ProtoLens.fieldDefault,
         _ListChannelsRequest'peer = Data.ProtoLens.fieldDefault,
         _ListChannelsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListChannelsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListChannelsRequest
        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)
                                       "active_only"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"activeOnly") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "inactive_only"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"inactiveOnly") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "public_only"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"publicOnly") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "private_only"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"privateOnly") y x)
                        42
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "peer"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"peer") 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) "ListChannelsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"activeOnly") _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 @"inactiveOnly") _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.Monoid.<>)
                   (let
                      _v
                        = Lens.Family2.view (Data.ProtoLens.Field.field @"publicOnly") _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 @"privateOnly") _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.Monoid.<>)
                         (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"peer") _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.ProtoLens.Encoding.Wire.buildFieldSet
                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
instance Control.DeepSeq.NFData ListChannelsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListChannelsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListChannelsRequest'activeOnly x__)
                (Control.DeepSeq.deepseq
                   (_ListChannelsRequest'inactiveOnly x__)
                   (Control.DeepSeq.deepseq
                      (_ListChannelsRequest'publicOnly x__)
                      (Control.DeepSeq.deepseq
                         (_ListChannelsRequest'privateOnly x__)
                         (Control.DeepSeq.deepseq (_ListChannelsRequest'peer x__) ())))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channels' @:: Lens' ListChannelsResponse [Channel]@
         * 'Proto.LndGrpc_Fields.vec'channels' @:: Lens' ListChannelsResponse (Data.Vector.Vector Channel)@ -}
data ListChannelsResponse
  = ListChannelsResponse'_constructor {_ListChannelsResponse'channels :: !(Data.Vector.Vector Channel),
                                       _ListChannelsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListChannelsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListChannelsResponse "channels" [Channel] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsResponse'channels
           (\ x__ y__ -> x__ {_ListChannelsResponse'channels = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListChannelsResponse "vec'channels" (Data.Vector.Vector Channel) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListChannelsResponse'channels
           (\ x__ y__ -> x__ {_ListChannelsResponse'channels = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListChannelsResponse where
  messageName _ = Data.Text.pack "lnrpc.ListChannelsResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC4ListChannelsResponse\DC2*\n\
      \\bchannels\CAN\v \ETX(\v2\SO.lnrpc.ChannelR\bchannels"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        channels__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "channels"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Channel)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"channels")) ::
              Data.ProtoLens.FieldDescriptor ListChannelsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 11, channels__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListChannelsResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListChannelsResponse'_unknownFields = y__})
  defMessage
    = ListChannelsResponse'_constructor
        {_ListChannelsResponse'channels = Data.Vector.Generic.empty,
         _ListChannelsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListChannelsResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Channel
             -> Data.ProtoLens.Encoding.Bytes.Parser ListChannelsResponse
        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
                        90
                          -> 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)
          "ListChannelsResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                (\ _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
                           _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 ListChannelsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListChannelsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ListChannelsResponse'channels x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pendingOnly' @:: Lens' ListInvoiceRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.indexOffset' @:: Lens' ListInvoiceRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.numMaxInvoices' @:: Lens' ListInvoiceRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.reversed' @:: Lens' ListInvoiceRequest Prelude.Bool@ -}
data ListInvoiceRequest
  = ListInvoiceRequest'_constructor {_ListInvoiceRequest'pendingOnly :: !Prelude.Bool,
                                     _ListInvoiceRequest'indexOffset :: !Data.Word.Word64,
                                     _ListInvoiceRequest'numMaxInvoices :: !Data.Word.Word64,
                                     _ListInvoiceRequest'reversed :: !Prelude.Bool,
                                     _ListInvoiceRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListInvoiceRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListInvoiceRequest "pendingOnly" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceRequest'pendingOnly
           (\ x__ y__ -> x__ {_ListInvoiceRequest'pendingOnly = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListInvoiceRequest "indexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceRequest'indexOffset
           (\ x__ y__ -> x__ {_ListInvoiceRequest'indexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListInvoiceRequest "numMaxInvoices" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceRequest'numMaxInvoices
           (\ x__ y__ -> x__ {_ListInvoiceRequest'numMaxInvoices = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListInvoiceRequest "reversed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceRequest'reversed
           (\ x__ y__ -> x__ {_ListInvoiceRequest'reversed = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListInvoiceRequest where
  messageName _ = Data.Text.pack "lnrpc.ListInvoiceRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2ListInvoiceRequest\DC2!\n\
      \\fpending_only\CAN\SOH \SOH(\bR\vpendingOnly\DC2!\n\
      \\findex_offset\CAN\EOT \SOH(\EOTR\vindexOffset\DC2(\n\
      \\DLEnum_max_invoices\CAN\ENQ \SOH(\EOTR\SOnumMaxInvoices\DC2\SUB\n\
      \\breversed\CAN\ACK \SOH(\bR\breversed"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        pendingOnly__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pending_only"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pendingOnly")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceRequest
        indexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"indexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceRequest
        numMaxInvoices__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_max_invoices"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numMaxInvoices")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceRequest
        reversed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "reversed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"reversed")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pendingOnly__field_descriptor),
           (Data.ProtoLens.Tag 4, indexOffset__field_descriptor),
           (Data.ProtoLens.Tag 5, numMaxInvoices__field_descriptor),
           (Data.ProtoLens.Tag 6, reversed__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListInvoiceRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListInvoiceRequest'_unknownFields = y__})
  defMessage
    = ListInvoiceRequest'_constructor
        {_ListInvoiceRequest'pendingOnly = Data.ProtoLens.fieldDefault,
         _ListInvoiceRequest'indexOffset = Data.ProtoLens.fieldDefault,
         _ListInvoiceRequest'numMaxInvoices = Data.ProtoLens.fieldDefault,
         _ListInvoiceRequest'reversed = Data.ProtoLens.fieldDefault,
         _ListInvoiceRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListInvoiceRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListInvoiceRequest
        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)
                                       "pending_only"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pendingOnly") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "index_offset"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"indexOffset") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "num_max_invoices"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numMaxInvoices") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "reversed"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"reversed") 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) "ListInvoiceRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"pendingOnly") _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 @"indexOffset") _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 @"numMaxInvoices") _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 @"reversed") _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
                                  (\ b -> if b then 1 else 0)
                                  _v))
                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData ListInvoiceRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListInvoiceRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListInvoiceRequest'pendingOnly x__)
                (Control.DeepSeq.deepseq
                   (_ListInvoiceRequest'indexOffset x__)
                   (Control.DeepSeq.deepseq
                      (_ListInvoiceRequest'numMaxInvoices x__)
                      (Control.DeepSeq.deepseq (_ListInvoiceRequest'reversed x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.invoices' @:: Lens' ListInvoiceResponse [Invoice]@
         * 'Proto.LndGrpc_Fields.vec'invoices' @:: Lens' ListInvoiceResponse (Data.Vector.Vector Invoice)@
         * 'Proto.LndGrpc_Fields.lastIndexOffset' @:: Lens' ListInvoiceResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.firstIndexOffset' @:: Lens' ListInvoiceResponse Data.Word.Word64@ -}
data ListInvoiceResponse
  = ListInvoiceResponse'_constructor {_ListInvoiceResponse'invoices :: !(Data.Vector.Vector Invoice),
                                      _ListInvoiceResponse'lastIndexOffset :: !Data.Word.Word64,
                                      _ListInvoiceResponse'firstIndexOffset :: !Data.Word.Word64,
                                      _ListInvoiceResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListInvoiceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListInvoiceResponse "invoices" [Invoice] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceResponse'invoices
           (\ x__ y__ -> x__ {_ListInvoiceResponse'invoices = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListInvoiceResponse "vec'invoices" (Data.Vector.Vector Invoice) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceResponse'invoices
           (\ x__ y__ -> x__ {_ListInvoiceResponse'invoices = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListInvoiceResponse "lastIndexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceResponse'lastIndexOffset
           (\ x__ y__ -> x__ {_ListInvoiceResponse'lastIndexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListInvoiceResponse "firstIndexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListInvoiceResponse'firstIndexOffset
           (\ x__ y__ -> x__ {_ListInvoiceResponse'firstIndexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListInvoiceResponse where
  messageName _ = Data.Text.pack "lnrpc.ListInvoiceResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3ListInvoiceResponse\DC2*\n\
      \\binvoices\CAN\SOH \ETX(\v2\SO.lnrpc.InvoiceR\binvoices\DC2*\n\
      \\DC1last_index_offset\CAN\STX \SOH(\EOTR\SIlastIndexOffset\DC2,\n\
      \\DC2first_index_offset\CAN\ETX \SOH(\EOTR\DLEfirstIndexOffset"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        invoices__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "invoices"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Invoice)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"invoices")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceResponse
        lastIndexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastIndexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceResponse
        firstIndexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "first_index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"firstIndexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListInvoiceResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, invoices__field_descriptor),
           (Data.ProtoLens.Tag 2, lastIndexOffset__field_descriptor),
           (Data.ProtoLens.Tag 3, firstIndexOffset__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListInvoiceResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListInvoiceResponse'_unknownFields = y__})
  defMessage
    = ListInvoiceResponse'_constructor
        {_ListInvoiceResponse'invoices = Data.Vector.Generic.empty,
         _ListInvoiceResponse'lastIndexOffset = Data.ProtoLens.fieldDefault,
         _ListInvoiceResponse'firstIndexOffset = Data.ProtoLens.fieldDefault,
         _ListInvoiceResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListInvoiceResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Invoice
             -> Data.ProtoLens.Encoding.Bytes.Parser ListInvoiceResponse
        loop x mutable'invoices
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'invoices <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                              mutable'invoices)
                      (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'invoices") frozen'invoices 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)
                                        "invoices"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'invoices y)
                                loop x v
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "last_index_offset"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"lastIndexOffset") y x)
                                  mutable'invoices
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "first_index_offset"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"firstIndexOffset") y x)
                                  mutable'invoices
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'invoices
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'invoices <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                    Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'invoices)
          "ListInvoiceResponse"
  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'invoices") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"lastIndexOffset") _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 @"firstIndexOffset") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData ListInvoiceResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListInvoiceResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListInvoiceResponse'invoices x__)
                (Control.DeepSeq.deepseq
                   (_ListInvoiceResponse'lastIndexOffset x__)
                   (Control.DeepSeq.deepseq
                      (_ListInvoiceResponse'firstIndexOffset x__) ())))
{- | Fields :
      -}
data ListMacaroonIDsRequest
  = ListMacaroonIDsRequest'_constructor {_ListMacaroonIDsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListMacaroonIDsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message ListMacaroonIDsRequest where
  messageName _ = Data.Text.pack "lnrpc.ListMacaroonIDsRequest"
  packedMessageDescriptor _
    = "\n\
      \\SYNListMacaroonIDsRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListMacaroonIDsRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListMacaroonIDsRequest'_unknownFields = y__})
  defMessage
    = ListMacaroonIDsRequest'_constructor
        {_ListMacaroonIDsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListMacaroonIDsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListMacaroonIDsRequest
        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) "ListMacaroonIDsRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ListMacaroonIDsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListMacaroonIDsRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rootKeyIds' @:: Lens' ListMacaroonIDsResponse [Data.Word.Word64]@
         * 'Proto.LndGrpc_Fields.vec'rootKeyIds' @:: Lens' ListMacaroonIDsResponse (Data.Vector.Unboxed.Vector Data.Word.Word64)@ -}
data ListMacaroonIDsResponse
  = ListMacaroonIDsResponse'_constructor {_ListMacaroonIDsResponse'rootKeyIds :: !(Data.Vector.Unboxed.Vector Data.Word.Word64),
                                          _ListMacaroonIDsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListMacaroonIDsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListMacaroonIDsResponse "rootKeyIds" [Data.Word.Word64] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListMacaroonIDsResponse'rootKeyIds
           (\ x__ y__ -> x__ {_ListMacaroonIDsResponse'rootKeyIds = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListMacaroonIDsResponse "vec'rootKeyIds" (Data.Vector.Unboxed.Vector Data.Word.Word64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListMacaroonIDsResponse'rootKeyIds
           (\ x__ y__ -> x__ {_ListMacaroonIDsResponse'rootKeyIds = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListMacaroonIDsResponse where
  messageName _ = Data.Text.pack "lnrpc.ListMacaroonIDsResponse"
  packedMessageDescriptor _
    = "\n\
      \\ETBListMacaroonIDsResponse\DC2 \n\
      \\froot_key_ids\CAN\SOH \ETX(\EOTR\n\
      \rootKeyIds"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rootKeyIds__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "root_key_ids"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Packed
                 (Data.ProtoLens.Field.field @"rootKeyIds")) ::
              Data.ProtoLens.FieldDescriptor ListMacaroonIDsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rootKeyIds__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListMacaroonIDsResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListMacaroonIDsResponse'_unknownFields = y__})
  defMessage
    = ListMacaroonIDsResponse'_constructor
        {_ListMacaroonIDsResponse'rootKeyIds = Data.Vector.Generic.empty,
         _ListMacaroonIDsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListMacaroonIDsResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Word.Word64
             -> Data.ProtoLens.Encoding.Bytes.Parser ListMacaroonIDsResponse
        loop x mutable'rootKeyIds
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'rootKeyIds <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                mutable'rootKeyIds)
                      (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'rootKeyIds")
                              frozen'rootKeyIds
                              x))
               else
                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
                      case tag of
                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        Data.ProtoLens.Encoding.Bytes.getVarInt "root_key_ids"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'rootKeyIds 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.<?>)
                                                                    Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                    "root_key_ids"
                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                                     (Data.ProtoLens.Encoding.Growing.append
                                                                        qs q)
                                                            ploop qs'
                                            in ploop)
                                             mutable'rootKeyIds)
                                loop x y
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'rootKeyIds
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'rootKeyIds <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                      Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'rootKeyIds)
          "ListMacaroonIDsResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                p = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"vec'rootKeyIds") _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
                               Data.ProtoLens.Encoding.Bytes.putVarInt p))))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ListMacaroonIDsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListMacaroonIDsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListMacaroonIDsResponse'rootKeyIds x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.includeIncomplete' @:: Lens' ListPaymentsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.indexOffset' @:: Lens' ListPaymentsRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.maxPayments' @:: Lens' ListPaymentsRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.reversed' @:: Lens' ListPaymentsRequest Prelude.Bool@ -}
data ListPaymentsRequest
  = ListPaymentsRequest'_constructor {_ListPaymentsRequest'includeIncomplete :: !Prelude.Bool,
                                      _ListPaymentsRequest'indexOffset :: !Data.Word.Word64,
                                      _ListPaymentsRequest'maxPayments :: !Data.Word.Word64,
                                      _ListPaymentsRequest'reversed :: !Prelude.Bool,
                                      _ListPaymentsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPaymentsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPaymentsRequest "includeIncomplete" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsRequest'includeIncomplete
           (\ x__ y__ -> x__ {_ListPaymentsRequest'includeIncomplete = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPaymentsRequest "indexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsRequest'indexOffset
           (\ x__ y__ -> x__ {_ListPaymentsRequest'indexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPaymentsRequest "maxPayments" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsRequest'maxPayments
           (\ x__ y__ -> x__ {_ListPaymentsRequest'maxPayments = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPaymentsRequest "reversed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsRequest'reversed
           (\ x__ y__ -> x__ {_ListPaymentsRequest'reversed = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPaymentsRequest where
  messageName _ = Data.Text.pack "lnrpc.ListPaymentsRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3ListPaymentsRequest\DC2-\n\
      \\DC2include_incomplete\CAN\SOH \SOH(\bR\DC1includeIncomplete\DC2!\n\
      \\findex_offset\CAN\STX \SOH(\EOTR\vindexOffset\DC2!\n\
      \\fmax_payments\CAN\ETX \SOH(\EOTR\vmaxPayments\DC2\SUB\n\
      \\breversed\CAN\EOT \SOH(\bR\breversed"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        includeIncomplete__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "include_incomplete"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"includeIncomplete")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsRequest
        indexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"indexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsRequest
        maxPayments__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_payments"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxPayments")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsRequest
        reversed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "reversed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"reversed")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, includeIncomplete__field_descriptor),
           (Data.ProtoLens.Tag 2, indexOffset__field_descriptor),
           (Data.ProtoLens.Tag 3, maxPayments__field_descriptor),
           (Data.ProtoLens.Tag 4, reversed__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPaymentsRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListPaymentsRequest'_unknownFields = y__})
  defMessage
    = ListPaymentsRequest'_constructor
        {_ListPaymentsRequest'includeIncomplete = Data.ProtoLens.fieldDefault,
         _ListPaymentsRequest'indexOffset = Data.ProtoLens.fieldDefault,
         _ListPaymentsRequest'maxPayments = Data.ProtoLens.fieldDefault,
         _ListPaymentsRequest'reversed = Data.ProtoLens.fieldDefault,
         _ListPaymentsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPaymentsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListPaymentsRequest
        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_incomplete"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"includeIncomplete") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "index_offset"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"indexOffset") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "max_payments"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"maxPayments") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "reversed"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"reversed") 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) "ListPaymentsRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"includeIncomplete") _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 @"indexOffset") _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 @"maxPayments") _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 @"reversed") _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 ListPaymentsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPaymentsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListPaymentsRequest'includeIncomplete x__)
                (Control.DeepSeq.deepseq
                   (_ListPaymentsRequest'indexOffset x__)
                   (Control.DeepSeq.deepseq
                      (_ListPaymentsRequest'maxPayments x__)
                      (Control.DeepSeq.deepseq (_ListPaymentsRequest'reversed x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.payments' @:: Lens' ListPaymentsResponse [Payment]@
         * 'Proto.LndGrpc_Fields.vec'payments' @:: Lens' ListPaymentsResponse (Data.Vector.Vector Payment)@
         * 'Proto.LndGrpc_Fields.firstIndexOffset' @:: Lens' ListPaymentsResponse Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.lastIndexOffset' @:: Lens' ListPaymentsResponse Data.Word.Word64@ -}
data ListPaymentsResponse
  = ListPaymentsResponse'_constructor {_ListPaymentsResponse'payments :: !(Data.Vector.Vector Payment),
                                       _ListPaymentsResponse'firstIndexOffset :: !Data.Word.Word64,
                                       _ListPaymentsResponse'lastIndexOffset :: !Data.Word.Word64,
                                       _ListPaymentsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPaymentsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPaymentsResponse "payments" [Payment] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsResponse'payments
           (\ x__ y__ -> x__ {_ListPaymentsResponse'payments = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListPaymentsResponse "vec'payments" (Data.Vector.Vector Payment) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsResponse'payments
           (\ x__ y__ -> x__ {_ListPaymentsResponse'payments = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPaymentsResponse "firstIndexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsResponse'firstIndexOffset
           (\ x__ y__ -> x__ {_ListPaymentsResponse'firstIndexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPaymentsResponse "lastIndexOffset" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPaymentsResponse'lastIndexOffset
           (\ x__ y__ -> x__ {_ListPaymentsResponse'lastIndexOffset = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPaymentsResponse where
  messageName _ = Data.Text.pack "lnrpc.ListPaymentsResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC4ListPaymentsResponse\DC2*\n\
      \\bpayments\CAN\SOH \ETX(\v2\SO.lnrpc.PaymentR\bpayments\DC2,\n\
      \\DC2first_index_offset\CAN\STX \SOH(\EOTR\DLEfirstIndexOffset\DC2*\n\
      \\DC1last_index_offset\CAN\ETX \SOH(\EOTR\SIlastIndexOffset"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        payments__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payments"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Payment)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"payments")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsResponse
        firstIndexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "first_index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"firstIndexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsResponse
        lastIndexOffset__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_index_offset"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastIndexOffset")) ::
              Data.ProtoLens.FieldDescriptor ListPaymentsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, payments__field_descriptor),
           (Data.ProtoLens.Tag 2, firstIndexOffset__field_descriptor),
           (Data.ProtoLens.Tag 3, lastIndexOffset__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPaymentsResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListPaymentsResponse'_unknownFields = y__})
  defMessage
    = ListPaymentsResponse'_constructor
        {_ListPaymentsResponse'payments = Data.Vector.Generic.empty,
         _ListPaymentsResponse'firstIndexOffset = Data.ProtoLens.fieldDefault,
         _ListPaymentsResponse'lastIndexOffset = Data.ProtoLens.fieldDefault,
         _ListPaymentsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPaymentsResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Payment
             -> Data.ProtoLens.Encoding.Bytes.Parser ListPaymentsResponse
        loop x mutable'payments
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'payments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                              mutable'payments)
                      (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'payments") frozen'payments 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)
                                        "payments"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'payments y)
                                loop x v
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "first_index_offset"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"firstIndexOffset") y x)
                                  mutable'payments
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "last_index_offset"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"lastIndexOffset") y x)
                                  mutable'payments
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'payments
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'payments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                    Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'payments)
          "ListPaymentsResponse"
  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'payments") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"firstIndexOffset") _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 @"lastIndexOffset") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData ListPaymentsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPaymentsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListPaymentsResponse'payments x__)
                (Control.DeepSeq.deepseq
                   (_ListPaymentsResponse'firstIndexOffset x__)
                   (Control.DeepSeq.deepseq
                      (_ListPaymentsResponse'lastIndexOffset x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.latestError' @:: Lens' ListPeersRequest Prelude.Bool@ -}
data ListPeersRequest
  = ListPeersRequest'_constructor {_ListPeersRequest'latestError :: !Prelude.Bool,
                                   _ListPeersRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPeersRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPeersRequest "latestError" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPeersRequest'latestError
           (\ x__ y__ -> x__ {_ListPeersRequest'latestError = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPeersRequest where
  messageName _ = Data.Text.pack "lnrpc.ListPeersRequest"
  packedMessageDescriptor _
    = "\n\
      \\DLEListPeersRequest\DC2!\n\
      \\flatest_error\CAN\SOH \SOH(\bR\vlatestError"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        latestError__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "latest_error"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"latestError")) ::
              Data.ProtoLens.FieldDescriptor ListPeersRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, latestError__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPeersRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListPeersRequest'_unknownFields = y__})
  defMessage
    = ListPeersRequest'_constructor
        {_ListPeersRequest'latestError = Data.ProtoLens.fieldDefault,
         _ListPeersRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPeersRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListPeersRequest
        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)
                                       "latest_error"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"latestError") 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) "ListPeersRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"latestError") _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 ListPeersRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPeersRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ListPeersRequest'latestError x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.peers' @:: Lens' ListPeersResponse [Peer]@
         * 'Proto.LndGrpc_Fields.vec'peers' @:: Lens' ListPeersResponse (Data.Vector.Vector Peer)@ -}
data ListPeersResponse
  = ListPeersResponse'_constructor {_ListPeersResponse'peers :: !(Data.Vector.Vector Peer),
                                    _ListPeersResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPeersResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPeersResponse "peers" [Peer] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPeersResponse'peers
           (\ x__ y__ -> x__ {_ListPeersResponse'peers = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListPeersResponse "vec'peers" (Data.Vector.Vector Peer) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPeersResponse'peers
           (\ x__ y__ -> x__ {_ListPeersResponse'peers = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPeersResponse where
  messageName _ = Data.Text.pack "lnrpc.ListPeersResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC1ListPeersResponse\DC2!\n\
      \\ENQpeers\CAN\SOH \ETX(\v2\v.lnrpc.PeerR\ENQpeers"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        peers__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "peers"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Peer)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"peers")) ::
              Data.ProtoLens.FieldDescriptor ListPeersResponse
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, peers__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPeersResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListPeersResponse'_unknownFields = y__})
  defMessage
    = ListPeersResponse'_constructor
        {_ListPeersResponse'peers = Data.Vector.Generic.empty,
         _ListPeersResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPeersResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Peer
             -> Data.ProtoLens.Encoding.Bytes.Parser ListPeersResponse
        loop x mutable'peers
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'peers <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'peers)
                      (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'peers") frozen'peers 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)
                                        "peers"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'peers 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'peers
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'peers <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'peers)
          "ListPeersResponse"
  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'peers") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ListPeersResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPeersResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ListPeersResponse'peers x__) ())
{- | Fields :
      -}
data ListPermissionsRequest
  = ListPermissionsRequest'_constructor {_ListPermissionsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPermissionsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message ListPermissionsRequest where
  messageName _ = Data.Text.pack "lnrpc.ListPermissionsRequest"
  packedMessageDescriptor _
    = "\n\
      \\SYNListPermissionsRequest"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPermissionsRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListPermissionsRequest'_unknownFields = y__})
  defMessage
    = ListPermissionsRequest'_constructor
        {_ListPermissionsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPermissionsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListPermissionsRequest
        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) "ListPermissionsRequest"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData ListPermissionsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPermissionsRequest'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.methodPermissions' @:: Lens' ListPermissionsResponse (Data.Map.Map Data.Text.Text MacaroonPermissionList)@ -}
data ListPermissionsResponse
  = ListPermissionsResponse'_constructor {_ListPermissionsResponse'methodPermissions :: !(Data.Map.Map Data.Text.Text MacaroonPermissionList),
                                          _ListPermissionsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPermissionsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPermissionsResponse "methodPermissions" (Data.Map.Map Data.Text.Text MacaroonPermissionList) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPermissionsResponse'methodPermissions
           (\ x__ y__
              -> x__ {_ListPermissionsResponse'methodPermissions = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPermissionsResponse where
  messageName _ = Data.Text.pack "lnrpc.ListPermissionsResponse"
  packedMessageDescriptor _
    = "\n\
      \\ETBListPermissionsResponse\DC2d\n\
      \\DC2method_permissions\CAN\SOH \ETX(\v25.lnrpc.ListPermissionsResponse.MethodPermissionsEntryR\DC1methodPermissions\SUBc\n\
      \\SYNMethodPermissionsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC23\n\
      \\ENQvalue\CAN\STX \SOH(\v2\GS.lnrpc.MacaroonPermissionListR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        methodPermissions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "method_permissions"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ListPermissionsResponse'MethodPermissionsEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"methodPermissions")) ::
              Data.ProtoLens.FieldDescriptor ListPermissionsResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, methodPermissions__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPermissionsResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListPermissionsResponse'_unknownFields = y__})
  defMessage
    = ListPermissionsResponse'_constructor
        {_ListPermissionsResponse'methodPermissions = Data.Map.empty,
         _ListPermissionsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPermissionsResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser ListPermissionsResponse
        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 :: ListPermissionsResponse'MethodPermissionsEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                                (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                                    Data.ProtoLens.Encoding.Bytes.isolate
                                                                                                      (Prelude.fromIntegral
                                                                                                         len)
                                                                                                      Data.ProtoLens.parseMessage)
                                                                                                "method_permissions"
                                (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 @"methodPermissions")
                                        (\ !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) "ListPermissionsResponse"
  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 ::
                                       ListPermissionsResponse'MethodPermissionsEntry)))))
                   (Data.Map.toList
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"methodPermissions") _x))))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ListPermissionsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPermissionsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListPermissionsResponse'methodPermissions x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' ListPermissionsResponse'MethodPermissionsEntry Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' ListPermissionsResponse'MethodPermissionsEntry MacaroonPermissionList@
         * 'Proto.LndGrpc_Fields.maybe'value' @:: Lens' ListPermissionsResponse'MethodPermissionsEntry (Prelude.Maybe MacaroonPermissionList)@ -}
data ListPermissionsResponse'MethodPermissionsEntry
  = ListPermissionsResponse'MethodPermissionsEntry'_constructor {_ListPermissionsResponse'MethodPermissionsEntry'key :: !Data.Text.Text,
                                                                 _ListPermissionsResponse'MethodPermissionsEntry'value :: !(Prelude.Maybe MacaroonPermissionList),
                                                                 _ListPermissionsResponse'MethodPermissionsEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListPermissionsResponse'MethodPermissionsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListPermissionsResponse'MethodPermissionsEntry "key" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPermissionsResponse'MethodPermissionsEntry'key
           (\ x__ y__
              -> x__
                   {_ListPermissionsResponse'MethodPermissionsEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListPermissionsResponse'MethodPermissionsEntry "value" MacaroonPermissionList where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPermissionsResponse'MethodPermissionsEntry'value
           (\ x__ y__
              -> x__
                   {_ListPermissionsResponse'MethodPermissionsEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField ListPermissionsResponse'MethodPermissionsEntry "maybe'value" (Prelude.Maybe MacaroonPermissionList) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListPermissionsResponse'MethodPermissionsEntry'value
           (\ x__ y__
              -> x__
                   {_ListPermissionsResponse'MethodPermissionsEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListPermissionsResponse'MethodPermissionsEntry where
  messageName _
    = Data.Text.pack
        "lnrpc.ListPermissionsResponse.MethodPermissionsEntry"
  packedMessageDescriptor _
    = "\n\
      \\SYNMethodPermissionsEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC23\n\
      \\ENQvalue\CAN\STX \SOH(\v2\GS.lnrpc.MacaroonPermissionListR\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 ListPermissionsResponse'MethodPermissionsEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor MacaroonPermissionList)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'value")) ::
              Data.ProtoLens.FieldDescriptor ListPermissionsResponse'MethodPermissionsEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListPermissionsResponse'MethodPermissionsEntry'_unknownFields
        (\ x__ y__
           -> x__
                {_ListPermissionsResponse'MethodPermissionsEntry'_unknownFields = y__})
  defMessage
    = ListPermissionsResponse'MethodPermissionsEntry'_constructor
        {_ListPermissionsResponse'MethodPermissionsEntry'key = Data.ProtoLens.fieldDefault,
         _ListPermissionsResponse'MethodPermissionsEntry'value = Prelude.Nothing,
         _ListPermissionsResponse'MethodPermissionsEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListPermissionsResponse'MethodPermissionsEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser ListPermissionsResponse'MethodPermissionsEntry
        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) "MethodPermissionsEntry"
  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 ListPermissionsResponse'MethodPermissionsEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListPermissionsResponse'MethodPermissionsEntry'_unknownFields
                x__)
             (Control.DeepSeq.deepseq
                (_ListPermissionsResponse'MethodPermissionsEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_ListPermissionsResponse'MethodPermissionsEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.minConfs' @:: Lens' ListUnspentRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.maxConfs' @:: Lens' ListUnspentRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.account' @:: Lens' ListUnspentRequest Data.Text.Text@ -}
data ListUnspentRequest
  = ListUnspentRequest'_constructor {_ListUnspentRequest'minConfs :: !Data.Int.Int32,
                                     _ListUnspentRequest'maxConfs :: !Data.Int.Int32,
                                     _ListUnspentRequest'account :: !Data.Text.Text,
                                     _ListUnspentRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListUnspentRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListUnspentRequest "minConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListUnspentRequest'minConfs
           (\ x__ y__ -> x__ {_ListUnspentRequest'minConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListUnspentRequest "maxConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListUnspentRequest'maxConfs
           (\ x__ y__ -> x__ {_ListUnspentRequest'maxConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ListUnspentRequest "account" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListUnspentRequest'account
           (\ x__ y__ -> x__ {_ListUnspentRequest'account = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListUnspentRequest where
  messageName _ = Data.Text.pack "lnrpc.ListUnspentRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2ListUnspentRequest\DC2\ESC\n\
      \\tmin_confs\CAN\SOH \SOH(\ENQR\bminConfs\DC2\ESC\n\
      \\tmax_confs\CAN\STX \SOH(\ENQR\bmaxConfs\DC2\CAN\n\
      \\aaccount\CAN\ETX \SOH(\tR\aaccount"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        minConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minConfs")) ::
              Data.ProtoLens.FieldDescriptor ListUnspentRequest
        maxConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxConfs")) ::
              Data.ProtoLens.FieldDescriptor ListUnspentRequest
        account__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "account"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"account")) ::
              Data.ProtoLens.FieldDescriptor ListUnspentRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, minConfs__field_descriptor),
           (Data.ProtoLens.Tag 2, maxConfs__field_descriptor),
           (Data.ProtoLens.Tag 3, account__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListUnspentRequest'_unknownFields
        (\ x__ y__ -> x__ {_ListUnspentRequest'_unknownFields = y__})
  defMessage
    = ListUnspentRequest'_constructor
        {_ListUnspentRequest'minConfs = Data.ProtoLens.fieldDefault,
         _ListUnspentRequest'maxConfs = Data.ProtoLens.fieldDefault,
         _ListUnspentRequest'account = Data.ProtoLens.fieldDefault,
         _ListUnspentRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListUnspentRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser ListUnspentRequest
        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)
                                       "min_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minConfs") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"maxConfs") 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))
                                       "account"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"account") 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) "ListUnspentRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"minConfs") _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 @"maxConfs") _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 @"account") _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.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData ListUnspentRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListUnspentRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ListUnspentRequest'minConfs x__)
                (Control.DeepSeq.deepseq
                   (_ListUnspentRequest'maxConfs x__)
                   (Control.DeepSeq.deepseq (_ListUnspentRequest'account x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.utxos' @:: Lens' ListUnspentResponse [Utxo]@
         * 'Proto.LndGrpc_Fields.vec'utxos' @:: Lens' ListUnspentResponse (Data.Vector.Vector Utxo)@ -}
data ListUnspentResponse
  = ListUnspentResponse'_constructor {_ListUnspentResponse'utxos :: !(Data.Vector.Vector Utxo),
                                      _ListUnspentResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ListUnspentResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ListUnspentResponse "utxos" [Utxo] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListUnspentResponse'utxos
           (\ x__ y__ -> x__ {_ListUnspentResponse'utxos = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField ListUnspentResponse "vec'utxos" (Data.Vector.Vector Utxo) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ListUnspentResponse'utxos
           (\ x__ y__ -> x__ {_ListUnspentResponse'utxos = y__}))
        Prelude.id
instance Data.ProtoLens.Message ListUnspentResponse where
  messageName _ = Data.Text.pack "lnrpc.ListUnspentResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3ListUnspentResponse\DC2!\n\
      \\ENQutxos\CAN\SOH \ETX(\v2\v.lnrpc.UtxoR\ENQutxos"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        utxos__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "utxos"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Utxo)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"utxos")) ::
              Data.ProtoLens.FieldDescriptor ListUnspentResponse
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, utxos__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ListUnspentResponse'_unknownFields
        (\ x__ y__ -> x__ {_ListUnspentResponse'_unknownFields = y__})
  defMessage
    = ListUnspentResponse'_constructor
        {_ListUnspentResponse'utxos = Data.Vector.Generic.empty,
         _ListUnspentResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ListUnspentResponse
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Utxo
             -> Data.ProtoLens.Encoding.Bytes.Parser ListUnspentResponse
        loop x mutable'utxos
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'utxos <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'utxos)
                      (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'utxos") frozen'utxos 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)
                                        "utxos"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'utxos 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'utxos
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'utxos <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'utxos)
          "ListUnspentResponse"
  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'utxos") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData ListUnspentResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ListUnspentResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_ListUnspentResponse'utxos x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.paymentAddr' @:: Lens' MPPRecord Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show MPPRecord where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.nonce' @:: Lens' MacaroonId Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.storageId' @:: Lens' MacaroonId Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.ops' @:: Lens' MacaroonId [Op]@
         * 'Proto.LndGrpc_Fields.vec'ops' @:: Lens' MacaroonId (Data.Vector.Vector Op)@ -}
data MacaroonId
  = MacaroonId'_constructor {_MacaroonId'nonce :: !Data.ByteString.ByteString,
                             _MacaroonId'storageId :: !Data.ByteString.ByteString,
                             _MacaroonId'ops :: !(Data.Vector.Vector Op),
                             _MacaroonId'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show MacaroonId where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField MacaroonId "nonce" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonId'nonce (\ x__ y__ -> x__ {_MacaroonId'nonce = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField MacaroonId "storageId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonId'storageId
           (\ x__ y__ -> x__ {_MacaroonId'storageId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField MacaroonId "ops" [Op] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonId'ops (\ x__ y__ -> x__ {_MacaroonId'ops = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField MacaroonId "vec'ops" (Data.Vector.Vector Op) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonId'ops (\ x__ y__ -> x__ {_MacaroonId'ops = y__}))
        Prelude.id
instance Data.ProtoLens.Message MacaroonId where
  messageName _ = Data.Text.pack "lnrpc.MacaroonId"
  packedMessageDescriptor _
    = "\n\
      \\n\
      \MacaroonId\DC2\DC4\n\
      \\ENQnonce\CAN\SOH \SOH(\fR\ENQnonce\DC2\FS\n\
      \\tstorageId\CAN\STX \SOH(\fR\tstorageId\DC2\ESC\n\
      \\ETXops\CAN\ETX \ETX(\v2\t.lnrpc.OpR\ETXops"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        nonce__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "nonce"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"nonce")) ::
              Data.ProtoLens.FieldDescriptor MacaroonId
        storageId__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "storageId"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"storageId")) ::
              Data.ProtoLens.FieldDescriptor MacaroonId
        ops__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "ops"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Op)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"ops")) ::
              Data.ProtoLens.FieldDescriptor MacaroonId
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, nonce__field_descriptor),
           (Data.ProtoLens.Tag 2, storageId__field_descriptor),
           (Data.ProtoLens.Tag 3, ops__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _MacaroonId'_unknownFields
        (\ x__ y__ -> x__ {_MacaroonId'_unknownFields = y__})
  defMessage
    = MacaroonId'_constructor
        {_MacaroonId'nonce = Data.ProtoLens.fieldDefault,
         _MacaroonId'storageId = Data.ProtoLens.fieldDefault,
         _MacaroonId'ops = Data.Vector.Generic.empty,
         _MacaroonId'_unknownFields = []}
  parseMessage
    = let
        loop ::
          MacaroonId
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Op
             -> Data.ProtoLens.Encoding.Bytes.Parser MacaroonId
        loop x mutable'ops
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'ops <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'ops)
                      (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'ops") frozen'ops 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))
                                       "nonce"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nonce") y x)
                                  mutable'ops
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "storageId"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"storageId") y x)
                                  mutable'ops
                        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)
                                        "ops"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'ops 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'ops
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'ops <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                               Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'ops)
          "MacaroonId"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nonce") _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 @"storageId") _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.<>)
                   (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'ops") _x))
                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
instance Control.DeepSeq.NFData MacaroonId where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_MacaroonId'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_MacaroonId'nonce x__)
                (Control.DeepSeq.deepseq
                   (_MacaroonId'storageId x__)
                   (Control.DeepSeq.deepseq (_MacaroonId'ops x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.entity' @:: Lens' MacaroonPermission Data.Text.Text@
         * 'Proto.LndGrpc_Fields.action' @:: Lens' MacaroonPermission Data.Text.Text@ -}
data MacaroonPermission
  = MacaroonPermission'_constructor {_MacaroonPermission'entity :: !Data.Text.Text,
                                     _MacaroonPermission'action :: !Data.Text.Text,
                                     _MacaroonPermission'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show MacaroonPermission where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField MacaroonPermission "entity" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonPermission'entity
           (\ x__ y__ -> x__ {_MacaroonPermission'entity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField MacaroonPermission "action" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonPermission'action
           (\ x__ y__ -> x__ {_MacaroonPermission'action = y__}))
        Prelude.id
instance Data.ProtoLens.Message MacaroonPermission where
  messageName _ = Data.Text.pack "lnrpc.MacaroonPermission"
  packedMessageDescriptor _
    = "\n\
      \\DC2MacaroonPermission\DC2\SYN\n\
      \\ACKentity\CAN\SOH \SOH(\tR\ACKentity\DC2\SYN\n\
      \\ACKaction\CAN\STX \SOH(\tR\ACKaction"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        entity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "entity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"entity")) ::
              Data.ProtoLens.FieldDescriptor MacaroonPermission
        action__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "action"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"action")) ::
              Data.ProtoLens.FieldDescriptor MacaroonPermission
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, entity__field_descriptor),
           (Data.ProtoLens.Tag 2, action__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _MacaroonPermission'_unknownFields
        (\ x__ y__ -> x__ {_MacaroonPermission'_unknownFields = y__})
  defMessage
    = MacaroonPermission'_constructor
        {_MacaroonPermission'entity = Data.ProtoLens.fieldDefault,
         _MacaroonPermission'action = Data.ProtoLens.fieldDefault,
         _MacaroonPermission'_unknownFields = []}
  parseMessage
    = let
        loop ::
          MacaroonPermission
          -> Data.ProtoLens.Encoding.Bytes.Parser MacaroonPermission
        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))
                                       "entity"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"entity") 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))
                                       "action"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"action") 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) "MacaroonPermission"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"entity") _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 @"action") _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 MacaroonPermission where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_MacaroonPermission'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_MacaroonPermission'entity x__)
                (Control.DeepSeq.deepseq (_MacaroonPermission'action x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.permissions' @:: Lens' MacaroonPermissionList [MacaroonPermission]@
         * 'Proto.LndGrpc_Fields.vec'permissions' @:: Lens' MacaroonPermissionList (Data.Vector.Vector MacaroonPermission)@ -}
data MacaroonPermissionList
  = MacaroonPermissionList'_constructor {_MacaroonPermissionList'permissions :: !(Data.Vector.Vector MacaroonPermission),
                                         _MacaroonPermissionList'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show MacaroonPermissionList where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField MacaroonPermissionList "permissions" [MacaroonPermission] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonPermissionList'permissions
           (\ x__ y__ -> x__ {_MacaroonPermissionList'permissions = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField MacaroonPermissionList "vec'permissions" (Data.Vector.Vector MacaroonPermission) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MacaroonPermissionList'permissions
           (\ x__ y__ -> x__ {_MacaroonPermissionList'permissions = y__}))
        Prelude.id
instance Data.ProtoLens.Message MacaroonPermissionList where
  messageName _ = Data.Text.pack "lnrpc.MacaroonPermissionList"
  packedMessageDescriptor _
    = "\n\
      \\SYNMacaroonPermissionList\DC2;\n\
      \\vpermissions\CAN\SOH \ETX(\v2\EM.lnrpc.MacaroonPermissionR\vpermissions"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        permissions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "permissions"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor MacaroonPermission)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"permissions")) ::
              Data.ProtoLens.FieldDescriptor MacaroonPermissionList
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, permissions__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _MacaroonPermissionList'_unknownFields
        (\ x__ y__ -> x__ {_MacaroonPermissionList'_unknownFields = y__})
  defMessage
    = MacaroonPermissionList'_constructor
        {_MacaroonPermissionList'permissions = Data.Vector.Generic.empty,
         _MacaroonPermissionList'_unknownFields = []}
  parseMessage
    = let
        loop ::
          MacaroonPermissionList
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MacaroonPermission
             -> Data.ProtoLens.Encoding.Bytes.Parser MacaroonPermissionList
        loop x mutable'permissions
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'permissions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                 mutable'permissions)
                      (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'permissions")
                              frozen'permissions
                              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)
                                        "permissions"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'permissions 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'permissions
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'permissions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'permissions)
          "MacaroonPermissionList"
  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'permissions") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData MacaroonPermissionList where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_MacaroonPermissionList'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_MacaroonPermissionList'permissions x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.chanPoints' @:: Lens' MultiChanBackup [ChannelPoint]@
         * 'Proto.LndGrpc_Fields.vec'chanPoints' @:: Lens' MultiChanBackup (Data.Vector.Vector ChannelPoint)@
         * 'Proto.LndGrpc_Fields.multiChanBackup' @:: Lens' MultiChanBackup Data.ByteString.ByteString@ -}
data MultiChanBackup
  = MultiChanBackup'_constructor {_MultiChanBackup'chanPoints :: !(Data.Vector.Vector ChannelPoint),
                                  _MultiChanBackup'multiChanBackup :: !Data.ByteString.ByteString,
                                  _MultiChanBackup'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show MultiChanBackup where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField MultiChanBackup "chanPoints" [ChannelPoint] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MultiChanBackup'chanPoints
           (\ x__ y__ -> x__ {_MultiChanBackup'chanPoints = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField MultiChanBackup "vec'chanPoints" (Data.Vector.Vector ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MultiChanBackup'chanPoints
           (\ x__ y__ -> x__ {_MultiChanBackup'chanPoints = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField MultiChanBackup "multiChanBackup" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _MultiChanBackup'multiChanBackup
           (\ x__ y__ -> x__ {_MultiChanBackup'multiChanBackup = y__}))
        Prelude.id
instance Data.ProtoLens.Message MultiChanBackup where
  messageName _ = Data.Text.pack "lnrpc.MultiChanBackup"
  packedMessageDescriptor _
    = "\n\
      \\SIMultiChanBackup\DC24\n\
      \\vchan_points\CAN\SOH \ETX(\v2\DC3.lnrpc.ChannelPointR\n\
      \chanPoints\DC2*\n\
      \\DC1multi_chan_backup\CAN\STX \SOH(\fR\SImultiChanBackup"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanPoints__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_points"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelPoint)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"chanPoints")) ::
              Data.ProtoLens.FieldDescriptor MultiChanBackup
        multiChanBackup__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "multi_chan_backup"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"multiChanBackup")) ::
              Data.ProtoLens.FieldDescriptor MultiChanBackup
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanPoints__field_descriptor),
           (Data.ProtoLens.Tag 2, multiChanBackup__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _MultiChanBackup'_unknownFields
        (\ x__ y__ -> x__ {_MultiChanBackup'_unknownFields = y__})
  defMessage
    = MultiChanBackup'_constructor
        {_MultiChanBackup'chanPoints = Data.Vector.Generic.empty,
         _MultiChanBackup'multiChanBackup = Data.ProtoLens.fieldDefault,
         _MultiChanBackup'_unknownFields = []}
  parseMessage
    = let
        loop ::
          MultiChanBackup
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChannelPoint
             -> Data.ProtoLens.Encoding.Bytes.Parser MultiChanBackup
        loop x mutable'chanPoints
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'chanPoints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                mutable'chanPoints)
                      (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'chanPoints")
                              frozen'chanPoints
                              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_points"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'chanPoints y)
                                loop x v
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "multi_chan_backup"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"multiChanBackup") y x)
                                  mutable'chanPoints
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'chanPoints
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'chanPoints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                      Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'chanPoints)
          "MultiChanBackup"
  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'chanPoints") _x))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view
                         (Data.ProtoLens.Field.field @"multiChanBackup") _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 MultiChanBackup where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_MultiChanBackup'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_MultiChanBackup'chanPoints x__)
                (Control.DeepSeq.deepseq
                   (_MultiChanBackup'multiChanBackup x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.graphDiameter' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.avgOutDegree' @:: Lens' NetworkInfo Prelude.Double@
         * 'Proto.LndGrpc_Fields.maxOutDegree' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numNodes' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.numChannels' @:: Lens' NetworkInfo Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.totalNetworkCapacity' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.avgChannelSize' @:: Lens' NetworkInfo Prelude.Double@
         * 'Proto.LndGrpc_Fields.minChannelSize' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.maxChannelSize' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.medianChannelSizeSat' @:: Lens' NetworkInfo Data.Int.Int64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NetworkInfo where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
instance Prelude.Show NetworkInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.type'' @:: Lens' NewAddressRequest AddressType@
         * 'Proto.LndGrpc_Fields.account' @:: Lens' NewAddressRequest Data.Text.Text@ -}
data NewAddressRequest
  = NewAddressRequest'_constructor {_NewAddressRequest'type' :: !AddressType,
                                    _NewAddressRequest'account :: !Data.Text.Text,
                                    _NewAddressRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show NewAddressRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField NewAddressRequest "type'" AddressType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NewAddressRequest'type'
           (\ x__ y__ -> x__ {_NewAddressRequest'type' = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField NewAddressRequest "account" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NewAddressRequest'account
           (\ x__ y__ -> x__ {_NewAddressRequest'account = y__}))
        Prelude.id
instance Data.ProtoLens.Message NewAddressRequest where
  messageName _ = Data.Text.pack "lnrpc.NewAddressRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC1NewAddressRequest\DC2&\n\
      \\EOTtype\CAN\SOH \SOH(\SO2\DC2.lnrpc.AddressTypeR\EOTtype\DC2\CAN\n\
      \\aaccount\CAN\STX \SOH(\tR\aaccount"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        type'__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor AddressType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"type'")) ::
              Data.ProtoLens.FieldDescriptor NewAddressRequest
        account__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "account"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"account")) ::
              Data.ProtoLens.FieldDescriptor NewAddressRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, type'__field_descriptor),
           (Data.ProtoLens.Tag 2, account__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NewAddressRequest'_unknownFields
        (\ x__ y__ -> x__ {_NewAddressRequest'_unknownFields = y__})
  defMessage
    = NewAddressRequest'_constructor
        {_NewAddressRequest'type' = Data.ProtoLens.fieldDefault,
         _NewAddressRequest'account = Data.ProtoLens.fieldDefault,
         _NewAddressRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NewAddressRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser NewAddressRequest
        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))
                                       "type"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") 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))
                                       "account"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"account") 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) "NewAddressRequest"
  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 8)
                      ((Prelude..)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
                         Prelude.fromEnum
                         _v))
             ((Data.Monoid.<>)
                (let
                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"account") _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 NewAddressRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NewAddressRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_NewAddressRequest'type' x__)
                (Control.DeepSeq.deepseq (_NewAddressRequest'account x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.address' @:: Lens' NewAddressResponse Data.Text.Text@ -}
data NewAddressResponse
  = NewAddressResponse'_constructor {_NewAddressResponse'address :: !Data.Text.Text,
                                     _NewAddressResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show NewAddressResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField NewAddressResponse "address" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _NewAddressResponse'address
           (\ x__ y__ -> x__ {_NewAddressResponse'address = y__}))
        Prelude.id
instance Data.ProtoLens.Message NewAddressResponse where
  messageName _ = Data.Text.pack "lnrpc.NewAddressResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC2NewAddressResponse\DC2\CAN\n\
      \\aaddress\CAN\SOH \SOH(\tR\aaddress"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        address__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"address")) ::
              Data.ProtoLens.FieldDescriptor NewAddressResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, address__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _NewAddressResponse'_unknownFields
        (\ x__ y__ -> x__ {_NewAddressResponse'_unknownFields = y__})
  defMessage
    = NewAddressResponse'_constructor
        {_NewAddressResponse'address = Data.ProtoLens.fieldDefault,
         _NewAddressResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          NewAddressResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser NewAddressResponse
        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))
                                       "address"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"address") 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) "NewAddressResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"address") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData NewAddressResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_NewAddressResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_NewAddressResponse'address x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.network' @:: Lens' NodeAddress Data.Text.Text@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeAddress where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.node' @:: Lens' NodeInfo LightningNode@
         * 'Proto.LndGrpc_Fields.maybe'node' @:: Lens' NodeInfo (Prelude.Maybe LightningNode)@
         * 'Proto.LndGrpc_Fields.numChannels' @:: Lens' NodeInfo Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.totalCapacity' @:: Lens' NodeInfo Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.channels' @:: Lens' NodeInfo [ChannelEdge]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeInfo where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.pubKey' @:: Lens' NodeInfoRequest Data.Text.Text@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeInfoRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
data NodeMetricType
  = UNKNOWN |
    BETWEENNESS_CENTRALITY |
    NodeMetricType'Unrecognized !NodeMetricType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.types' @:: Lens' NodeMetricsRequest [NodeMetricType]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeMetricsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_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)
instance Prelude.Show NodeMetricsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' NodeMetricsResponse'BetweennessCentralityEntry Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' NodeMetricsResponse'BetweennessCentralityEntry FloatMetric@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeMetricsResponse'BetweennessCentralityEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.from' @:: Lens' NodePair Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodePair where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.addresses' @:: Lens' NodeUpdate [Data.Text.Text]@
         * 'Proto.LndGrpc_Fields.vec'addresses' @:: Lens' NodeUpdate (Data.Vector.Vector Data.Text.Text)@
         * 'Proto.LndGrpc_Fields.identityKey' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.LndGrpc_Fields.globalFeatures' @:: Lens' NodeUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.alias' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.LndGrpc_Fields.color' @:: Lens' NodeUpdate Data.Text.Text@
         * 'Proto.LndGrpc_Fields.nodeAddresses' @:: Lens' NodeUpdate [NodeAddress]@
         * 'Proto.LndGrpc_Fields.vec'nodeAddresses' @:: Lens' NodeUpdate (Data.Vector.Vector NodeAddress)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' NodeUpdate'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' NodeUpdate'FeaturesEntry Feature@
         * 'Proto.LndGrpc_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)
instance Prelude.Show NodeUpdate'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.entity' @:: Lens' Op Data.Text.Text@
         * 'Proto.LndGrpc_Fields.actions' @:: Lens' Op [Data.Text.Text]@
         * 'Proto.LndGrpc_Fields.vec'actions' @:: Lens' Op (Data.Vector.Vector Data.Text.Text)@ -}
data Op
  = Op'_constructor {_Op'entity :: !Data.Text.Text,
                     _Op'actions :: !(Data.Vector.Vector Data.Text.Text),
                     _Op'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Op where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Op "entity" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Op'entity (\ x__ y__ -> x__ {_Op'entity = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Op "actions" [Data.Text.Text] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Op'actions (\ x__ y__ -> x__ {_Op'actions = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Op "vec'actions" (Data.Vector.Vector Data.Text.Text) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Op'actions (\ x__ y__ -> x__ {_Op'actions = y__}))
        Prelude.id
instance Data.ProtoLens.Message Op where
  messageName _ = Data.Text.pack "lnrpc.Op"
  packedMessageDescriptor _
    = "\n\
      \\STXOp\DC2\SYN\n\
      \\ACKentity\CAN\SOH \SOH(\tR\ACKentity\DC2\CAN\n\
      \\aactions\CAN\STX \ETX(\tR\aactions"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        entity__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "entity"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"entity")) ::
              Data.ProtoLens.FieldDescriptor Op
        actions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "actions"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"actions")) ::
              Data.ProtoLens.FieldDescriptor Op
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, entity__field_descriptor),
           (Data.ProtoLens.Tag 2, actions__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Op'_unknownFields (\ x__ y__ -> x__ {_Op'_unknownFields = y__})
  defMessage
    = Op'_constructor
        {_Op'entity = Data.ProtoLens.fieldDefault,
         _Op'actions = Data.Vector.Generic.empty, _Op'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Op
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
             -> Data.ProtoLens.Encoding.Bytes.Parser Op
        loop x mutable'actions
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'actions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                             mutable'actions)
                      (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'actions") frozen'actions 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))
                                       "entity"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"entity") y x)
                                  mutable'actions
                        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))
                                        "actions"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'actions 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'actions
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'actions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                   Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'actions)
          "Op"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"entity") _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.<>)
                (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.Text.Encoding.encodeUtf8
                              _v))
                   (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'actions") _x))
                (Data.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData Op where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Op'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Op'entity x__) (Control.DeepSeq.deepseq (_Op'actions x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.satPerVbyte' @:: Lens' OpenChannelRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.nodePubkey' @:: Lens' OpenChannelRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.nodePubkeyString' @:: Lens' OpenChannelRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.localFundingAmount' @:: Lens' OpenChannelRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pushSat' @:: Lens' OpenChannelRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.targetConf' @:: Lens' OpenChannelRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.satPerByte' @:: Lens' OpenChannelRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.private' @:: Lens' OpenChannelRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.minHtlcMsat' @:: Lens' OpenChannelRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.remoteCsvDelay' @:: Lens' OpenChannelRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.minConfs' @:: Lens' OpenChannelRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.spendUnconfirmed' @:: Lens' OpenChannelRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.closeAddress' @:: Lens' OpenChannelRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.fundingShim' @:: Lens' OpenChannelRequest FundingShim@
         * 'Proto.LndGrpc_Fields.maybe'fundingShim' @:: Lens' OpenChannelRequest (Prelude.Maybe FundingShim)@
         * 'Proto.LndGrpc_Fields.remoteMaxValueInFlightMsat' @:: Lens' OpenChannelRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.remoteMaxHtlcs' @:: Lens' OpenChannelRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.maxLocalCsv' @:: Lens' OpenChannelRequest Data.Word.Word32@ -}
data OpenChannelRequest
  = OpenChannelRequest'_constructor {_OpenChannelRequest'satPerVbyte :: !Data.Word.Word64,
                                     _OpenChannelRequest'nodePubkey :: !Data.ByteString.ByteString,
                                     _OpenChannelRequest'nodePubkeyString :: !Data.Text.Text,
                                     _OpenChannelRequest'localFundingAmount :: !Data.Int.Int64,
                                     _OpenChannelRequest'pushSat :: !Data.Int.Int64,
                                     _OpenChannelRequest'targetConf :: !Data.Int.Int32,
                                     _OpenChannelRequest'satPerByte :: !Data.Int.Int64,
                                     _OpenChannelRequest'private :: !Prelude.Bool,
                                     _OpenChannelRequest'minHtlcMsat :: !Data.Int.Int64,
                                     _OpenChannelRequest'remoteCsvDelay :: !Data.Word.Word32,
                                     _OpenChannelRequest'minConfs :: !Data.Int.Int32,
                                     _OpenChannelRequest'spendUnconfirmed :: !Prelude.Bool,
                                     _OpenChannelRequest'closeAddress :: !Data.Text.Text,
                                     _OpenChannelRequest'fundingShim :: !(Prelude.Maybe FundingShim),
                                     _OpenChannelRequest'remoteMaxValueInFlightMsat :: !Data.Word.Word64,
                                     _OpenChannelRequest'remoteMaxHtlcs :: !Data.Word.Word32,
                                     _OpenChannelRequest'maxLocalCsv :: !Data.Word.Word32,
                                     _OpenChannelRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show OpenChannelRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField OpenChannelRequest "satPerVbyte" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'satPerVbyte
           (\ x__ y__ -> x__ {_OpenChannelRequest'satPerVbyte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "nodePubkey" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'nodePubkey
           (\ x__ y__ -> x__ {_OpenChannelRequest'nodePubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "nodePubkeyString" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'nodePubkeyString
           (\ x__ y__ -> x__ {_OpenChannelRequest'nodePubkeyString = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "localFundingAmount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'localFundingAmount
           (\ x__ y__ -> x__ {_OpenChannelRequest'localFundingAmount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "pushSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'pushSat
           (\ x__ y__ -> x__ {_OpenChannelRequest'pushSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "targetConf" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'targetConf
           (\ x__ y__ -> x__ {_OpenChannelRequest'targetConf = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "satPerByte" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'satPerByte
           (\ x__ y__ -> x__ {_OpenChannelRequest'satPerByte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "private" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'private
           (\ x__ y__ -> x__ {_OpenChannelRequest'private = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "minHtlcMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'minHtlcMsat
           (\ x__ y__ -> x__ {_OpenChannelRequest'minHtlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "remoteCsvDelay" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'remoteCsvDelay
           (\ x__ y__ -> x__ {_OpenChannelRequest'remoteCsvDelay = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "minConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'minConfs
           (\ x__ y__ -> x__ {_OpenChannelRequest'minConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "spendUnconfirmed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'spendUnconfirmed
           (\ x__ y__ -> x__ {_OpenChannelRequest'spendUnconfirmed = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "closeAddress" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'closeAddress
           (\ x__ y__ -> x__ {_OpenChannelRequest'closeAddress = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "fundingShim" FundingShim where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'fundingShim
           (\ x__ y__ -> x__ {_OpenChannelRequest'fundingShim = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField OpenChannelRequest "maybe'fundingShim" (Prelude.Maybe FundingShim) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'fundingShim
           (\ x__ y__ -> x__ {_OpenChannelRequest'fundingShim = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "remoteMaxValueInFlightMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'remoteMaxValueInFlightMsat
           (\ x__ y__
              -> x__ {_OpenChannelRequest'remoteMaxValueInFlightMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "remoteMaxHtlcs" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'remoteMaxHtlcs
           (\ x__ y__ -> x__ {_OpenChannelRequest'remoteMaxHtlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenChannelRequest "maxLocalCsv" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenChannelRequest'maxLocalCsv
           (\ x__ y__ -> x__ {_OpenChannelRequest'maxLocalCsv = y__}))
        Prelude.id
instance Data.ProtoLens.Message OpenChannelRequest where
  messageName _ = Data.Text.pack "lnrpc.OpenChannelRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2OpenChannelRequest\DC2\"\n\
      \\rsat_per_vbyte\CAN\SOH \SOH(\EOTR\vsatPerVbyte\DC2\US\n\
      \\vnode_pubkey\CAN\STX \SOH(\fR\n\
      \nodePubkey\DC20\n\
      \\DC2node_pubkey_string\CAN\ETX \SOH(\tR\DLEnodePubkeyStringB\STX\CAN\SOH\DC20\n\
      \\DC4local_funding_amount\CAN\EOT \SOH(\ETXR\DC2localFundingAmount\DC2\EM\n\
      \\bpush_sat\CAN\ENQ \SOH(\ETXR\apushSat\DC2\US\n\
      \\vtarget_conf\CAN\ACK \SOH(\ENQR\n\
      \targetConf\DC2$\n\
      \\fsat_per_byte\CAN\a \SOH(\ETXR\n\
      \satPerByteB\STX\CAN\SOH\DC2\CAN\n\
      \\aprivate\CAN\b \SOH(\bR\aprivate\DC2\"\n\
      \\rmin_htlc_msat\CAN\t \SOH(\ETXR\vminHtlcMsat\DC2(\n\
      \\DLEremote_csv_delay\CAN\n\
      \ \SOH(\rR\SOremoteCsvDelay\DC2\ESC\n\
      \\tmin_confs\CAN\v \SOH(\ENQR\bminConfs\DC2+\n\
      \\DC1spend_unconfirmed\CAN\f \SOH(\bR\DLEspendUnconfirmed\DC2#\n\
      \\rclose_address\CAN\r \SOH(\tR\fcloseAddress\DC25\n\
      \\ffunding_shim\CAN\SO \SOH(\v2\DC2.lnrpc.FundingShimR\vfundingShim\DC2C\n\
      \\USremote_max_value_in_flight_msat\CAN\SI \SOH(\EOTR\SUBremoteMaxValueInFlightMsat\DC2(\n\
      \\DLEremote_max_htlcs\CAN\DLE \SOH(\rR\SOremoteMaxHtlcs\DC2\"\n\
      \\rmax_local_csv\CAN\DC1 \SOH(\rR\vmaxLocalCsv"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        satPerVbyte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_vbyte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerVbyte")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        nodePubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_pubkey"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"nodePubkey")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        nodePubkeyString__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "node_pubkey_string"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"nodePubkeyString")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        localFundingAmount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "local_funding_amount"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"localFundingAmount")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        pushSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "push_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pushSat")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        targetConf__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "target_conf"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"targetConf")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        satPerByte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_byte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerByte")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        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 OpenChannelRequest
        minHtlcMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minHtlcMsat")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        remoteCsvDelay__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_csv_delay"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteCsvDelay")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        minConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minConfs")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        spendUnconfirmed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "spend_unconfirmed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"spendUnconfirmed")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        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 OpenChannelRequest
        fundingShim__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_shim"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor FundingShim)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'fundingShim")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        remoteMaxValueInFlightMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_max_value_in_flight_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteMaxValueInFlightMsat")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        remoteMaxHtlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "remote_max_htlcs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"remoteMaxHtlcs")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
        maxLocalCsv__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "max_local_csv"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"maxLocalCsv")) ::
              Data.ProtoLens.FieldDescriptor OpenChannelRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, satPerVbyte__field_descriptor),
           (Data.ProtoLens.Tag 2, nodePubkey__field_descriptor),
           (Data.ProtoLens.Tag 3, nodePubkeyString__field_descriptor),
           (Data.ProtoLens.Tag 4, localFundingAmount__field_descriptor),
           (Data.ProtoLens.Tag 5, pushSat__field_descriptor),
           (Data.ProtoLens.Tag 6, targetConf__field_descriptor),
           (Data.ProtoLens.Tag 7, satPerByte__field_descriptor),
           (Data.ProtoLens.Tag 8, private__field_descriptor),
           (Data.ProtoLens.Tag 9, minHtlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 10, remoteCsvDelay__field_descriptor),
           (Data.ProtoLens.Tag 11, minConfs__field_descriptor),
           (Data.ProtoLens.Tag 12, spendUnconfirmed__field_descriptor),
           (Data.ProtoLens.Tag 13, closeAddress__field_descriptor),
           (Data.ProtoLens.Tag 14, fundingShim__field_descriptor),
           (Data.ProtoLens.Tag 15,
            remoteMaxValueInFlightMsat__field_descriptor),
           (Data.ProtoLens.Tag 16, remoteMaxHtlcs__field_descriptor),
           (Data.ProtoLens.Tag 17, maxLocalCsv__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _OpenChannelRequest'_unknownFields
        (\ x__ y__ -> x__ {_OpenChannelRequest'_unknownFields = y__})
  defMessage
    = OpenChannelRequest'_constructor
        {_OpenChannelRequest'satPerVbyte = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'nodePubkey = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'nodePubkeyString = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'localFundingAmount = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'pushSat = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'targetConf = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'satPerByte = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'private = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'minHtlcMsat = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'remoteCsvDelay = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'minConfs = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'spendUnconfirmed = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'closeAddress = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'fundingShim = Prelude.Nothing,
         _OpenChannelRequest'remoteMaxValueInFlightMsat = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'remoteMaxHtlcs = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'maxLocalCsv = Data.ProtoLens.fieldDefault,
         _OpenChannelRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          OpenChannelRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser OpenChannelRequest
        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_per_vbyte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerVbyte") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "node_pubkey"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nodePubkey") 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))
                                       "node_pubkey_string"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"nodePubkeyString") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "local_funding_amount"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"localFundingAmount") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "push_sat"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pushSat") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "target_conf"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"targetConf") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_per_byte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerByte") y x)
                        64
                          -> 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)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_htlc_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlcMsat") y x)
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_csv_delay"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteCsvDelay") y x)
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minConfs") y x)
                        96
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "spend_unconfirmed"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"spendUnconfirmed") y x)
                        106
                          -> 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)
                        114
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.isolate
                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
                                       "funding_shim"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fundingShim") y x)
                        120
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt
                                       "remote_max_value_in_flight_msat"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteMaxValueInFlightMsat") y x)
                        128
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "remote_max_htlcs"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"remoteMaxHtlcs") y x)
                        136
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "max_local_csv"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"maxLocalCsv") 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) "OpenChannelRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"satPerVbyte") _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 @"nodePubkey") _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 @"nodePubkeyString") _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 @"localFundingAmount") _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 @"pushSat") _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 @"targetConf") _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 @"satPerByte") _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 @"private") _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
                                              (\ b -> if b then 1 else 0)
                                              _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 72)
                                              ((Prelude..)
                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
                                                 Prelude.fromIntegral
                                                 _v))
                                     ((Data.Monoid.<>)
                                        (let
                                           _v
                                             = Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"remoteCsvDelay") _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 @"minConfs") _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
                                                          @"spendUnconfirmed")
                                                       _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
                                                          (\ b -> if b then 1 else 0)
                                                          _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
                                                             106)
                                                          ((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'fundingShim")
                                                           _x
                                                     of
                                                       Prelude.Nothing -> Data.Monoid.mempty
                                                       (Prelude.Just _v)
                                                         -> (Data.Monoid.<>)
                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                 114)
                                                              ((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
                                                                   @"remoteMaxValueInFlightMsat")
                                                                _x
                                                        in
                                                          if (Prelude.==)
                                                               _v Data.ProtoLens.fieldDefault then
                                                              Data.Monoid.mempty
                                                          else
                                                              (Data.Monoid.<>)
                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                   120)
                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                   _v))
                                                       ((Data.Monoid.<>)
                                                          (let
                                                             _v
                                                               = Lens.Family2.view
                                                                   (Data.ProtoLens.Field.field
                                                                      @"remoteMaxHtlcs")
                                                                   _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
                                                                         @"maxLocalCsv")
                                                                      _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
                                                                         Prelude.fromIntegral
                                                                         _v))
                                                             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                                                (Lens.Family2.view
                                                                   Data.ProtoLens.unknownFields
                                                                   _x))))))))))))))))))
instance Control.DeepSeq.NFData OpenChannelRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_OpenChannelRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_OpenChannelRequest'satPerVbyte x__)
                (Control.DeepSeq.deepseq
                   (_OpenChannelRequest'nodePubkey x__)
                   (Control.DeepSeq.deepseq
                      (_OpenChannelRequest'nodePubkeyString x__)
                      (Control.DeepSeq.deepseq
                         (_OpenChannelRequest'localFundingAmount x__)
                         (Control.DeepSeq.deepseq
                            (_OpenChannelRequest'pushSat x__)
                            (Control.DeepSeq.deepseq
                               (_OpenChannelRequest'targetConf x__)
                               (Control.DeepSeq.deepseq
                                  (_OpenChannelRequest'satPerByte x__)
                                  (Control.DeepSeq.deepseq
                                     (_OpenChannelRequest'private x__)
                                     (Control.DeepSeq.deepseq
                                        (_OpenChannelRequest'minHtlcMsat x__)
                                        (Control.DeepSeq.deepseq
                                           (_OpenChannelRequest'remoteCsvDelay x__)
                                           (Control.DeepSeq.deepseq
                                              (_OpenChannelRequest'minConfs x__)
                                              (Control.DeepSeq.deepseq
                                                 (_OpenChannelRequest'spendUnconfirmed x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_OpenChannelRequest'closeAddress x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_OpenChannelRequest'fundingShim x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_OpenChannelRequest'remoteMaxValueInFlightMsat
                                                             x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_OpenChannelRequest'remoteMaxHtlcs
                                                                x__)
                                                             (Control.DeepSeq.deepseq
                                                                (_OpenChannelRequest'maxLocalCsv
                                                                   x__)
                                                                ())))))))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' OpenStatusUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.maybe'update' @:: Lens' OpenStatusUpdate (Prelude.Maybe OpenStatusUpdate'Update)@
         * 'Proto.LndGrpc_Fields.maybe'chanPending' @:: Lens' OpenStatusUpdate (Prelude.Maybe PendingUpdate)@
         * 'Proto.LndGrpc_Fields.chanPending' @:: Lens' OpenStatusUpdate PendingUpdate@
         * 'Proto.LndGrpc_Fields.maybe'chanOpen' @:: Lens' OpenStatusUpdate (Prelude.Maybe ChannelOpenUpdate)@
         * 'Proto.LndGrpc_Fields.chanOpen' @:: Lens' OpenStatusUpdate ChannelOpenUpdate@
         * 'Proto.LndGrpc_Fields.maybe'psbtFund' @:: Lens' OpenStatusUpdate (Prelude.Maybe ReadyForPsbtFunding)@
         * 'Proto.LndGrpc_Fields.psbtFund' @:: Lens' OpenStatusUpdate ReadyForPsbtFunding@ -}
data OpenStatusUpdate
  = OpenStatusUpdate'_constructor {_OpenStatusUpdate'pendingChanId :: !Data.ByteString.ByteString,
                                   _OpenStatusUpdate'update :: !(Prelude.Maybe OpenStatusUpdate'Update),
                                   _OpenStatusUpdate'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show OpenStatusUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data OpenStatusUpdate'Update
  = OpenStatusUpdate'ChanPending !PendingUpdate |
    OpenStatusUpdate'ChanOpen !ChannelOpenUpdate |
    OpenStatusUpdate'PsbtFund !ReadyForPsbtFunding
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "pendingChanId" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'pendingChanId
           (\ x__ y__ -> x__ {_OpenStatusUpdate'pendingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "maybe'update" (Prelude.Maybe OpenStatusUpdate'Update) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "maybe'chanPending" (Prelude.Maybe PendingUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (OpenStatusUpdate'ChanPending x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap OpenStatusUpdate'ChanPending y__))
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "chanPending" PendingUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (OpenStatusUpdate'ChanPending x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap OpenStatusUpdate'ChanPending y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "maybe'chanOpen" (Prelude.Maybe ChannelOpenUpdate) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (OpenStatusUpdate'ChanOpen x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap OpenStatusUpdate'ChanOpen y__))
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "chanOpen" ChannelOpenUpdate where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (OpenStatusUpdate'ChanOpen x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap OpenStatusUpdate'ChanOpen y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "maybe'psbtFund" (Prelude.Maybe ReadyForPsbtFunding) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (OpenStatusUpdate'PsbtFund x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap OpenStatusUpdate'PsbtFund y__))
instance Data.ProtoLens.Field.HasField OpenStatusUpdate "psbtFund" ReadyForPsbtFunding where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _OpenStatusUpdate'update
           (\ x__ y__ -> x__ {_OpenStatusUpdate'update = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (OpenStatusUpdate'PsbtFund x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap OpenStatusUpdate'PsbtFund y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message OpenStatusUpdate where
  messageName _ = Data.Text.pack "lnrpc.OpenStatusUpdate"
  packedMessageDescriptor _
    = "\n\
      \\DLEOpenStatusUpdate\DC29\n\
      \\fchan_pending\CAN\SOH \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\vchanPending\DC27\n\
      \\tchan_open\CAN\ETX \SOH(\v2\CAN.lnrpc.ChannelOpenUpdateH\NULR\bchanOpen\DC29\n\
      \\tpsbt_fund\CAN\ENQ \SOH(\v2\SUB.lnrpc.ReadyForPsbtFundingH\NULR\bpsbtFund\DC2&\n\
      \\SIpending_chan_id\CAN\EOT \SOH(\fR\rpendingChanIdB\b\n\
      \\ACKupdate"
  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 OpenStatusUpdate
        chanPending__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_pending"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PendingUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanPending")) ::
              Data.ProtoLens.FieldDescriptor OpenStatusUpdate
        chanOpen__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_open"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelOpenUpdate)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanOpen")) ::
              Data.ProtoLens.FieldDescriptor OpenStatusUpdate
        psbtFund__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "psbt_fund"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ReadyForPsbtFunding)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'psbtFund")) ::
              Data.ProtoLens.FieldDescriptor OpenStatusUpdate
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 4, pendingChanId__field_descriptor),
           (Data.ProtoLens.Tag 1, chanPending__field_descriptor),
           (Data.ProtoLens.Tag 3, chanOpen__field_descriptor),
           (Data.ProtoLens.Tag 5, psbtFund__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _OpenStatusUpdate'_unknownFields
        (\ x__ y__ -> x__ {_OpenStatusUpdate'_unknownFields = y__})
  defMessage
    = OpenStatusUpdate'_constructor
        {_OpenStatusUpdate'pendingChanId = Data.ProtoLens.fieldDefault,
         _OpenStatusUpdate'update = Prelude.Nothing,
         _OpenStatusUpdate'_unknownFields = []}
  parseMessage
    = let
        loop ::
          OpenStatusUpdate
          -> Data.ProtoLens.Encoding.Bytes.Parser OpenStatusUpdate
        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
                        34
                          -> 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)
                        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_pending"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanPending") 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)
                                       "chan_open"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanOpen") 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)
                                       "psbt_fund"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"psbtFund") 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) "OpenStatusUpdate"
  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 34)
                      ((\ 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'update") _x
                 of
                   Prelude.Nothing -> Data.Monoid.mempty
                   (Prelude.Just (OpenStatusUpdate'ChanPending 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 (OpenStatusUpdate'ChanOpen 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 (OpenStatusUpdate'PsbtFund 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.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData OpenStatusUpdate where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_OpenStatusUpdate'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_OpenStatusUpdate'pendingChanId x__)
                (Control.DeepSeq.deepseq (_OpenStatusUpdate'update x__) ()))
instance Control.DeepSeq.NFData OpenStatusUpdate'Update where
  rnf (OpenStatusUpdate'ChanPending x__) = Control.DeepSeq.rnf x__
  rnf (OpenStatusUpdate'ChanOpen x__) = Control.DeepSeq.rnf x__
  rnf (OpenStatusUpdate'PsbtFund x__) = Control.DeepSeq.rnf x__
_OpenStatusUpdate'ChanPending ::
  Data.ProtoLens.Prism.Prism' OpenStatusUpdate'Update PendingUpdate
_OpenStatusUpdate'ChanPending
  = Data.ProtoLens.Prism.prism'
      OpenStatusUpdate'ChanPending
      (\ p__
         -> case p__ of
              (OpenStatusUpdate'ChanPending p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_OpenStatusUpdate'ChanOpen ::
  Data.ProtoLens.Prism.Prism' OpenStatusUpdate'Update ChannelOpenUpdate
_OpenStatusUpdate'ChanOpen
  = Data.ProtoLens.Prism.prism'
      OpenStatusUpdate'ChanOpen
      (\ p__
         -> case p__ of
              (OpenStatusUpdate'ChanOpen p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_OpenStatusUpdate'PsbtFund ::
  Data.ProtoLens.Prism.Prism' OpenStatusUpdate'Update ReadyForPsbtFunding
_OpenStatusUpdate'PsbtFund
  = Data.ProtoLens.Prism.prism'
      OpenStatusUpdate'PsbtFund
      (\ p__
         -> case p__ of
              (OpenStatusUpdate'PsbtFund p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.txidBytes' @:: Lens' OutPoint Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.txidStr' @:: Lens' OutPoint Data.Text.Text@
         * 'Proto.LndGrpc_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)
instance Prelude.Show OutPoint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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 :
     
         * 'Proto.LndGrpc_Fields.destination' @:: Lens' PayReq Data.Text.Text@
         * 'Proto.LndGrpc_Fields.paymentHash' @:: Lens' PayReq Data.Text.Text@
         * 'Proto.LndGrpc_Fields.numSatoshis' @:: Lens' PayReq Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.timestamp' @:: Lens' PayReq Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.expiry' @:: Lens' PayReq Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.description' @:: Lens' PayReq Data.Text.Text@
         * 'Proto.LndGrpc_Fields.descriptionHash' @:: Lens' PayReq Data.Text.Text@
         * 'Proto.LndGrpc_Fields.fallbackAddr' @:: Lens' PayReq Data.Text.Text@
         * 'Proto.LndGrpc_Fields.cltvExpiry' @:: Lens' PayReq Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.routeHints' @:: Lens' PayReq [RouteHint]@
         * 'Proto.LndGrpc_Fields.vec'routeHints' @:: Lens' PayReq (Data.Vector.Vector RouteHint)@
         * 'Proto.LndGrpc_Fields.paymentAddr' @:: Lens' PayReq Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.numMsat' @:: Lens' PayReq Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.features' @:: Lens' PayReq (Data.Map.Map Data.Word.Word32 Feature)@ -}
data PayReq
  = PayReq'_constructor {_PayReq'destination :: !Data.Text.Text,
                         _PayReq'paymentHash :: !Data.Text.Text,
                         _PayReq'numSatoshis :: !Data.Int.Int64,
                         _PayReq'timestamp :: !Data.Int.Int64,
                         _PayReq'expiry :: !Data.Int.Int64,
                         _PayReq'description :: !Data.Text.Text,
                         _PayReq'descriptionHash :: !Data.Text.Text,
                         _PayReq'fallbackAddr :: !Data.Text.Text,
                         _PayReq'cltvExpiry :: !Data.Int.Int64,
                         _PayReq'routeHints :: !(Data.Vector.Vector RouteHint),
                         _PayReq'paymentAddr :: !Data.ByteString.ByteString,
                         _PayReq'numMsat :: !Data.Int.Int64,
                         _PayReq'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                         _PayReq'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PayReq where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField PayReq "destination" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'destination (\ x__ y__ -> x__ {_PayReq'destination = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "paymentHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'paymentHash (\ x__ y__ -> x__ {_PayReq'paymentHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "numSatoshis" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'numSatoshis (\ x__ y__ -> x__ {_PayReq'numSatoshis = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "timestamp" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'timestamp (\ x__ y__ -> x__ {_PayReq'timestamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "expiry" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'expiry (\ x__ y__ -> x__ {_PayReq'expiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "description" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'description (\ x__ y__ -> x__ {_PayReq'description = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "descriptionHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'descriptionHash
           (\ x__ y__ -> x__ {_PayReq'descriptionHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "fallbackAddr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'fallbackAddr
           (\ x__ y__ -> x__ {_PayReq'fallbackAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "cltvExpiry" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'cltvExpiry (\ x__ y__ -> x__ {_PayReq'cltvExpiry = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "routeHints" [RouteHint] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'routeHints (\ x__ y__ -> x__ {_PayReq'routeHints = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField PayReq "vec'routeHints" (Data.Vector.Vector RouteHint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'routeHints (\ x__ y__ -> x__ {_PayReq'routeHints = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "paymentAddr" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'paymentAddr (\ x__ y__ -> x__ {_PayReq'paymentAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "numMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'numMsat (\ x__ y__ -> x__ {_PayReq'numMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'features (\ x__ y__ -> x__ {_PayReq'features = y__}))
        Prelude.id
instance Data.ProtoLens.Message PayReq where
  messageName _ = Data.Text.pack "lnrpc.PayReq"
  packedMessageDescriptor _
    = "\n\
      \\ACKPayReq\DC2 \n\
      \\vdestination\CAN\SOH \SOH(\tR\vdestination\DC2!\n\
      \\fpayment_hash\CAN\STX \SOH(\tR\vpaymentHash\DC2!\n\
      \\fnum_satoshis\CAN\ETX \SOH(\ETXR\vnumSatoshis\DC2\FS\n\
      \\ttimestamp\CAN\EOT \SOH(\ETXR\ttimestamp\DC2\SYN\n\
      \\ACKexpiry\CAN\ENQ \SOH(\ETXR\ACKexpiry\DC2 \n\
      \\vdescription\CAN\ACK \SOH(\tR\vdescription\DC2)\n\
      \\DLEdescription_hash\CAN\a \SOH(\tR\SIdescriptionHash\DC2#\n\
      \\rfallback_addr\CAN\b \SOH(\tR\ffallbackAddr\DC2\US\n\
      \\vcltv_expiry\CAN\t \SOH(\ETXR\n\
      \cltvExpiry\DC21\n\
      \\vroute_hints\CAN\n\
      \ \ETX(\v2\DLE.lnrpc.RouteHintR\n\
      \routeHints\DC2!\n\
      \\fpayment_addr\CAN\v \SOH(\fR\vpaymentAddr\DC2\EM\n\
      \\bnum_msat\CAN\f \SOH(\ETXR\anumMsat\DC27\n\
      \\bfeatures\CAN\r \ETX(\v2\ESC.lnrpc.PayReq.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
        destination__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "destination"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"destination")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        paymentHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHash")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        numSatoshis__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_satoshis"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numSatoshis")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        timestamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timestamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timestamp")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        expiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"expiry")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        description__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "description"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"description")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        descriptionHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "description_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"descriptionHash")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        fallbackAddr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fallback_addr"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fallbackAddr")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        cltvExpiry__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "cltv_expiry"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"cltvExpiry")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        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 PayReq
        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 PayReq
        numMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"numMsat")) ::
              Data.ProtoLens.FieldDescriptor PayReq
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor PayReq'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor PayReq
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, destination__field_descriptor),
           (Data.ProtoLens.Tag 2, paymentHash__field_descriptor),
           (Data.ProtoLens.Tag 3, numSatoshis__field_descriptor),
           (Data.ProtoLens.Tag 4, timestamp__field_descriptor),
           (Data.ProtoLens.Tag 5, expiry__field_descriptor),
           (Data.ProtoLens.Tag 6, description__field_descriptor),
           (Data.ProtoLens.Tag 7, descriptionHash__field_descriptor),
           (Data.ProtoLens.Tag 8, fallbackAddr__field_descriptor),
           (Data.ProtoLens.Tag 9, cltvExpiry__field_descriptor),
           (Data.ProtoLens.Tag 10, routeHints__field_descriptor),
           (Data.ProtoLens.Tag 11, paymentAddr__field_descriptor),
           (Data.ProtoLens.Tag 12, numMsat__field_descriptor),
           (Data.ProtoLens.Tag 13, features__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PayReq'_unknownFields
        (\ x__ y__ -> x__ {_PayReq'_unknownFields = y__})
  defMessage
    = PayReq'_constructor
        {_PayReq'destination = Data.ProtoLens.fieldDefault,
         _PayReq'paymentHash = Data.ProtoLens.fieldDefault,
         _PayReq'numSatoshis = Data.ProtoLens.fieldDefault,
         _PayReq'timestamp = Data.ProtoLens.fieldDefault,
         _PayReq'expiry = Data.ProtoLens.fieldDefault,
         _PayReq'description = Data.ProtoLens.fieldDefault,
         _PayReq'descriptionHash = Data.ProtoLens.fieldDefault,
         _PayReq'fallbackAddr = Data.ProtoLens.fieldDefault,
         _PayReq'cltvExpiry = Data.ProtoLens.fieldDefault,
         _PayReq'routeHints = Data.Vector.Generic.empty,
         _PayReq'paymentAddr = Data.ProtoLens.fieldDefault,
         _PayReq'numMsat = Data.ProtoLens.fieldDefault,
         _PayReq'features = Data.Map.empty, _PayReq'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PayReq
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld RouteHint
             -> Data.ProtoLens.Encoding.Bytes.Parser PayReq
        loop x mutable'routeHints
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do 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'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))
                                       "destination"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"destination") y x)
                                  mutable'routeHints
                        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))
                                       "payment_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentHash") y x)
                                  mutable'routeHints
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_satoshis"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numSatoshis") y x)
                                  mutable'routeHints
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "timestamp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timestamp") y x)
                                  mutable'routeHints
                        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)
                                  mutable'routeHints
                        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))
                                       "description"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"description") y x)
                                  mutable'routeHints
                        58
                          -> 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))
                                       "description_hash"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"descriptionHash") y x)
                                  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))
                                       "fallback_addr"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fallbackAddr") y x)
                                  mutable'routeHints
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "cltv_expiry"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cltvExpiry") y x)
                                  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)
                                        "route_hints"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'routeHints y)
                                loop x v
                        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)
                                  mutable'routeHints
                        96
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numMsat") y x)
                                  mutable'routeHints
                        106
                          -> do !(entry :: PayReq'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'routeHints)
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'routeHints
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'routeHints <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                      Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'routeHints)
          "PayReq"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"destination") _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 @"paymentHash") _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 @"numSatoshis") _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 @"timestamp") _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 @"description") _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.Monoid.<>)
                               (let
                                  _v
                                    = Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"descriptionHash") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (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.Text.Encoding.encodeUtf8
                                           _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"fallbackAddr") _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 @"cltvExpiry") _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.<>)
                                        (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'routeHints") _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 @"numMsat") _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.<>)
                                                 (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 ::
                                                                           PayReq'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 PayReq where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PayReq'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PayReq'destination x__)
                (Control.DeepSeq.deepseq
                   (_PayReq'paymentHash x__)
                   (Control.DeepSeq.deepseq
                      (_PayReq'numSatoshis x__)
                      (Control.DeepSeq.deepseq
                         (_PayReq'timestamp x__)
                         (Control.DeepSeq.deepseq
                            (_PayReq'expiry x__)
                            (Control.DeepSeq.deepseq
                               (_PayReq'description x__)
                               (Control.DeepSeq.deepseq
                                  (_PayReq'descriptionHash x__)
                                  (Control.DeepSeq.deepseq
                                     (_PayReq'fallbackAddr x__)
                                     (Control.DeepSeq.deepseq
                                        (_PayReq'cltvExpiry x__)
                                        (Control.DeepSeq.deepseq
                                           (_PayReq'routeHints x__)
                                           (Control.DeepSeq.deepseq
                                              (_PayReq'paymentAddr x__)
                                              (Control.DeepSeq.deepseq
                                                 (_PayReq'numMsat x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_PayReq'features x__) ())))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' PayReq'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' PayReq'FeaturesEntry Feature@
         * 'Proto.LndGrpc_Fields.maybe'value' @:: Lens' PayReq'FeaturesEntry (Prelude.Maybe Feature)@ -}
data PayReq'FeaturesEntry
  = PayReq'FeaturesEntry'_constructor {_PayReq'FeaturesEntry'key :: !Data.Word.Word32,
                                       _PayReq'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                       _PayReq'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PayReq'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField PayReq'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'FeaturesEntry'key
           (\ x__ y__ -> x__ {_PayReq'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PayReq'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'FeaturesEntry'value
           (\ x__ y__ -> x__ {_PayReq'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField PayReq'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReq'FeaturesEntry'value
           (\ x__ y__ -> x__ {_PayReq'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message PayReq'FeaturesEntry where
  messageName _ = Data.Text.pack "lnrpc.PayReq.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 PayReq'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 PayReq'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PayReq'FeaturesEntry'_unknownFields
        (\ x__ y__ -> x__ {_PayReq'FeaturesEntry'_unknownFields = y__})
  defMessage
    = PayReq'FeaturesEntry'_constructor
        {_PayReq'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _PayReq'FeaturesEntry'value = Prelude.Nothing,
         _PayReq'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PayReq'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser PayReq'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 PayReq'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PayReq'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PayReq'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq (_PayReq'FeaturesEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.payReq' @:: Lens' PayReqString Data.Text.Text@ -}
data PayReqString
  = PayReqString'_constructor {_PayReqString'payReq :: !Data.Text.Text,
                               _PayReqString'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PayReqString where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField PayReqString "payReq" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PayReqString'payReq
           (\ x__ y__ -> x__ {_PayReqString'payReq = y__}))
        Prelude.id
instance Data.ProtoLens.Message PayReqString where
  messageName _ = Data.Text.pack "lnrpc.PayReqString"
  packedMessageDescriptor _
    = "\n\
      \\fPayReqString\DC2\ETB\n\
      \\apay_req\CAN\SOH \SOH(\tR\ACKpayReq"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        payReq__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pay_req"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"payReq")) ::
              Data.ProtoLens.FieldDescriptor PayReqString
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, payReq__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PayReqString'_unknownFields
        (\ x__ y__ -> x__ {_PayReqString'_unknownFields = y__})
  defMessage
    = PayReqString'_constructor
        {_PayReqString'payReq = Data.ProtoLens.fieldDefault,
         _PayReqString'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PayReqString -> Data.ProtoLens.Encoding.Bytes.Parser PayReqString
        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))
                                       "pay_req"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"payReq") 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) "PayReqString"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"payReq") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData PayReqString where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PayReqString'_unknownFields x__)
             (Control.DeepSeq.deepseq (_PayReqString'payReq x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.paymentHash' @:: Lens' Payment Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.creationDate' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.fee' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.paymentPreimage' @:: Lens' Payment Data.Text.Text@
         * 'Proto.LndGrpc_Fields.valueSat' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.valueMsat' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.paymentRequest' @:: Lens' Payment Data.Text.Text@
         * 'Proto.LndGrpc_Fields.status' @:: Lens' Payment Payment'PaymentStatus@
         * 'Proto.LndGrpc_Fields.feeSat' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeMsat' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.creationTimeNs' @:: Lens' Payment Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.htlcs' @:: Lens' Payment [HTLCAttempt]@
         * 'Proto.LndGrpc_Fields.vec'htlcs' @:: Lens' Payment (Data.Vector.Vector HTLCAttempt)@
         * 'Proto.LndGrpc_Fields.paymentIndex' @:: Lens' Payment Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.failureReason' @:: Lens' Payment PaymentFailureReason@ -}
data Payment
  = Payment'_constructor {_Payment'paymentHash :: !Data.Text.Text,
                          _Payment'value :: !Data.Int.Int64,
                          _Payment'creationDate :: !Data.Int.Int64,
                          _Payment'fee :: !Data.Int.Int64,
                          _Payment'paymentPreimage :: !Data.Text.Text,
                          _Payment'valueSat :: !Data.Int.Int64,
                          _Payment'valueMsat :: !Data.Int.Int64,
                          _Payment'paymentRequest :: !Data.Text.Text,
                          _Payment'status :: !Payment'PaymentStatus,
                          _Payment'feeSat :: !Data.Int.Int64,
                          _Payment'feeMsat :: !Data.Int.Int64,
                          _Payment'creationTimeNs :: !Data.Int.Int64,
                          _Payment'htlcs :: !(Data.Vector.Vector HTLCAttempt),
                          _Payment'paymentIndex :: !Data.Word.Word64,
                          _Payment'failureReason :: !PaymentFailureReason,
                          _Payment'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Payment where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Payment "paymentHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'paymentHash
           (\ x__ y__ -> x__ {_Payment'paymentHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "value" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'value (\ x__ y__ -> x__ {_Payment'value = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "creationDate" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'creationDate
           (\ x__ y__ -> x__ {_Payment'creationDate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "fee" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'fee (\ x__ y__ -> x__ {_Payment'fee = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "paymentPreimage" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'paymentPreimage
           (\ x__ y__ -> x__ {_Payment'paymentPreimage = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "valueSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'valueSat (\ x__ y__ -> x__ {_Payment'valueSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "valueMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'valueMsat (\ x__ y__ -> x__ {_Payment'valueMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "paymentRequest" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'paymentRequest
           (\ x__ y__ -> x__ {_Payment'paymentRequest = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "status" Payment'PaymentStatus where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'status (\ x__ y__ -> x__ {_Payment'status = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "feeSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'feeSat (\ x__ y__ -> x__ {_Payment'feeSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "feeMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'feeMsat (\ x__ y__ -> x__ {_Payment'feeMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "creationTimeNs" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'creationTimeNs
           (\ x__ y__ -> x__ {_Payment'creationTimeNs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "htlcs" [HTLCAttempt] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'htlcs (\ x__ y__ -> x__ {_Payment'htlcs = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Payment "vec'htlcs" (Data.Vector.Vector HTLCAttempt) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'htlcs (\ x__ y__ -> x__ {_Payment'htlcs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "paymentIndex" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'paymentIndex
           (\ x__ y__ -> x__ {_Payment'paymentIndex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Payment "failureReason" PaymentFailureReason where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Payment'failureReason
           (\ x__ y__ -> x__ {_Payment'failureReason = y__}))
        Prelude.id
instance Data.ProtoLens.Message Payment where
  messageName _ = Data.Text.pack "lnrpc.Payment"
  packedMessageDescriptor _
    = "\n\
      \\aPayment\DC2!\n\
      \\fpayment_hash\CAN\SOH \SOH(\tR\vpaymentHash\DC2\CAN\n\
      \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalueB\STX\CAN\SOH\DC2'\n\
      \\rcreation_date\CAN\ETX \SOH(\ETXR\fcreationDateB\STX\CAN\SOH\DC2\DC4\n\
      \\ETXfee\CAN\ENQ \SOH(\ETXR\ETXfeeB\STX\CAN\SOH\DC2)\n\
      \\DLEpayment_preimage\CAN\ACK \SOH(\tR\SIpaymentPreimage\DC2\ESC\n\
      \\tvalue_sat\CAN\a \SOH(\ETXR\bvalueSat\DC2\GS\n\
      \\n\
      \value_msat\CAN\b \SOH(\ETXR\tvalueMsat\DC2'\n\
      \\SIpayment_request\CAN\t \SOH(\tR\SOpaymentRequest\DC24\n\
      \\ACKstatus\CAN\n\
      \ \SOH(\SO2\FS.lnrpc.Payment.PaymentStatusR\ACKstatus\DC2\ETB\n\
      \\afee_sat\CAN\v \SOH(\ETXR\ACKfeeSat\DC2\EM\n\
      \\bfee_msat\CAN\f \SOH(\ETXR\afeeMsat\DC2(\n\
      \\DLEcreation_time_ns\CAN\r \SOH(\ETXR\SOcreationTimeNs\DC2(\n\
      \\ENQhtlcs\CAN\SO \ETX(\v2\DC2.lnrpc.HTLCAttemptR\ENQhtlcs\DC2#\n\
      \\rpayment_index\CAN\SI \SOH(\EOTR\fpaymentIndex\DC2B\n\
      \\SOfailure_reason\CAN\DLE \SOH(\SO2\ESC.lnrpc.PaymentFailureReasonR\rfailureReason\"F\n\
      \\rPaymentStatus\DC2\v\n\
      \\aUNKNOWN\DLE\NUL\DC2\r\n\
      \\tIN_FLIGHT\DLE\SOH\DC2\r\n\
      \\tSUCCEEDED\DLE\STX\DC2\n\
      \\n\
      \\ACKFAILED\DLE\ETXJ\EOT\b\EOT\DLE\ENQ"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        paymentHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHash")) ::
              Data.ProtoLens.FieldDescriptor Payment
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor Payment
        creationDate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "creation_date"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"creationDate")) ::
              Data.ProtoLens.FieldDescriptor Payment
        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 Payment
        paymentPreimage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_preimage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentPreimage")) ::
              Data.ProtoLens.FieldDescriptor Payment
        valueSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"valueSat")) ::
              Data.ProtoLens.FieldDescriptor Payment
        valueMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"valueMsat")) ::
              Data.ProtoLens.FieldDescriptor Payment
        paymentRequest__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_request"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentRequest")) ::
              Data.ProtoLens.FieldDescriptor Payment
        status__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "status"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Payment'PaymentStatus)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"status")) ::
              Data.ProtoLens.FieldDescriptor Payment
        feeSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeSat")) ::
              Data.ProtoLens.FieldDescriptor Payment
        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 Payment
        creationTimeNs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "creation_time_ns"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"creationTimeNs")) ::
              Data.ProtoLens.FieldDescriptor Payment
        htlcs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "htlcs"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor HTLCAttempt)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"htlcs")) ::
              Data.ProtoLens.FieldDescriptor Payment
        paymentIndex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_index"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentIndex")) ::
              Data.ProtoLens.FieldDescriptor Payment
        failureReason__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "failure_reason"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor PaymentFailureReason)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"failureReason")) ::
              Data.ProtoLens.FieldDescriptor Payment
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, paymentHash__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor),
           (Data.ProtoLens.Tag 3, creationDate__field_descriptor),
           (Data.ProtoLens.Tag 5, fee__field_descriptor),
           (Data.ProtoLens.Tag 6, paymentPreimage__field_descriptor),
           (Data.ProtoLens.Tag 7, valueSat__field_descriptor),
           (Data.ProtoLens.Tag 8, valueMsat__field_descriptor),
           (Data.ProtoLens.Tag 9, paymentRequest__field_descriptor),
           (Data.ProtoLens.Tag 10, status__field_descriptor),
           (Data.ProtoLens.Tag 11, feeSat__field_descriptor),
           (Data.ProtoLens.Tag 12, feeMsat__field_descriptor),
           (Data.ProtoLens.Tag 13, creationTimeNs__field_descriptor),
           (Data.ProtoLens.Tag 14, htlcs__field_descriptor),
           (Data.ProtoLens.Tag 15, paymentIndex__field_descriptor),
           (Data.ProtoLens.Tag 16, failureReason__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Payment'_unknownFields
        (\ x__ y__ -> x__ {_Payment'_unknownFields = y__})
  defMessage
    = Payment'_constructor
        {_Payment'paymentHash = Data.ProtoLens.fieldDefault,
         _Payment'value = Data.ProtoLens.fieldDefault,
         _Payment'creationDate = Data.ProtoLens.fieldDefault,
         _Payment'fee = Data.ProtoLens.fieldDefault,
         _Payment'paymentPreimage = Data.ProtoLens.fieldDefault,
         _Payment'valueSat = Data.ProtoLens.fieldDefault,
         _Payment'valueMsat = Data.ProtoLens.fieldDefault,
         _Payment'paymentRequest = Data.ProtoLens.fieldDefault,
         _Payment'status = Data.ProtoLens.fieldDefault,
         _Payment'feeSat = Data.ProtoLens.fieldDefault,
         _Payment'feeMsat = Data.ProtoLens.fieldDefault,
         _Payment'creationTimeNs = Data.ProtoLens.fieldDefault,
         _Payment'htlcs = Data.Vector.Generic.empty,
         _Payment'paymentIndex = Data.ProtoLens.fieldDefault,
         _Payment'failureReason = Data.ProtoLens.fieldDefault,
         _Payment'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Payment
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld HTLCAttempt
             -> Data.ProtoLens.Encoding.Bytes.Parser Payment
        loop x mutable'htlcs
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'htlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'htlcs)
                      (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'htlcs") frozen'htlcs 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))
                                       "payment_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentHash") y x)
                                  mutable'htlcs
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "value"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)
                                  mutable'htlcs
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "creation_date"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"creationDate") y x)
                                  mutable'htlcs
                        40
                          -> 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)
                                  mutable'htlcs
                        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))
                                       "payment_preimage"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentPreimage") y x)
                                  mutable'htlcs
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "value_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"valueSat") y x)
                                  mutable'htlcs
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "value_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"valueMsat") y x)
                                  mutable'htlcs
                        74
                          -> 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))
                                       "payment_request"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentRequest") y x)
                                  mutable'htlcs
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "status"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"status") y x)
                                  mutable'htlcs
                        88
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "fee_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feeSat") y x)
                                  mutable'htlcs
                        96
                          -> 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)
                                  mutable'htlcs
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "creation_time_ns"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"creationTimeNs") y x)
                                  mutable'htlcs
                        114
                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                            Data.ProtoLens.Encoding.Bytes.isolate
                                              (Prelude.fromIntegral len)
                                              Data.ProtoLens.parseMessage)
                                        "htlcs"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'htlcs y)
                                loop x v
                        120
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "payment_index"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentIndex") y x)
                                  mutable'htlcs
                        128
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "failure_reason"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"failureReason") y x)
                                  mutable'htlcs
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'htlcs
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'htlcs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                 Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'htlcs)
          "Payment"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"paymentHash") _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 @"value") _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 @"creationDate") _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 40)
                               ((Prelude..)
                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
                      ((Data.Monoid.<>)
                         (let
                            _v
                              = Lens.Family2.view
                                  (Data.ProtoLens.Field.field @"paymentPreimage") _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.Monoid.<>)
                            (let
                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @"valueSat") _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 @"valueMsat") _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 @"paymentRequest") _x
                                   in
                                     if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                         Data.Monoid.mempty
                                     else
                                         (Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.putVarInt 74)
                                           ((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 @"status") _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 @"feeSat") _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 @"feeMsat") _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
                                                          @"creationTimeNs")
                                                       _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.<>)
                                                 (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                                    (\ _v
                                                       -> (Data.Monoid.<>)
                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                               114)
                                                            ((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'htlcs")
                                                       _x))
                                                 ((Data.Monoid.<>)
                                                    (let
                                                       _v
                                                         = Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"paymentIndex")
                                                             _x
                                                     in
                                                       if (Prelude.==)
                                                            _v Data.ProtoLens.fieldDefault then
                                                           Data.Monoid.mempty
                                                       else
                                                           (Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                120)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                _v))
                                                    ((Data.Monoid.<>)
                                                       (let
                                                          _v
                                                            = Lens.Family2.view
                                                                (Data.ProtoLens.Field.field
                                                                   @"failureReason")
                                                                _x
                                                        in
                                                          if (Prelude.==)
                                                               _v Data.ProtoLens.fieldDefault then
                                                              Data.Monoid.mempty
                                                          else
                                                              (Data.Monoid.<>)
                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                   128)
                                                                ((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 Payment where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Payment'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Payment'paymentHash x__)
                (Control.DeepSeq.deepseq
                   (_Payment'value x__)
                   (Control.DeepSeq.deepseq
                      (_Payment'creationDate x__)
                      (Control.DeepSeq.deepseq
                         (_Payment'fee x__)
                         (Control.DeepSeq.deepseq
                            (_Payment'paymentPreimage x__)
                            (Control.DeepSeq.deepseq
                               (_Payment'valueSat x__)
                               (Control.DeepSeq.deepseq
                                  (_Payment'valueMsat x__)
                                  (Control.DeepSeq.deepseq
                                     (_Payment'paymentRequest x__)
                                     (Control.DeepSeq.deepseq
                                        (_Payment'status x__)
                                        (Control.DeepSeq.deepseq
                                           (_Payment'feeSat x__)
                                           (Control.DeepSeq.deepseq
                                              (_Payment'feeMsat x__)
                                              (Control.DeepSeq.deepseq
                                                 (_Payment'creationTimeNs x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_Payment'htlcs x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_Payment'paymentIndex x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_Payment'failureReason x__)
                                                          ())))))))))))))))
newtype Payment'PaymentStatus'UnrecognizedValue
  = Payment'PaymentStatus'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data Payment'PaymentStatus
  = Payment'UNKNOWN |
    Payment'IN_FLIGHT |
    Payment'SUCCEEDED |
    Payment'FAILED |
    Payment'PaymentStatus'Unrecognized !Payment'PaymentStatus'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum Payment'PaymentStatus where
  maybeToEnum 0 = Prelude.Just Payment'UNKNOWN
  maybeToEnum 1 = Prelude.Just Payment'IN_FLIGHT
  maybeToEnum 2 = Prelude.Just Payment'SUCCEEDED
  maybeToEnum 3 = Prelude.Just Payment'FAILED
  maybeToEnum k
    = Prelude.Just
        (Payment'PaymentStatus'Unrecognized
           (Payment'PaymentStatus'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum Payment'UNKNOWN = "UNKNOWN"
  showEnum Payment'IN_FLIGHT = "IN_FLIGHT"
  showEnum Payment'SUCCEEDED = "SUCCEEDED"
  showEnum Payment'FAILED = "FAILED"
  showEnum
    (Payment'PaymentStatus'Unrecognized (Payment'PaymentStatus'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "UNKNOWN" = Prelude.Just Payment'UNKNOWN
    | (Prelude.==) k "IN_FLIGHT" = Prelude.Just Payment'IN_FLIGHT
    | (Prelude.==) k "SUCCEEDED" = Prelude.Just Payment'SUCCEEDED
    | (Prelude.==) k "FAILED" = Prelude.Just Payment'FAILED
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded Payment'PaymentStatus where
  minBound = Payment'UNKNOWN
  maxBound = Payment'FAILED
instance Prelude.Enum Payment'PaymentStatus where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum PaymentStatus: "
              (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum Payment'UNKNOWN = 0
  fromEnum Payment'IN_FLIGHT = 1
  fromEnum Payment'SUCCEEDED = 2
  fromEnum Payment'FAILED = 3
  fromEnum
    (Payment'PaymentStatus'Unrecognized (Payment'PaymentStatus'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ Payment'FAILED
    = Prelude.error
        "Payment'PaymentStatus.succ: bad argument Payment'FAILED. This value would be out of bounds."
  succ Payment'UNKNOWN = Payment'IN_FLIGHT
  succ Payment'IN_FLIGHT = Payment'SUCCEEDED
  succ Payment'SUCCEEDED = Payment'FAILED
  succ (Payment'PaymentStatus'Unrecognized _)
    = Prelude.error
        "Payment'PaymentStatus.succ: bad argument: unrecognized value"
  pred Payment'UNKNOWN
    = Prelude.error
        "Payment'PaymentStatus.pred: bad argument Payment'UNKNOWN. This value would be out of bounds."
  pred Payment'IN_FLIGHT = Payment'UNKNOWN
  pred Payment'SUCCEEDED = Payment'IN_FLIGHT
  pred Payment'FAILED = Payment'SUCCEEDED
  pred (Payment'PaymentStatus'Unrecognized _)
    = Prelude.error
        "Payment'PaymentStatus.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 Payment'PaymentStatus where
  fieldDefault = Payment'UNKNOWN
instance Control.DeepSeq.NFData Payment'PaymentStatus where
  rnf x__ = Prelude.seq x__ ()
newtype PaymentFailureReason'UnrecognizedValue
  = PaymentFailureReason'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data PaymentFailureReason
  = FAILURE_REASON_NONE |
    FAILURE_REASON_TIMEOUT |
    FAILURE_REASON_NO_ROUTE |
    FAILURE_REASON_ERROR |
    FAILURE_REASON_INCORRECT_PAYMENT_DETAILS |
    FAILURE_REASON_INSUFFICIENT_BALANCE |
    PaymentFailureReason'Unrecognized !PaymentFailureReason'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum PaymentFailureReason where
  maybeToEnum 0 = Prelude.Just FAILURE_REASON_NONE
  maybeToEnum 1 = Prelude.Just FAILURE_REASON_TIMEOUT
  maybeToEnum 2 = Prelude.Just FAILURE_REASON_NO_ROUTE
  maybeToEnum 3 = Prelude.Just FAILURE_REASON_ERROR
  maybeToEnum 4
    = Prelude.Just FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
  maybeToEnum 5 = Prelude.Just FAILURE_REASON_INSUFFICIENT_BALANCE
  maybeToEnum k
    = Prelude.Just
        (PaymentFailureReason'Unrecognized
           (PaymentFailureReason'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum FAILURE_REASON_NONE = "FAILURE_REASON_NONE"
  showEnum FAILURE_REASON_TIMEOUT = "FAILURE_REASON_TIMEOUT"
  showEnum FAILURE_REASON_NO_ROUTE = "FAILURE_REASON_NO_ROUTE"
  showEnum FAILURE_REASON_ERROR = "FAILURE_REASON_ERROR"
  showEnum FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
    = "FAILURE_REASON_INCORRECT_PAYMENT_DETAILS"
  showEnum FAILURE_REASON_INSUFFICIENT_BALANCE
    = "FAILURE_REASON_INSUFFICIENT_BALANCE"
  showEnum
    (PaymentFailureReason'Unrecognized (PaymentFailureReason'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "FAILURE_REASON_NONE"
    = Prelude.Just FAILURE_REASON_NONE
    | (Prelude.==) k "FAILURE_REASON_TIMEOUT"
    = Prelude.Just FAILURE_REASON_TIMEOUT
    | (Prelude.==) k "FAILURE_REASON_NO_ROUTE"
    = Prelude.Just FAILURE_REASON_NO_ROUTE
    | (Prelude.==) k "FAILURE_REASON_ERROR"
    = Prelude.Just FAILURE_REASON_ERROR
    | (Prelude.==) k "FAILURE_REASON_INCORRECT_PAYMENT_DETAILS"
    = Prelude.Just FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
    | (Prelude.==) k "FAILURE_REASON_INSUFFICIENT_BALANCE"
    = Prelude.Just FAILURE_REASON_INSUFFICIENT_BALANCE
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded PaymentFailureReason where
  minBound = FAILURE_REASON_NONE
  maxBound = FAILURE_REASON_INSUFFICIENT_BALANCE
instance Prelude.Enum PaymentFailureReason where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum PaymentFailureReason: "
              (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum FAILURE_REASON_NONE = 0
  fromEnum FAILURE_REASON_TIMEOUT = 1
  fromEnum FAILURE_REASON_NO_ROUTE = 2
  fromEnum FAILURE_REASON_ERROR = 3
  fromEnum FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4
  fromEnum FAILURE_REASON_INSUFFICIENT_BALANCE = 5
  fromEnum
    (PaymentFailureReason'Unrecognized (PaymentFailureReason'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ FAILURE_REASON_INSUFFICIENT_BALANCE
    = Prelude.error
        "PaymentFailureReason.succ: bad argument FAILURE_REASON_INSUFFICIENT_BALANCE. This value would be out of bounds."
  succ FAILURE_REASON_NONE = FAILURE_REASON_TIMEOUT
  succ FAILURE_REASON_TIMEOUT = FAILURE_REASON_NO_ROUTE
  succ FAILURE_REASON_NO_ROUTE = FAILURE_REASON_ERROR
  succ FAILURE_REASON_ERROR
    = FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
  succ FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
    = FAILURE_REASON_INSUFFICIENT_BALANCE
  succ (PaymentFailureReason'Unrecognized _)
    = Prelude.error
        "PaymentFailureReason.succ: bad argument: unrecognized value"
  pred FAILURE_REASON_NONE
    = Prelude.error
        "PaymentFailureReason.pred: bad argument FAILURE_REASON_NONE. This value would be out of bounds."
  pred FAILURE_REASON_TIMEOUT = FAILURE_REASON_NONE
  pred FAILURE_REASON_NO_ROUTE = FAILURE_REASON_TIMEOUT
  pred FAILURE_REASON_ERROR = FAILURE_REASON_NO_ROUTE
  pred FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
    = FAILURE_REASON_ERROR
  pred FAILURE_REASON_INSUFFICIENT_BALANCE
    = FAILURE_REASON_INCORRECT_PAYMENT_DETAILS
  pred (PaymentFailureReason'Unrecognized _)
    = Prelude.error
        "PaymentFailureReason.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 PaymentFailureReason where
  fieldDefault = FAILURE_REASON_NONE
instance Control.DeepSeq.NFData PaymentFailureReason where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.rHashStr' @:: Lens' PaymentHash Data.Text.Text@
         * 'Proto.LndGrpc_Fields.rHash' @:: Lens' PaymentHash Data.ByteString.ByteString@ -}
data PaymentHash
  = PaymentHash'_constructor {_PaymentHash'rHashStr :: !Data.Text.Text,
                              _PaymentHash'rHash :: !Data.ByteString.ByteString,
                              _PaymentHash'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PaymentHash where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField PaymentHash "rHashStr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PaymentHash'rHashStr
           (\ x__ y__ -> x__ {_PaymentHash'rHashStr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PaymentHash "rHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PaymentHash'rHash (\ x__ y__ -> x__ {_PaymentHash'rHash = y__}))
        Prelude.id
instance Data.ProtoLens.Message PaymentHash where
  messageName _ = Data.Text.pack "lnrpc.PaymentHash"
  packedMessageDescriptor _
    = "\n\
      \\vPaymentHash\DC2 \n\
      \\n\
      \r_hash_str\CAN\SOH \SOH(\tR\brHashStrB\STX\CAN\SOH\DC2\NAK\n\
      \\ACKr_hash\CAN\STX \SOH(\fR\ENQrHash"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        rHashStr__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "r_hash_str"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rHashStr")) ::
              Data.ProtoLens.FieldDescriptor PaymentHash
        rHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "r_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"rHash")) ::
              Data.ProtoLens.FieldDescriptor PaymentHash
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, rHashStr__field_descriptor),
           (Data.ProtoLens.Tag 2, rHash__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PaymentHash'_unknownFields
        (\ x__ y__ -> x__ {_PaymentHash'_unknownFields = y__})
  defMessage
    = PaymentHash'_constructor
        {_PaymentHash'rHashStr = Data.ProtoLens.fieldDefault,
         _PaymentHash'rHash = Data.ProtoLens.fieldDefault,
         _PaymentHash'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PaymentHash -> Data.ProtoLens.Encoding.Bytes.Parser PaymentHash
        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))
                                       "r_hash_str"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rHashStr") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "r_hash"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"rHash") 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) "PaymentHash"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"rHashStr") _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 @"rHash") _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 PaymentHash where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PaymentHash'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PaymentHash'rHashStr x__)
                (Control.DeepSeq.deepseq (_PaymentHash'rHash x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pubKey' @:: Lens' Peer Data.Text.Text@
         * 'Proto.LndGrpc_Fields.address' @:: Lens' Peer Data.Text.Text@
         * 'Proto.LndGrpc_Fields.bytesSent' @:: Lens' Peer Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.bytesRecv' @:: Lens' Peer Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.satSent' @:: Lens' Peer Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.satRecv' @:: Lens' Peer Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.inbound' @:: Lens' Peer Prelude.Bool@
         * 'Proto.LndGrpc_Fields.pingTime' @:: Lens' Peer Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.syncType' @:: Lens' Peer Peer'SyncType@
         * 'Proto.LndGrpc_Fields.features' @:: Lens' Peer (Data.Map.Map Data.Word.Word32 Feature)@
         * 'Proto.LndGrpc_Fields.errors' @:: Lens' Peer [TimestampedError]@
         * 'Proto.LndGrpc_Fields.vec'errors' @:: Lens' Peer (Data.Vector.Vector TimestampedError)@
         * 'Proto.LndGrpc_Fields.flapCount' @:: Lens' Peer Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.lastFlapNs' @:: Lens' Peer Data.Int.Int64@ -}
data Peer
  = Peer'_constructor {_Peer'pubKey :: !Data.Text.Text,
                       _Peer'address :: !Data.Text.Text,
                       _Peer'bytesSent :: !Data.Word.Word64,
                       _Peer'bytesRecv :: !Data.Word.Word64,
                       _Peer'satSent :: !Data.Int.Int64,
                       _Peer'satRecv :: !Data.Int.Int64,
                       _Peer'inbound :: !Prelude.Bool,
                       _Peer'pingTime :: !Data.Int.Int64,
                       _Peer'syncType :: !Peer'SyncType,
                       _Peer'features :: !(Data.Map.Map Data.Word.Word32 Feature),
                       _Peer'errors :: !(Data.Vector.Vector TimestampedError),
                       _Peer'flapCount :: !Data.Int.Int32,
                       _Peer'lastFlapNs :: !Data.Int.Int64,
                       _Peer'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Peer where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Peer "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'pubKey (\ x__ y__ -> x__ {_Peer'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "address" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'address (\ x__ y__ -> x__ {_Peer'address = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "bytesSent" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'bytesSent (\ x__ y__ -> x__ {_Peer'bytesSent = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "bytesRecv" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'bytesRecv (\ x__ y__ -> x__ {_Peer'bytesRecv = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "satSent" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'satSent (\ x__ y__ -> x__ {_Peer'satSent = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "satRecv" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'satRecv (\ x__ y__ -> x__ {_Peer'satRecv = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "inbound" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'inbound (\ x__ y__ -> x__ {_Peer'inbound = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "pingTime" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'pingTime (\ x__ y__ -> x__ {_Peer'pingTime = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "syncType" Peer'SyncType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'syncType (\ x__ y__ -> x__ {_Peer'syncType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "features" (Data.Map.Map Data.Word.Word32 Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'features (\ x__ y__ -> x__ {_Peer'features = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "errors" [TimestampedError] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'errors (\ x__ y__ -> x__ {_Peer'errors = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Peer "vec'errors" (Data.Vector.Vector TimestampedError) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'errors (\ x__ y__ -> x__ {_Peer'errors = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "flapCount" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'flapCount (\ x__ y__ -> x__ {_Peer'flapCount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer "lastFlapNs" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'lastFlapNs (\ x__ y__ -> x__ {_Peer'lastFlapNs = y__}))
        Prelude.id
instance Data.ProtoLens.Message Peer where
  messageName _ = Data.Text.pack "lnrpc.Peer"
  packedMessageDescriptor _
    = "\n\
      \\EOTPeer\DC2\ETB\n\
      \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2\CAN\n\
      \\aaddress\CAN\ETX \SOH(\tR\aaddress\DC2\GS\n\
      \\n\
      \bytes_sent\CAN\EOT \SOH(\EOTR\tbytesSent\DC2\GS\n\
      \\n\
      \bytes_recv\CAN\ENQ \SOH(\EOTR\tbytesRecv\DC2\EM\n\
      \\bsat_sent\CAN\ACK \SOH(\ETXR\asatSent\DC2\EM\n\
      \\bsat_recv\CAN\a \SOH(\ETXR\asatRecv\DC2\CAN\n\
      \\ainbound\CAN\b \SOH(\bR\ainbound\DC2\ESC\n\
      \\tping_time\CAN\t \SOH(\ETXR\bpingTime\DC21\n\
      \\tsync_type\CAN\n\
      \ \SOH(\SO2\DC4.lnrpc.Peer.SyncTypeR\bsyncType\DC25\n\
      \\bfeatures\CAN\v \ETX(\v2\EM.lnrpc.Peer.FeaturesEntryR\bfeatures\DC2/\n\
      \\ACKerrors\CAN\f \ETX(\v2\ETB.lnrpc.TimestampedErrorR\ACKerrors\DC2\GS\n\
      \\n\
      \flap_count\CAN\r \SOH(\ENQR\tflapCount\DC2 \n\
      \\flast_flap_ns\CAN\SO \SOH(\ETXR\n\
      \lastFlapNs\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\"P\n\
      \\bSyncType\DC2\DLE\n\
      \\fUNKNOWN_SYNC\DLE\NUL\DC2\SI\n\
      \\vACTIVE_SYNC\DLE\SOH\DC2\DLE\n\
      \\fPASSIVE_SYNC\DLE\STX\DC2\SI\n\
      \\vPINNED_SYNC\DLE\ETX"
  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 Peer
        address__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"address")) ::
              Data.ProtoLens.FieldDescriptor Peer
        bytesSent__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "bytes_sent"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"bytesSent")) ::
              Data.ProtoLens.FieldDescriptor Peer
        bytesRecv__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "bytes_recv"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"bytesRecv")) ::
              Data.ProtoLens.FieldDescriptor Peer
        satSent__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_sent"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"satSent")) ::
              Data.ProtoLens.FieldDescriptor Peer
        satRecv__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_recv"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"satRecv")) ::
              Data.ProtoLens.FieldDescriptor Peer
        inbound__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "inbound"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"inbound")) ::
              Data.ProtoLens.FieldDescriptor Peer
        pingTime__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "ping_time"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pingTime")) ::
              Data.ProtoLens.FieldDescriptor Peer
        syncType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sync_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor Peer'SyncType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"syncType")) ::
              Data.ProtoLens.FieldDescriptor Peer
        features__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "features"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Peer'FeaturesEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"features")) ::
              Data.ProtoLens.FieldDescriptor Peer
        errors__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "errors"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor TimestampedError)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"errors")) ::
              Data.ProtoLens.FieldDescriptor Peer
        flapCount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "flap_count"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"flapCount")) ::
              Data.ProtoLens.FieldDescriptor Peer
        lastFlapNs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "last_flap_ns"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"lastFlapNs")) ::
              Data.ProtoLens.FieldDescriptor Peer
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 3, address__field_descriptor),
           (Data.ProtoLens.Tag 4, bytesSent__field_descriptor),
           (Data.ProtoLens.Tag 5, bytesRecv__field_descriptor),
           (Data.ProtoLens.Tag 6, satSent__field_descriptor),
           (Data.ProtoLens.Tag 7, satRecv__field_descriptor),
           (Data.ProtoLens.Tag 8, inbound__field_descriptor),
           (Data.ProtoLens.Tag 9, pingTime__field_descriptor),
           (Data.ProtoLens.Tag 10, syncType__field_descriptor),
           (Data.ProtoLens.Tag 11, features__field_descriptor),
           (Data.ProtoLens.Tag 12, errors__field_descriptor),
           (Data.ProtoLens.Tag 13, flapCount__field_descriptor),
           (Data.ProtoLens.Tag 14, lastFlapNs__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Peer'_unknownFields
        (\ x__ y__ -> x__ {_Peer'_unknownFields = y__})
  defMessage
    = Peer'_constructor
        {_Peer'pubKey = Data.ProtoLens.fieldDefault,
         _Peer'address = Data.ProtoLens.fieldDefault,
         _Peer'bytesSent = Data.ProtoLens.fieldDefault,
         _Peer'bytesRecv = Data.ProtoLens.fieldDefault,
         _Peer'satSent = Data.ProtoLens.fieldDefault,
         _Peer'satRecv = Data.ProtoLens.fieldDefault,
         _Peer'inbound = Data.ProtoLens.fieldDefault,
         _Peer'pingTime = Data.ProtoLens.fieldDefault,
         _Peer'syncType = Data.ProtoLens.fieldDefault,
         _Peer'features = Data.Map.empty,
         _Peer'errors = Data.Vector.Generic.empty,
         _Peer'flapCount = Data.ProtoLens.fieldDefault,
         _Peer'lastFlapNs = Data.ProtoLens.fieldDefault,
         _Peer'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Peer
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TimestampedError
             -> Data.ProtoLens.Encoding.Bytes.Parser Peer
        loop x mutable'errors
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                            mutable'errors)
                      (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'errors") frozen'errors 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'errors
                        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))
                                       "address"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"address") y x)
                                  mutable'errors
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "bytes_sent"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"bytesSent") y x)
                                  mutable'errors
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "bytes_recv"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"bytesRecv") y x)
                                  mutable'errors
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_sent"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satSent") y x)
                                  mutable'errors
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_recv"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satRecv") y x)
                                  mutable'errors
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "inbound"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"inbound") y x)
                                  mutable'errors
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "ping_time"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pingTime") y x)
                                  mutable'errors
                        80
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "sync_type"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"syncType") y x)
                                  mutable'errors
                        90
                          -> do !(entry :: Peer'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'errors)
                        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)
                                        "errors"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append mutable'errors y)
                                loop x v
                        104
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "flap_count"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"flapCount") y x)
                                  mutable'errors
                        112
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "last_flap_ns"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lastFlapNs") y x)
                                  mutable'errors
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'errors
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                  Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'errors)
          "Peer"
  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 @"address") _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 @"bytesSent") _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 @"bytesRecv") _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 @"satSent") _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 @"satRecv") _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 @"inbound") _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
                                           (\ b -> if b then 1 else 0)
                                           _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"pingTime") _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 @"syncType") _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.<>)
                                        (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 ::
                                                                  Peer'FeaturesEntry)))))
                                              (Data.Map.toList
                                                 (Lens.Family2.view
                                                    (Data.ProtoLens.Field.field @"features") _x))))
                                        ((Data.Monoid.<>)
                                           (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
                                              (\ _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))
                                              (Lens.Family2.view
                                                 (Data.ProtoLens.Field.field @"vec'errors") _x))
                                           ((Data.Monoid.<>)
                                              (let
                                                 _v
                                                   = Lens.Family2.view
                                                       (Data.ProtoLens.Field.field @"flapCount") _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 @"lastFlapNs")
                                                          _x
                                                  in
                                                    if (Prelude.==)
                                                         _v Data.ProtoLens.fieldDefault then
                                                        Data.Monoid.mempty
                                                    else
                                                        (Data.Monoid.<>)
                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                             112)
                                                          ((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 Peer where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Peer'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Peer'pubKey x__)
                (Control.DeepSeq.deepseq
                   (_Peer'address x__)
                   (Control.DeepSeq.deepseq
                      (_Peer'bytesSent x__)
                      (Control.DeepSeq.deepseq
                         (_Peer'bytesRecv x__)
                         (Control.DeepSeq.deepseq
                            (_Peer'satSent x__)
                            (Control.DeepSeq.deepseq
                               (_Peer'satRecv x__)
                               (Control.DeepSeq.deepseq
                                  (_Peer'inbound x__)
                                  (Control.DeepSeq.deepseq
                                     (_Peer'pingTime x__)
                                     (Control.DeepSeq.deepseq
                                        (_Peer'syncType x__)
                                        (Control.DeepSeq.deepseq
                                           (_Peer'features x__)
                                           (Control.DeepSeq.deepseq
                                              (_Peer'errors x__)
                                              (Control.DeepSeq.deepseq
                                                 (_Peer'flapCount x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_Peer'lastFlapNs x__) ())))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' Peer'FeaturesEntry Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' Peer'FeaturesEntry Feature@
         * 'Proto.LndGrpc_Fields.maybe'value' @:: Lens' Peer'FeaturesEntry (Prelude.Maybe Feature)@ -}
data Peer'FeaturesEntry
  = Peer'FeaturesEntry'_constructor {_Peer'FeaturesEntry'key :: !Data.Word.Word32,
                                     _Peer'FeaturesEntry'value :: !(Prelude.Maybe Feature),
                                     _Peer'FeaturesEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Peer'FeaturesEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Peer'FeaturesEntry "key" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'FeaturesEntry'key
           (\ x__ y__ -> x__ {_Peer'FeaturesEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Peer'FeaturesEntry "value" Feature where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'FeaturesEntry'value
           (\ x__ y__ -> x__ {_Peer'FeaturesEntry'value = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Peer'FeaturesEntry "maybe'value" (Prelude.Maybe Feature) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Peer'FeaturesEntry'value
           (\ x__ y__ -> x__ {_Peer'FeaturesEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message Peer'FeaturesEntry where
  messageName _ = Data.Text.pack "lnrpc.Peer.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 Peer'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 Peer'FeaturesEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Peer'FeaturesEntry'_unknownFields
        (\ x__ y__ -> x__ {_Peer'FeaturesEntry'_unknownFields = y__})
  defMessage
    = Peer'FeaturesEntry'_constructor
        {_Peer'FeaturesEntry'key = Data.ProtoLens.fieldDefault,
         _Peer'FeaturesEntry'value = Prelude.Nothing,
         _Peer'FeaturesEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Peer'FeaturesEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser Peer'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 Peer'FeaturesEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Peer'FeaturesEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Peer'FeaturesEntry'key x__)
                (Control.DeepSeq.deepseq (_Peer'FeaturesEntry'value x__) ()))
newtype Peer'SyncType'UnrecognizedValue
  = Peer'SyncType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data Peer'SyncType
  = Peer'UNKNOWN_SYNC |
    Peer'ACTIVE_SYNC |
    Peer'PASSIVE_SYNC |
    Peer'PINNED_SYNC |
    Peer'SyncType'Unrecognized !Peer'SyncType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum Peer'SyncType where
  maybeToEnum 0 = Prelude.Just Peer'UNKNOWN_SYNC
  maybeToEnum 1 = Prelude.Just Peer'ACTIVE_SYNC
  maybeToEnum 2 = Prelude.Just Peer'PASSIVE_SYNC
  maybeToEnum 3 = Prelude.Just Peer'PINNED_SYNC
  maybeToEnum k
    = Prelude.Just
        (Peer'SyncType'Unrecognized
           (Peer'SyncType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum Peer'UNKNOWN_SYNC = "UNKNOWN_SYNC"
  showEnum Peer'ACTIVE_SYNC = "ACTIVE_SYNC"
  showEnum Peer'PASSIVE_SYNC = "PASSIVE_SYNC"
  showEnum Peer'PINNED_SYNC = "PINNED_SYNC"
  showEnum
    (Peer'SyncType'Unrecognized (Peer'SyncType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "UNKNOWN_SYNC" = Prelude.Just Peer'UNKNOWN_SYNC
    | (Prelude.==) k "ACTIVE_SYNC" = Prelude.Just Peer'ACTIVE_SYNC
    | (Prelude.==) k "PASSIVE_SYNC" = Prelude.Just Peer'PASSIVE_SYNC
    | (Prelude.==) k "PINNED_SYNC" = Prelude.Just Peer'PINNED_SYNC
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded Peer'SyncType where
  minBound = Peer'UNKNOWN_SYNC
  maxBound = Peer'PINNED_SYNC
instance Prelude.Enum Peer'SyncType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum SyncType: " (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum Peer'UNKNOWN_SYNC = 0
  fromEnum Peer'ACTIVE_SYNC = 1
  fromEnum Peer'PASSIVE_SYNC = 2
  fromEnum Peer'PINNED_SYNC = 3
  fromEnum
    (Peer'SyncType'Unrecognized (Peer'SyncType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ Peer'PINNED_SYNC
    = Prelude.error
        "Peer'SyncType.succ: bad argument Peer'PINNED_SYNC. This value would be out of bounds."
  succ Peer'UNKNOWN_SYNC = Peer'ACTIVE_SYNC
  succ Peer'ACTIVE_SYNC = Peer'PASSIVE_SYNC
  succ Peer'PASSIVE_SYNC = Peer'PINNED_SYNC
  succ (Peer'SyncType'Unrecognized _)
    = Prelude.error
        "Peer'SyncType.succ: bad argument: unrecognized value"
  pred Peer'UNKNOWN_SYNC
    = Prelude.error
        "Peer'SyncType.pred: bad argument Peer'UNKNOWN_SYNC. This value would be out of bounds."
  pred Peer'ACTIVE_SYNC = Peer'UNKNOWN_SYNC
  pred Peer'PASSIVE_SYNC = Peer'ACTIVE_SYNC
  pred Peer'PINNED_SYNC = Peer'PASSIVE_SYNC
  pred (Peer'SyncType'Unrecognized _)
    = Prelude.error
        "Peer'SyncType.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 Peer'SyncType where
  fieldDefault = Peer'UNKNOWN_SYNC
instance Control.DeepSeq.NFData Peer'SyncType where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pubKey' @:: Lens' PeerEvent Data.Text.Text@
         * 'Proto.LndGrpc_Fields.type'' @:: Lens' PeerEvent PeerEvent'EventType@ -}
data PeerEvent
  = PeerEvent'_constructor {_PeerEvent'pubKey :: !Data.Text.Text,
                            _PeerEvent'type' :: !PeerEvent'EventType,
                            _PeerEvent'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PeerEvent where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField PeerEvent "pubKey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PeerEvent'pubKey (\ x__ y__ -> x__ {_PeerEvent'pubKey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PeerEvent "type'" PeerEvent'EventType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PeerEvent'type' (\ x__ y__ -> x__ {_PeerEvent'type' = y__}))
        Prelude.id
instance Data.ProtoLens.Message PeerEvent where
  messageName _ = Data.Text.pack "lnrpc.PeerEvent"
  packedMessageDescriptor _
    = "\n\
      \\tPeerEvent\DC2\ETB\n\
      \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2.\n\
      \\EOTtype\CAN\STX \SOH(\SO2\SUB.lnrpc.PeerEvent.EventTypeR\EOTtype\".\n\
      \\tEventType\DC2\SI\n\
      \\vPEER_ONLINE\DLE\NUL\DC2\DLE\n\
      \\fPEER_OFFLINE\DLE\SOH"
  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 PeerEvent
        type'__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor PeerEvent'EventType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"type'")) ::
              Data.ProtoLens.FieldDescriptor PeerEvent
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, pubKey__field_descriptor),
           (Data.ProtoLens.Tag 2, type'__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PeerEvent'_unknownFields
        (\ x__ y__ -> x__ {_PeerEvent'_unknownFields = y__})
  defMessage
    = PeerEvent'_constructor
        {_PeerEvent'pubKey = Data.ProtoLens.fieldDefault,
         _PeerEvent'type' = Data.ProtoLens.fieldDefault,
         _PeerEvent'_unknownFields = []}
  parseMessage
    = let
        loop :: PeerEvent -> Data.ProtoLens.Encoding.Bytes.Parser PeerEvent
        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.toEnum
                                          (Prelude.fmap
                                             Prelude.fromIntegral
                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
                                       "type"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") 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) "PeerEvent"
  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 @"type'") _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.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData PeerEvent where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PeerEvent'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PeerEvent'pubKey x__)
                (Control.DeepSeq.deepseq (_PeerEvent'type' x__) ()))
newtype PeerEvent'EventType'UnrecognizedValue
  = PeerEvent'EventType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data PeerEvent'EventType
  = PeerEvent'PEER_ONLINE |
    PeerEvent'PEER_OFFLINE |
    PeerEvent'EventType'Unrecognized !PeerEvent'EventType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.MessageEnum PeerEvent'EventType where
  maybeToEnum 0 = Prelude.Just PeerEvent'PEER_ONLINE
  maybeToEnum 1 = Prelude.Just PeerEvent'PEER_OFFLINE
  maybeToEnum k
    = Prelude.Just
        (PeerEvent'EventType'Unrecognized
           (PeerEvent'EventType'UnrecognizedValue (Prelude.fromIntegral k)))
  showEnum PeerEvent'PEER_ONLINE = "PEER_ONLINE"
  showEnum PeerEvent'PEER_OFFLINE = "PEER_OFFLINE"
  showEnum
    (PeerEvent'EventType'Unrecognized (PeerEvent'EventType'UnrecognizedValue k))
    = Prelude.show k
  readEnum k
    | (Prelude.==) k "PEER_ONLINE" = Prelude.Just PeerEvent'PEER_ONLINE
    | (Prelude.==) k "PEER_OFFLINE"
    = Prelude.Just PeerEvent'PEER_OFFLINE
    | Prelude.otherwise
    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
instance Prelude.Bounded PeerEvent'EventType where
  minBound = PeerEvent'PEER_ONLINE
  maxBound = PeerEvent'PEER_OFFLINE
instance Prelude.Enum PeerEvent'EventType where
  toEnum k__
    = Prelude.maybe
        (Prelude.error
           ((Prelude.++)
              "toEnum: unknown value for enum EventType: " (Prelude.show k__)))
        Prelude.id
        (Data.ProtoLens.maybeToEnum k__)
  fromEnum PeerEvent'PEER_ONLINE = 0
  fromEnum PeerEvent'PEER_OFFLINE = 1
  fromEnum
    (PeerEvent'EventType'Unrecognized (PeerEvent'EventType'UnrecognizedValue k))
    = Prelude.fromIntegral k
  succ PeerEvent'PEER_OFFLINE
    = Prelude.error
        "PeerEvent'EventType.succ: bad argument PeerEvent'PEER_OFFLINE. This value would be out of bounds."
  succ PeerEvent'PEER_ONLINE = PeerEvent'PEER_OFFLINE
  succ (PeerEvent'EventType'Unrecognized _)
    = Prelude.error
        "PeerEvent'EventType.succ: bad argument: unrecognized value"
  pred PeerEvent'PEER_ONLINE
    = Prelude.error
        "PeerEvent'EventType.pred: bad argument PeerEvent'PEER_ONLINE. This value would be out of bounds."
  pred PeerEvent'PEER_OFFLINE = PeerEvent'PEER_ONLINE
  pred (PeerEvent'EventType'Unrecognized _)
    = Prelude.error
        "PeerEvent'EventType.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 PeerEvent'EventType where
  fieldDefault = PeerEvent'PEER_ONLINE
instance Control.DeepSeq.NFData PeerEvent'EventType where
  rnf x__ = Prelude.seq x__ ()
{- | Fields :
      -}
data PeerEventSubscription
  = PeerEventSubscription'_constructor {_PeerEventSubscription'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PeerEventSubscription where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message PeerEventSubscription where
  messageName _ = Data.Text.pack "lnrpc.PeerEventSubscription"
  packedMessageDescriptor _
    = "\n\
      \\NAKPeerEventSubscription"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PeerEventSubscription'_unknownFields
        (\ x__ y__ -> x__ {_PeerEventSubscription'_unknownFields = y__})
  defMessage
    = PeerEventSubscription'_constructor
        {_PeerEventSubscription'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PeerEventSubscription
          -> Data.ProtoLens.Encoding.Bytes.Parser PeerEventSubscription
        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) "PeerEventSubscription"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData PeerEventSubscription where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PeerEventSubscription'_unknownFields x__) ()
{- | Fields :
      -}
data PendingChannelsRequest
  = PendingChannelsRequest'_constructor {_PendingChannelsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PendingChannelsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.totalLimboBalance' @:: Lens' PendingChannelsResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pendingOpenChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'PendingOpenChannel]@
         * 'Proto.LndGrpc_Fields.vec'pendingOpenChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'PendingOpenChannel)@
         * 'Proto.LndGrpc_Fields.pendingClosingChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'ClosedChannel]@
         * 'Proto.LndGrpc_Fields.vec'pendingClosingChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'ClosedChannel)@
         * 'Proto.LndGrpc_Fields.pendingForceClosingChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'ForceClosedChannel]@
         * 'Proto.LndGrpc_Fields.vec'pendingForceClosingChannels' @:: Lens' PendingChannelsResponse (Data.Vector.Vector PendingChannelsResponse'ForceClosedChannel)@
         * 'Proto.LndGrpc_Fields.waitingCloseChannels' @:: Lens' PendingChannelsResponse [PendingChannelsResponse'WaitingCloseChannel]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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\161\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\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.LndGrpc_Fields.channel' @:: Lens' PendingChannelsResponse'ClosedChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.LndGrpc_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'ClosedChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse'ClosedChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.localTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.LndGrpc_Fields.remoteTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.LndGrpc_Fields.remotePendingTxid' @:: Lens' PendingChannelsResponse'Commitments Data.Text.Text@
         * 'Proto.LndGrpc_Fields.localCommitFeeSat' @:: Lens' PendingChannelsResponse'Commitments Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.remoteCommitFeeSat' @:: Lens' PendingChannelsResponse'Commitments Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse'Commitments where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channel' @:: Lens' PendingChannelsResponse'ForceClosedChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.LndGrpc_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'ForceClosedChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.LndGrpc_Fields.closingTxid' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.limboBalance' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.maturityHeight' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.blocksTilMaturity' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.recoveredBalance' @:: Lens' PendingChannelsResponse'ForceClosedChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pendingHtlcs' @:: Lens' PendingChannelsResponse'ForceClosedChannel [PendingHTLC]@
         * 'Proto.LndGrpc_Fields.vec'pendingHtlcs' @:: Lens' PendingChannelsResponse'ForceClosedChannel (Data.Vector.Vector PendingHTLC)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse'ForceClosedChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
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)
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__ ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.remoteNodePub' @:: Lens' PendingChannelsResponse'PendingChannel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.channelPoint' @:: Lens' PendingChannelsResponse'PendingChannel Data.Text.Text@
         * 'Proto.LndGrpc_Fields.capacity' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.localBalance' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.remoteBalance' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.localChanReserveSat' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.remoteChanReserveSat' @:: Lens' PendingChannelsResponse'PendingChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.initiator' @:: Lens' PendingChannelsResponse'PendingChannel Initiator@
         * 'Proto.LndGrpc_Fields.commitmentType' @:: Lens' PendingChannelsResponse'PendingChannel CommitmentType@ -}
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'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PendingChannelsResponse'PendingChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.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"
  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
      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)]
  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'_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)
                        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.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__)
                                        ())))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.channel' @:: Lens' PendingChannelsResponse'PendingOpenChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.LndGrpc_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'PendingOpenChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.LndGrpc_Fields.confirmationHeight' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.commitFee' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.commitWeight' @:: Lens' PendingChannelsResponse'PendingOpenChannel Data.Int.Int64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse'PendingOpenChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.channel' @:: Lens' PendingChannelsResponse'WaitingCloseChannel PendingChannelsResponse'PendingChannel@
         * 'Proto.LndGrpc_Fields.maybe'channel' @:: Lens' PendingChannelsResponse'WaitingCloseChannel (Prelude.Maybe PendingChannelsResponse'PendingChannel)@
         * 'Proto.LndGrpc_Fields.limboBalance' @:: Lens' PendingChannelsResponse'WaitingCloseChannel Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.commitments' @:: Lens' PendingChannelsResponse'WaitingCloseChannel PendingChannelsResponse'Commitments@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingChannelsResponse'WaitingCloseChannel where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.incoming' @:: Lens' PendingHTLC Prelude.Bool@
         * 'Proto.LndGrpc_Fields.amount' @:: Lens' PendingHTLC Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.outpoint' @:: Lens' PendingHTLC Data.Text.Text@
         * 'Proto.LndGrpc_Fields.maturityHeight' @:: Lens' PendingHTLC Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.blocksTilMaturity' @:: Lens' PendingHTLC Data.Int.Int32@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingHTLC where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.txid' @:: Lens' PendingUpdate Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PendingUpdate where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.baseFeeMsat' @:: Lens' PolicyUpdateRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeRate' @:: Lens' PolicyUpdateRequest Prelude.Double@
         * 'Proto.LndGrpc_Fields.timeLockDelta' @:: Lens' PolicyUpdateRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.maxHtlcMsat' @:: Lens' PolicyUpdateRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.minHtlcMsat' @:: Lens' PolicyUpdateRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.minHtlcMsatSpecified' @:: Lens' PolicyUpdateRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.maybe'scope' @:: Lens' PolicyUpdateRequest (Prelude.Maybe PolicyUpdateRequest'Scope)@
         * 'Proto.LndGrpc_Fields.maybe'global' @:: Lens' PolicyUpdateRequest (Prelude.Maybe Prelude.Bool)@
         * 'Proto.LndGrpc_Fields.global' @:: Lens' PolicyUpdateRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.maybe'chanPoint' @:: Lens' PolicyUpdateRequest (Prelude.Maybe ChannelPoint)@
         * 'Proto.LndGrpc_Fields.chanPoint' @:: Lens' PolicyUpdateRequest ChannelPoint@ -}
data PolicyUpdateRequest
  = PolicyUpdateRequest'_constructor {_PolicyUpdateRequest'baseFeeMsat :: !Data.Int.Int64,
                                      _PolicyUpdateRequest'feeRate :: !Prelude.Double,
                                      _PolicyUpdateRequest'timeLockDelta :: !Data.Word.Word32,
                                      _PolicyUpdateRequest'maxHtlcMsat :: !Data.Word.Word64,
                                      _PolicyUpdateRequest'minHtlcMsat :: !Data.Word.Word64,
                                      _PolicyUpdateRequest'minHtlcMsatSpecified :: !Prelude.Bool,
                                      _PolicyUpdateRequest'scope :: !(Prelude.Maybe PolicyUpdateRequest'Scope),
                                      _PolicyUpdateRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PolicyUpdateRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data PolicyUpdateRequest'Scope
  = PolicyUpdateRequest'Global !Prelude.Bool |
    PolicyUpdateRequest'ChanPoint !ChannelPoint
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "baseFeeMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'baseFeeMsat
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'baseFeeMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "feeRate" Prelude.Double where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'feeRate
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'feeRate = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "timeLockDelta" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'timeLockDelta
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'timeLockDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "maxHtlcMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'maxHtlcMsat
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'maxHtlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "minHtlcMsat" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'minHtlcMsat
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'minHtlcMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "minHtlcMsatSpecified" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'minHtlcMsatSpecified
           (\ x__ y__
              -> x__ {_PolicyUpdateRequest'minHtlcMsatSpecified = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "maybe'scope" (Prelude.Maybe PolicyUpdateRequest'Scope) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'scope
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'scope = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "maybe'global" (Prelude.Maybe Prelude.Bool) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'scope
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'scope = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (PolicyUpdateRequest'Global x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap PolicyUpdateRequest'Global y__))
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "global" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'scope
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'scope = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (PolicyUpdateRequest'Global x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap PolicyUpdateRequest'Global y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "maybe'chanPoint" (Prelude.Maybe ChannelPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'scope
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'scope = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (PolicyUpdateRequest'ChanPoint x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap PolicyUpdateRequest'ChanPoint y__))
instance Data.ProtoLens.Field.HasField PolicyUpdateRequest "chanPoint" ChannelPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _PolicyUpdateRequest'scope
           (\ x__ y__ -> x__ {_PolicyUpdateRequest'scope = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (PolicyUpdateRequest'ChanPoint x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap PolicyUpdateRequest'ChanPoint y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Message PolicyUpdateRequest where
  messageName _ = Data.Text.pack "lnrpc.PolicyUpdateRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC3PolicyUpdateRequest\DC2\CAN\n\
      \\ACKglobal\CAN\SOH \SOH(\bH\NULR\ACKglobal\DC24\n\
      \\n\
      \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\tchanPoint\DC2\"\n\
      \\rbase_fee_msat\CAN\ETX \SOH(\ETXR\vbaseFeeMsat\DC2\EM\n\
      \\bfee_rate\CAN\EOT \SOH(\SOHR\afeeRate\DC2&\n\
      \\SItime_lock_delta\CAN\ENQ \SOH(\rR\rtimeLockDelta\DC2\"\n\
      \\rmax_htlc_msat\CAN\ACK \SOH(\EOTR\vmaxHtlcMsat\DC2\"\n\
      \\rmin_htlc_msat\CAN\a \SOH(\EOTR\vminHtlcMsat\DC25\n\
      \\ETBmin_htlc_msat_specified\CAN\b \SOH(\bR\DC4minHtlcMsatSpecifiedB\a\n\
      \\ENQscope"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        baseFeeMsat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "base_fee_msat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"baseFeeMsat")) ::
              Data.ProtoLens.FieldDescriptor PolicyUpdateRequest
        feeRate__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "fee_rate"
              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"feeRate")) ::
              Data.ProtoLens.FieldDescriptor PolicyUpdateRequest
        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 PolicyUpdateRequest
        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 PolicyUpdateRequest
        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 PolicyUpdateRequest
        minHtlcMsatSpecified__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_htlc_msat_specified"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minHtlcMsatSpecified")) ::
              Data.ProtoLens.FieldDescriptor PolicyUpdateRequest
        global__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "global"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'global")) ::
              Data.ProtoLens.FieldDescriptor PolicyUpdateRequest
        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 PolicyUpdateRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 3, baseFeeMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, feeRate__field_descriptor),
           (Data.ProtoLens.Tag 5, timeLockDelta__field_descriptor),
           (Data.ProtoLens.Tag 6, maxHtlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 7, minHtlcMsat__field_descriptor),
           (Data.ProtoLens.Tag 8, minHtlcMsatSpecified__field_descriptor),
           (Data.ProtoLens.Tag 1, global__field_descriptor),
           (Data.ProtoLens.Tag 2, chanPoint__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PolicyUpdateRequest'_unknownFields
        (\ x__ y__ -> x__ {_PolicyUpdateRequest'_unknownFields = y__})
  defMessage
    = PolicyUpdateRequest'_constructor
        {_PolicyUpdateRequest'baseFeeMsat = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'feeRate = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'timeLockDelta = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'maxHtlcMsat = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'minHtlcMsat = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'minHtlcMsatSpecified = Data.ProtoLens.fieldDefault,
         _PolicyUpdateRequest'scope = Prelude.Nothing,
         _PolicyUpdateRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PolicyUpdateRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser PolicyUpdateRequest
        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)
                                       "base_fee_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"baseFeeMsat") y x)
                        33
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Data.ProtoLens.Encoding.Bytes.wordToDouble
                                          Data.ProtoLens.Encoding.Bytes.getFixed64)
                                       "fee_rate"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"feeRate") y x)
                        40
                          -> 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)
                        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.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "min_htlc_msat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minHtlcMsat") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_htlc_msat_specified"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"minHtlcMsatSpecified") y x)
                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "global"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"global") 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)
                        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) "PolicyUpdateRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"baseFeeMsat") _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 @"feeRate") _x
                 in
                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                       Data.Monoid.mempty
                   else
                       (Data.Monoid.<>)
                         (Data.ProtoLens.Encoding.Bytes.putVarInt 33)
                         ((Prelude..)
                            Data.ProtoLens.Encoding.Bytes.putFixed64
                            Data.ProtoLens.Encoding.Bytes.doubleToWord
                            _v))
                ((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 40)
                            ((Prelude..)
                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _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 @"minHtlcMsat") _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.Monoid.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"minHtlcMsatSpecified") _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
                                        (\ b -> if b then 1 else 0)
                                        _v))
                            ((Data.Monoid.<>)
                               (case
                                    Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'scope") _x
                                of
                                  Prelude.Nothing -> Data.Monoid.mempty
                                  (Prelude.Just (PolicyUpdateRequest'Global v))
                                    -> (Data.Monoid.<>)
                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
                                         ((Prelude..)
                                            Data.ProtoLens.Encoding.Bytes.putVarInt
                                            (\ b -> if b then 1 else 0)
                                            v)
                                  (Prelude.Just (PolicyUpdateRequest'ChanPoint 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 PolicyUpdateRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PolicyUpdateRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_PolicyUpdateRequest'baseFeeMsat x__)
                (Control.DeepSeq.deepseq
                   (_PolicyUpdateRequest'feeRate x__)
                   (Control.DeepSeq.deepseq
                      (_PolicyUpdateRequest'timeLockDelta x__)
                      (Control.DeepSeq.deepseq
                         (_PolicyUpdateRequest'maxHtlcMsat x__)
                         (Control.DeepSeq.deepseq
                            (_PolicyUpdateRequest'minHtlcMsat x__)
                            (Control.DeepSeq.deepseq
                               (_PolicyUpdateRequest'minHtlcMsatSpecified x__)
                               (Control.DeepSeq.deepseq (_PolicyUpdateRequest'scope x__) ())))))))
instance Control.DeepSeq.NFData PolicyUpdateRequest'Scope where
  rnf (PolicyUpdateRequest'Global x__) = Control.DeepSeq.rnf x__
  rnf (PolicyUpdateRequest'ChanPoint x__) = Control.DeepSeq.rnf x__
_PolicyUpdateRequest'Global ::
  Data.ProtoLens.Prism.Prism' PolicyUpdateRequest'Scope Prelude.Bool
_PolicyUpdateRequest'Global
  = Data.ProtoLens.Prism.prism'
      PolicyUpdateRequest'Global
      (\ p__
         -> case p__ of
              (PolicyUpdateRequest'Global p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_PolicyUpdateRequest'ChanPoint ::
  Data.ProtoLens.Prism.Prism' PolicyUpdateRequest'Scope ChannelPoint
_PolicyUpdateRequest'ChanPoint
  = Data.ProtoLens.Prism.prism'
      PolicyUpdateRequest'ChanPoint
      (\ p__
         -> case p__ of
              (PolicyUpdateRequest'ChanPoint p__val) -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
      -}
data PolicyUpdateResponse
  = PolicyUpdateResponse'_constructor {_PolicyUpdateResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show PolicyUpdateResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message PolicyUpdateResponse where
  messageName _ = Data.Text.pack "lnrpc.PolicyUpdateResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC4PolicyUpdateResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _PolicyUpdateResponse'_unknownFields
        (\ x__ y__ -> x__ {_PolicyUpdateResponse'_unknownFields = y__})
  defMessage
    = PolicyUpdateResponse'_constructor
        {_PolicyUpdateResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          PolicyUpdateResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser PolicyUpdateResponse
        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) "PolicyUpdateResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData PolicyUpdateResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_PolicyUpdateResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.pendingChanId' @:: Lens' PsbtShim Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.basePsbt' @:: Lens' PsbtShim Data.ByteString.ByteString@
         * 'Proto.LndGrpc_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)
instance Prelude.Show PsbtShim where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.pubKey' @:: Lens' QueryRoutesRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.amt' @:: Lens' QueryRoutesRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.amtMsat' @:: Lens' QueryRoutesRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.finalCltvDelta' @:: Lens' QueryRoutesRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.feeLimit' @:: Lens' QueryRoutesRequest FeeLimit@
         * 'Proto.LndGrpc_Fields.maybe'feeLimit' @:: Lens' QueryRoutesRequest (Prelude.Maybe FeeLimit)@
         * 'Proto.LndGrpc_Fields.ignoredNodes' @:: Lens' QueryRoutesRequest [Data.ByteString.ByteString]@
         * 'Proto.LndGrpc_Fields.vec'ignoredNodes' @:: Lens' QueryRoutesRequest (Data.Vector.Vector Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.ignoredEdges' @:: Lens' QueryRoutesRequest [EdgeLocator]@
         * 'Proto.LndGrpc_Fields.vec'ignoredEdges' @:: Lens' QueryRoutesRequest (Data.Vector.Vector EdgeLocator)@
         * 'Proto.LndGrpc_Fields.sourcePubKey' @:: Lens' QueryRoutesRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.useMissionControl' @:: Lens' QueryRoutesRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.ignoredPairs' @:: Lens' QueryRoutesRequest [NodePair]@
         * 'Proto.LndGrpc_Fields.vec'ignoredPairs' @:: Lens' QueryRoutesRequest (Data.Vector.Vector NodePair)@
         * 'Proto.LndGrpc_Fields.cltvLimit' @:: Lens' QueryRoutesRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.destCustomRecords' @:: Lens' QueryRoutesRequest (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.outgoingChanId' @:: Lens' QueryRoutesRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.lastHopPubkey' @:: Lens' QueryRoutesRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.routeHints' @:: Lens' QueryRoutesRequest [RouteHint]@
         * 'Proto.LndGrpc_Fields.vec'routeHints' @:: Lens' QueryRoutesRequest (Data.Vector.Vector RouteHint)@
         * 'Proto.LndGrpc_Fields.destFeatures' @:: Lens' QueryRoutesRequest [FeatureBit]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show QueryRoutesRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' QueryRoutesRequest'DestCustomRecordsEntry Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show QueryRoutesRequest'DestCustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.routes' @:: Lens' QueryRoutesResponse [Route]@
         * 'Proto.LndGrpc_Fields.vec'routes' @:: Lens' QueryRoutesResponse (Data.Vector.Vector Route)@
         * 'Proto.LndGrpc_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)
instance Prelude.Show QueryRoutesResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.fundingAddress' @:: Lens' ReadyForPsbtFunding Data.Text.Text@
         * 'Proto.LndGrpc_Fields.fundingAmount' @:: Lens' ReadyForPsbtFunding Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.psbt' @:: Lens' ReadyForPsbtFunding Data.ByteString.ByteString@ -}
data ReadyForPsbtFunding
  = ReadyForPsbtFunding'_constructor {_ReadyForPsbtFunding'fundingAddress :: !Data.Text.Text,
                                      _ReadyForPsbtFunding'fundingAmount :: !Data.Int.Int64,
                                      _ReadyForPsbtFunding'psbt :: !Data.ByteString.ByteString,
                                      _ReadyForPsbtFunding'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show ReadyForPsbtFunding where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField ReadyForPsbtFunding "fundingAddress" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ReadyForPsbtFunding'fundingAddress
           (\ x__ y__ -> x__ {_ReadyForPsbtFunding'fundingAddress = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ReadyForPsbtFunding "fundingAmount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ReadyForPsbtFunding'fundingAmount
           (\ x__ y__ -> x__ {_ReadyForPsbtFunding'fundingAmount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField ReadyForPsbtFunding "psbt" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _ReadyForPsbtFunding'psbt
           (\ x__ y__ -> x__ {_ReadyForPsbtFunding'psbt = y__}))
        Prelude.id
instance Data.ProtoLens.Message ReadyForPsbtFunding where
  messageName _ = Data.Text.pack "lnrpc.ReadyForPsbtFunding"
  packedMessageDescriptor _
    = "\n\
      \\DC3ReadyForPsbtFunding\DC2'\n\
      \\SIfunding_address\CAN\SOH \SOH(\tR\SOfundingAddress\DC2%\n\
      \\SOfunding_amount\CAN\STX \SOH(\ETXR\rfundingAmount\DC2\DC2\n\
      \\EOTpsbt\CAN\ETX \SOH(\fR\EOTpsbt"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        fundingAddress__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fundingAddress")) ::
              Data.ProtoLens.FieldDescriptor ReadyForPsbtFunding
        fundingAmount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "funding_amount"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"fundingAmount")) ::
              Data.ProtoLens.FieldDescriptor ReadyForPsbtFunding
        psbt__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "psbt"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"psbt")) ::
              Data.ProtoLens.FieldDescriptor ReadyForPsbtFunding
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, fundingAddress__field_descriptor),
           (Data.ProtoLens.Tag 2, fundingAmount__field_descriptor),
           (Data.ProtoLens.Tag 3, psbt__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _ReadyForPsbtFunding'_unknownFields
        (\ x__ y__ -> x__ {_ReadyForPsbtFunding'_unknownFields = y__})
  defMessage
    = ReadyForPsbtFunding'_constructor
        {_ReadyForPsbtFunding'fundingAddress = Data.ProtoLens.fieldDefault,
         _ReadyForPsbtFunding'fundingAmount = Data.ProtoLens.fieldDefault,
         _ReadyForPsbtFunding'psbt = Data.ProtoLens.fieldDefault,
         _ReadyForPsbtFunding'_unknownFields = []}
  parseMessage
    = let
        loop ::
          ReadyForPsbtFunding
          -> Data.ProtoLens.Encoding.Bytes.Parser ReadyForPsbtFunding
        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))
                                       "funding_address"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fundingAddress") y x)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "funding_amount"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"fundingAmount") y x)
                        26
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "psbt"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"psbt") 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) "ReadyForPsbtFunding"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view
                      (Data.ProtoLens.Field.field @"fundingAddress") _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 @"fundingAmount") _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 @"psbt") _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 ReadyForPsbtFunding where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_ReadyForPsbtFunding'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_ReadyForPsbtFunding'fundingAddress x__)
                (Control.DeepSeq.deepseq
                   (_ReadyForPsbtFunding'fundingAmount x__)
                   (Control.DeepSeq.deepseq (_ReadyForPsbtFunding'psbt x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.resolutionType' @:: Lens' Resolution ResolutionType@
         * 'Proto.LndGrpc_Fields.outcome' @:: Lens' Resolution ResolutionOutcome@
         * 'Proto.LndGrpc_Fields.outpoint' @:: Lens' Resolution OutPoint@
         * 'Proto.LndGrpc_Fields.maybe'outpoint' @:: Lens' Resolution (Prelude.Maybe OutPoint)@
         * 'Proto.LndGrpc_Fields.amountSat' @:: Lens' Resolution Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Resolution where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
data ResolutionOutcome
  = OUTCOME_UNKNOWN |
    CLAIMED |
    UNCLAIMED |
    ABANDONED |
    FIRST_STAGE |
    TIMEOUT |
    ResolutionOutcome'Unrecognized !ResolutionOutcome'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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__ ()
newtype ResolutionType'UnrecognizedValue
  = ResolutionType'UnrecognizedValue Data.Int.Int32
  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
data ResolutionType
  = TYPE_UNKNOWN |
    ANCHOR |
    INCOMING_HTLC |
    OUTGOING_HTLC |
    COMMIT |
    ResolutionType'Unrecognized !ResolutionType'UnrecognizedValue
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
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__ ()
{- | Fields :
      -}
data RestoreBackupResponse
  = RestoreBackupResponse'_constructor {_RestoreBackupResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show RestoreBackupResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message RestoreBackupResponse where
  messageName _ = Data.Text.pack "lnrpc.RestoreBackupResponse"
  packedMessageDescriptor _
    = "\n\
      \\NAKRestoreBackupResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _RestoreBackupResponse'_unknownFields
        (\ x__ y__ -> x__ {_RestoreBackupResponse'_unknownFields = y__})
  defMessage
    = RestoreBackupResponse'_constructor
        {_RestoreBackupResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          RestoreBackupResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser RestoreBackupResponse
        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) "RestoreBackupResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData RestoreBackupResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_RestoreBackupResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.maybe'backup' @:: Lens' RestoreChanBackupRequest (Prelude.Maybe RestoreChanBackupRequest'Backup)@
         * 'Proto.LndGrpc_Fields.maybe'chanBackups' @:: Lens' RestoreChanBackupRequest (Prelude.Maybe ChannelBackups)@
         * 'Proto.LndGrpc_Fields.chanBackups' @:: Lens' RestoreChanBackupRequest ChannelBackups@
         * 'Proto.LndGrpc_Fields.maybe'multiChanBackup' @:: Lens' RestoreChanBackupRequest (Prelude.Maybe Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.multiChanBackup' @:: Lens' RestoreChanBackupRequest Data.ByteString.ByteString@ -}
data RestoreChanBackupRequest
  = RestoreChanBackupRequest'_constructor {_RestoreChanBackupRequest'backup :: !(Prelude.Maybe RestoreChanBackupRequest'Backup),
                                           _RestoreChanBackupRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show RestoreChanBackupRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
data RestoreChanBackupRequest'Backup
  = RestoreChanBackupRequest'ChanBackups !ChannelBackups |
    RestoreChanBackupRequest'MultiChanBackup !Data.ByteString.ByteString
  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
instance Data.ProtoLens.Field.HasField RestoreChanBackupRequest "maybe'backup" (Prelude.Maybe RestoreChanBackupRequest'Backup) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RestoreChanBackupRequest'backup
           (\ x__ y__ -> x__ {_RestoreChanBackupRequest'backup = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField RestoreChanBackupRequest "maybe'chanBackups" (Prelude.Maybe ChannelBackups) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RestoreChanBackupRequest'backup
           (\ x__ y__ -> x__ {_RestoreChanBackupRequest'backup = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (RestoreChanBackupRequest'ChanBackups x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__ -> Prelude.fmap RestoreChanBackupRequest'ChanBackups y__))
instance Data.ProtoLens.Field.HasField RestoreChanBackupRequest "chanBackups" ChannelBackups where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RestoreChanBackupRequest'backup
           (\ x__ y__ -> x__ {_RestoreChanBackupRequest'backup = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (RestoreChanBackupRequest'ChanBackups x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__ -> Prelude.fmap RestoreChanBackupRequest'ChanBackups y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
instance Data.ProtoLens.Field.HasField RestoreChanBackupRequest "maybe'multiChanBackup" (Prelude.Maybe Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RestoreChanBackupRequest'backup
           (\ x__ y__ -> x__ {_RestoreChanBackupRequest'backup = y__}))
        (Lens.Family2.Unchecked.lens
           (\ x__
              -> case x__ of
                   (Prelude.Just (RestoreChanBackupRequest'MultiChanBackup x__val))
                     -> Prelude.Just x__val
                   _otherwise -> Prelude.Nothing)
           (\ _ y__
              -> Prelude.fmap RestoreChanBackupRequest'MultiChanBackup y__))
instance Data.ProtoLens.Field.HasField RestoreChanBackupRequest "multiChanBackup" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _RestoreChanBackupRequest'backup
           (\ x__ y__ -> x__ {_RestoreChanBackupRequest'backup = y__}))
        ((Prelude..)
           (Lens.Family2.Unchecked.lens
              (\ x__
                 -> case x__ of
                      (Prelude.Just (RestoreChanBackupRequest'MultiChanBackup x__val))
                        -> Prelude.Just x__val
                      _otherwise -> Prelude.Nothing)
              (\ _ y__
                 -> Prelude.fmap RestoreChanBackupRequest'MultiChanBackup y__))
           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
instance Data.ProtoLens.Message RestoreChanBackupRequest where
  messageName _ = Data.Text.pack "lnrpc.RestoreChanBackupRequest"
  packedMessageDescriptor _
    = "\n\
      \\CANRestoreChanBackupRequest\DC2:\n\
      \\fchan_backups\CAN\SOH \SOH(\v2\NAK.lnrpc.ChannelBackupsH\NULR\vchanBackups\DC2,\n\
      \\DC1multi_chan_backup\CAN\STX \SOH(\fH\NULR\SImultiChanBackupB\b\n\
      \\ACKbackup"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        chanBackups__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "chan_backups"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor ChannelBackups)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'chanBackups")) ::
              Data.ProtoLens.FieldDescriptor RestoreChanBackupRequest
        multiChanBackup__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "multi_chan_backup"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'multiChanBackup")) ::
              Data.ProtoLens.FieldDescriptor RestoreChanBackupRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, chanBackups__field_descriptor),
           (Data.ProtoLens.Tag 2, multiChanBackup__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _RestoreChanBackupRequest'_unknownFields
        (\ x__ y__ -> x__ {_RestoreChanBackupRequest'_unknownFields = y__})
  defMessage
    = RestoreChanBackupRequest'_constructor
        {_RestoreChanBackupRequest'backup = Prelude.Nothing,
         _RestoreChanBackupRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          RestoreChanBackupRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser RestoreChanBackupRequest
        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_backups"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"chanBackups") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "multi_chan_backup"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"multiChanBackup") 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) "RestoreChanBackupRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (case
                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'backup") _x
              of
                Prelude.Nothing -> Data.Monoid.mempty
                (Prelude.Just (RestoreChanBackupRequest'ChanBackups 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 (RestoreChanBackupRequest'MultiChanBackup v))
                  -> (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 RestoreChanBackupRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_RestoreChanBackupRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_RestoreChanBackupRequest'backup x__) ())
instance Control.DeepSeq.NFData RestoreChanBackupRequest'Backup where
  rnf (RestoreChanBackupRequest'ChanBackups x__)
    = Control.DeepSeq.rnf x__
  rnf (RestoreChanBackupRequest'MultiChanBackup x__)
    = Control.DeepSeq.rnf x__
_RestoreChanBackupRequest'ChanBackups ::
  Data.ProtoLens.Prism.Prism' RestoreChanBackupRequest'Backup ChannelBackups
_RestoreChanBackupRequest'ChanBackups
  = Data.ProtoLens.Prism.prism'
      RestoreChanBackupRequest'ChanBackups
      (\ p__
         -> case p__ of
              (RestoreChanBackupRequest'ChanBackups p__val)
                -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
_RestoreChanBackupRequest'MultiChanBackup ::
  Data.ProtoLens.Prism.Prism' RestoreChanBackupRequest'Backup Data.ByteString.ByteString
_RestoreChanBackupRequest'MultiChanBackup
  = Data.ProtoLens.Prism.prism'
      RestoreChanBackupRequest'MultiChanBackup
      (\ p__
         -> case p__ of
              (RestoreChanBackupRequest'MultiChanBackup p__val)
                -> Prelude.Just p__val
              _otherwise -> Prelude.Nothing)
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.totalTimeLock' @:: Lens' Route Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.totalFees' @:: Lens' Route Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.totalAmt' @:: Lens' Route Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.hops' @:: Lens' Route [Hop]@
         * 'Proto.LndGrpc_Fields.vec'hops' @:: Lens' Route (Data.Vector.Vector Hop)@
         * 'Proto.LndGrpc_Fields.totalFeesMsat' @:: Lens' Route Data.Int.Int64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show Route where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.hopHints' @:: Lens' RouteHint [HopHint]@
         * 'Proto.LndGrpc_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)
instance Prelude.Show RouteHint where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.timeLockDelta' @:: Lens' RoutingPolicy Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.minHtlc' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeBaseMsat' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.feeRateMilliMsat' @:: Lens' RoutingPolicy Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.disabled' @:: Lens' RoutingPolicy Prelude.Bool@
         * 'Proto.LndGrpc_Fields.maxHtlcMsat' @:: Lens' RoutingPolicy Data.Word.Word64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show RoutingPolicy where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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 :
     
         * 'Proto.LndGrpc_Fields.addr' @:: Lens' SendCoinsRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.amount' @:: Lens' SendCoinsRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.targetConf' @:: Lens' SendCoinsRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.satPerVbyte' @:: Lens' SendCoinsRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.satPerByte' @:: Lens' SendCoinsRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.sendAll' @:: Lens' SendCoinsRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.label' @:: Lens' SendCoinsRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.minConfs' @:: Lens' SendCoinsRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.spendUnconfirmed' @:: Lens' SendCoinsRequest Prelude.Bool@ -}
data SendCoinsRequest
  = SendCoinsRequest'_constructor {_SendCoinsRequest'addr :: !Data.Text.Text,
                                   _SendCoinsRequest'amount :: !Data.Int.Int64,
                                   _SendCoinsRequest'targetConf :: !Data.Int.Int32,
                                   _SendCoinsRequest'satPerVbyte :: !Data.Word.Word64,
                                   _SendCoinsRequest'satPerByte :: !Data.Int.Int64,
                                   _SendCoinsRequest'sendAll :: !Prelude.Bool,
                                   _SendCoinsRequest'label :: !Data.Text.Text,
                                   _SendCoinsRequest'minConfs :: !Data.Int.Int32,
                                   _SendCoinsRequest'spendUnconfirmed :: !Prelude.Bool,
                                   _SendCoinsRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendCoinsRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendCoinsRequest "addr" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'addr
           (\ x__ y__ -> x__ {_SendCoinsRequest'addr = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "amount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'amount
           (\ x__ y__ -> x__ {_SendCoinsRequest'amount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "targetConf" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'targetConf
           (\ x__ y__ -> x__ {_SendCoinsRequest'targetConf = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "satPerVbyte" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'satPerVbyte
           (\ x__ y__ -> x__ {_SendCoinsRequest'satPerVbyte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "satPerByte" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'satPerByte
           (\ x__ y__ -> x__ {_SendCoinsRequest'satPerByte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "sendAll" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'sendAll
           (\ x__ y__ -> x__ {_SendCoinsRequest'sendAll = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "label" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'label
           (\ x__ y__ -> x__ {_SendCoinsRequest'label = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "minConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'minConfs
           (\ x__ y__ -> x__ {_SendCoinsRequest'minConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendCoinsRequest "spendUnconfirmed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsRequest'spendUnconfirmed
           (\ x__ y__ -> x__ {_SendCoinsRequest'spendUnconfirmed = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendCoinsRequest where
  messageName _ = Data.Text.pack "lnrpc.SendCoinsRequest"
  packedMessageDescriptor _
    = "\n\
      \\DLESendCoinsRequest\DC2\DC2\n\
      \\EOTaddr\CAN\SOH \SOH(\tR\EOTaddr\DC2\SYN\n\
      \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\US\n\
      \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
      \targetConf\DC2\"\n\
      \\rsat_per_vbyte\CAN\EOT \SOH(\EOTR\vsatPerVbyte\DC2$\n\
      \\fsat_per_byte\CAN\ENQ \SOH(\ETXR\n\
      \satPerByteB\STX\CAN\SOH\DC2\EM\n\
      \\bsend_all\CAN\ACK \SOH(\bR\asendAll\DC2\DC4\n\
      \\ENQlabel\CAN\a \SOH(\tR\ENQlabel\DC2\ESC\n\
      \\tmin_confs\CAN\b \SOH(\ENQR\bminConfs\DC2+\n\
      \\DC1spend_unconfirmed\CAN\t \SOH(\bR\DLEspendUnconfirmed"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        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 SendCoinsRequest
        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 SendCoinsRequest
        targetConf__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "target_conf"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"targetConf")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        satPerVbyte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_vbyte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerVbyte")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        satPerByte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_byte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerByte")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        sendAll__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "send_all"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"sendAll")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        label__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "label"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"label")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        minConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minConfs")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
        spendUnconfirmed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "spend_unconfirmed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"spendUnconfirmed")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addr__field_descriptor),
           (Data.ProtoLens.Tag 2, amount__field_descriptor),
           (Data.ProtoLens.Tag 3, targetConf__field_descriptor),
           (Data.ProtoLens.Tag 4, satPerVbyte__field_descriptor),
           (Data.ProtoLens.Tag 5, satPerByte__field_descriptor),
           (Data.ProtoLens.Tag 6, sendAll__field_descriptor),
           (Data.ProtoLens.Tag 7, label__field_descriptor),
           (Data.ProtoLens.Tag 8, minConfs__field_descriptor),
           (Data.ProtoLens.Tag 9, spendUnconfirmed__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendCoinsRequest'_unknownFields
        (\ x__ y__ -> x__ {_SendCoinsRequest'_unknownFields = y__})
  defMessage
    = SendCoinsRequest'_constructor
        {_SendCoinsRequest'addr = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'amount = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'targetConf = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'satPerVbyte = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'satPerByte = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'sendAll = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'label = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'minConfs = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'spendUnconfirmed = Data.ProtoLens.fieldDefault,
         _SendCoinsRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendCoinsRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser SendCoinsRequest
        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))
                                       "addr"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"addr") 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)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "target_conf"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"targetConf") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "sat_per_vbyte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerVbyte") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_per_byte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerByte") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "send_all"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"sendAll") y x)
                        58
                          -> 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))
                                       "label"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"label") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minConfs") y x)
                        72
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "spend_unconfirmed"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"spendUnconfirmed") 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) "SendCoinsRequest"
  buildMessage
    = \ _x
        -> (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 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 @"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 @"targetConf") _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 @"satPerVbyte") _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 @"satPerByte") _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 @"sendAll") _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
                                        (\ b -> if b then 1 else 0)
                                        _v))
                            ((Data.Monoid.<>)
                               (let
                                  _v = Lens.Family2.view (Data.ProtoLens.Field.field @"label") _x
                                in
                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                      Data.Monoid.mempty
                                  else
                                      (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.Text.Encoding.encodeUtf8
                                           _v))
                               ((Data.Monoid.<>)
                                  (let
                                     _v
                                       = Lens.Family2.view
                                           (Data.ProtoLens.Field.field @"minConfs") _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 @"spendUnconfirmed") _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.ProtoLens.Encoding.Wire.buildFieldSet
                                        (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))))
instance Control.DeepSeq.NFData SendCoinsRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendCoinsRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendCoinsRequest'addr x__)
                (Control.DeepSeq.deepseq
                   (_SendCoinsRequest'amount x__)
                   (Control.DeepSeq.deepseq
                      (_SendCoinsRequest'targetConf x__)
                      (Control.DeepSeq.deepseq
                         (_SendCoinsRequest'satPerVbyte x__)
                         (Control.DeepSeq.deepseq
                            (_SendCoinsRequest'satPerByte x__)
                            (Control.DeepSeq.deepseq
                               (_SendCoinsRequest'sendAll x__)
                               (Control.DeepSeq.deepseq
                                  (_SendCoinsRequest'label x__)
                                  (Control.DeepSeq.deepseq
                                     (_SendCoinsRequest'minConfs x__)
                                     (Control.DeepSeq.deepseq
                                        (_SendCoinsRequest'spendUnconfirmed x__) ())))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.txid' @:: Lens' SendCoinsResponse Data.Text.Text@ -}
data SendCoinsResponse
  = SendCoinsResponse'_constructor {_SendCoinsResponse'txid :: !Data.Text.Text,
                                    _SendCoinsResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendCoinsResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendCoinsResponse "txid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendCoinsResponse'txid
           (\ x__ y__ -> x__ {_SendCoinsResponse'txid = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendCoinsResponse where
  messageName _ = Data.Text.pack "lnrpc.SendCoinsResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC1SendCoinsResponse\DC2\DC2\n\
      \\EOTtxid\CAN\SOH \SOH(\tR\EOTtxid"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        txid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txid")) ::
              Data.ProtoLens.FieldDescriptor SendCoinsResponse
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, txid__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendCoinsResponse'_unknownFields
        (\ x__ y__ -> x__ {_SendCoinsResponse'_unknownFields = y__})
  defMessage
    = SendCoinsResponse'_constructor
        {_SendCoinsResponse'txid = Data.ProtoLens.fieldDefault,
         _SendCoinsResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendCoinsResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser SendCoinsResponse
        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))
                                       "txid"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"txid") 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) "SendCoinsResponse"
  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)
                      ((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 SendCoinsResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendCoinsResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_SendCoinsResponse'txid x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.addrToAmount' @:: Lens' SendManyRequest (Data.Map.Map Data.Text.Text Data.Int.Int64)@
         * 'Proto.LndGrpc_Fields.targetConf' @:: Lens' SendManyRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.satPerVbyte' @:: Lens' SendManyRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.satPerByte' @:: Lens' SendManyRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.label' @:: Lens' SendManyRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.minConfs' @:: Lens' SendManyRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.spendUnconfirmed' @:: Lens' SendManyRequest Prelude.Bool@ -}
data SendManyRequest
  = SendManyRequest'_constructor {_SendManyRequest'addrToAmount :: !(Data.Map.Map Data.Text.Text Data.Int.Int64),
                                  _SendManyRequest'targetConf :: !Data.Int.Int32,
                                  _SendManyRequest'satPerVbyte :: !Data.Word.Word64,
                                  _SendManyRequest'satPerByte :: !Data.Int.Int64,
                                  _SendManyRequest'label :: !Data.Text.Text,
                                  _SendManyRequest'minConfs :: !Data.Int.Int32,
                                  _SendManyRequest'spendUnconfirmed :: !Prelude.Bool,
                                  _SendManyRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendManyRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendManyRequest "addrToAmount" (Data.Map.Map Data.Text.Text Data.Int.Int64) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'addrToAmount
           (\ x__ y__ -> x__ {_SendManyRequest'addrToAmount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "targetConf" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'targetConf
           (\ x__ y__ -> x__ {_SendManyRequest'targetConf = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "satPerVbyte" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'satPerVbyte
           (\ x__ y__ -> x__ {_SendManyRequest'satPerVbyte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "satPerByte" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'satPerByte
           (\ x__ y__ -> x__ {_SendManyRequest'satPerByte = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "label" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'label
           (\ x__ y__ -> x__ {_SendManyRequest'label = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "minConfs" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'minConfs
           (\ x__ y__ -> x__ {_SendManyRequest'minConfs = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest "spendUnconfirmed" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'spendUnconfirmed
           (\ x__ y__ -> x__ {_SendManyRequest'spendUnconfirmed = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendManyRequest where
  messageName _ = Data.Text.pack "lnrpc.SendManyRequest"
  packedMessageDescriptor _
    = "\n\
      \\SISendManyRequest\DC2L\n\
      \\fAddrToAmount\CAN\SOH \ETX(\v2(.lnrpc.SendManyRequest.AddrToAmountEntryR\fAddrToAmount\DC2\US\n\
      \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
      \targetConf\DC2\"\n\
      \\rsat_per_vbyte\CAN\EOT \SOH(\EOTR\vsatPerVbyte\DC2$\n\
      \\fsat_per_byte\CAN\ENQ \SOH(\ETXR\n\
      \satPerByteB\STX\CAN\SOH\DC2\DC4\n\
      \\ENQlabel\CAN\ACK \SOH(\tR\ENQlabel\DC2\ESC\n\
      \\tmin_confs\CAN\a \SOH(\ENQR\bminConfs\DC2+\n\
      \\DC1spend_unconfirmed\CAN\b \SOH(\bR\DLEspendUnconfirmed\SUB?\n\
      \\DC1AddrToAmountEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalue:\STX8\SOH"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addrToAmount__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "AddrToAmount"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor SendManyRequest'AddrToAmountEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"addrToAmount")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        targetConf__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "target_conf"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"targetConf")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        satPerVbyte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_vbyte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerVbyte")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        satPerByte__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "sat_per_byte"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"satPerByte")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        label__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "label"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"label")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        minConfs__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "min_confs"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"minConfs")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
        spendUnconfirmed__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "spend_unconfirmed"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"spendUnconfirmed")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addrToAmount__field_descriptor),
           (Data.ProtoLens.Tag 3, targetConf__field_descriptor),
           (Data.ProtoLens.Tag 4, satPerVbyte__field_descriptor),
           (Data.ProtoLens.Tag 5, satPerByte__field_descriptor),
           (Data.ProtoLens.Tag 6, label__field_descriptor),
           (Data.ProtoLens.Tag 7, minConfs__field_descriptor),
           (Data.ProtoLens.Tag 8, spendUnconfirmed__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendManyRequest'_unknownFields
        (\ x__ y__ -> x__ {_SendManyRequest'_unknownFields = y__})
  defMessage
    = SendManyRequest'_constructor
        {_SendManyRequest'addrToAmount = Data.Map.empty,
         _SendManyRequest'targetConf = Data.ProtoLens.fieldDefault,
         _SendManyRequest'satPerVbyte = Data.ProtoLens.fieldDefault,
         _SendManyRequest'satPerByte = Data.ProtoLens.fieldDefault,
         _SendManyRequest'label = Data.ProtoLens.fieldDefault,
         _SendManyRequest'minConfs = Data.ProtoLens.fieldDefault,
         _SendManyRequest'spendUnconfirmed = Data.ProtoLens.fieldDefault,
         _SendManyRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendManyRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser SendManyRequest
        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 :: SendManyRequest'AddrToAmountEntry) <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                                                                   (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                                                                       Data.ProtoLens.Encoding.Bytes.isolate
                                                                                         (Prelude.fromIntegral
                                                                                            len)
                                                                                         Data.ProtoLens.parseMessage)
                                                                                   "AddrToAmount"
                                (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 @"addrToAmount")
                                        (\ !t -> Data.Map.insert key value t)
                                        x))
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "target_conf"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"targetConf") y x)
                        32
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       Data.ProtoLens.Encoding.Bytes.getVarInt "sat_per_vbyte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerVbyte") y x)
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "sat_per_byte"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"satPerByte") 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))
                                       "label"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"label") y x)
                        56
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "min_confs"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"minConfs") y x)
                        64
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "spend_unconfirmed"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"spendUnconfirmed") 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) "SendManyRequest"
  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 ::
                                       SendManyRequest'AddrToAmountEntry)))))
                   (Data.Map.toList
                      (Lens.Family2.view
                         (Data.ProtoLens.Field.field @"addrToAmount") _x))))
             ((Data.Monoid.<>)
                (let
                   _v
                     = Lens.Family2.view (Data.ProtoLens.Field.field @"targetConf") _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 @"satPerVbyte") _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 @"satPerByte") _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 @"label") _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.Monoid.<>)
                            (let
                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @"minConfs") _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 @"spendUnconfirmed") _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
                                           (\ b -> if b then 1 else 0)
                                           _v))
                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
instance Control.DeepSeq.NFData SendManyRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendManyRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendManyRequest'addrToAmount x__)
                (Control.DeepSeq.deepseq
                   (_SendManyRequest'targetConf x__)
                   (Control.DeepSeq.deepseq
                      (_SendManyRequest'satPerVbyte x__)
                      (Control.DeepSeq.deepseq
                         (_SendManyRequest'satPerByte x__)
                         (Control.DeepSeq.deepseq
                            (_SendManyRequest'label x__)
                            (Control.DeepSeq.deepseq
                               (_SendManyRequest'minConfs x__)
                               (Control.DeepSeq.deepseq
                                  (_SendManyRequest'spendUnconfirmed x__) ())))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' SendManyRequest'AddrToAmountEntry Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' SendManyRequest'AddrToAmountEntry Data.Int.Int64@ -}
data SendManyRequest'AddrToAmountEntry
  = SendManyRequest'AddrToAmountEntry'_constructor {_SendManyRequest'AddrToAmountEntry'key :: !Data.Text.Text,
                                                    _SendManyRequest'AddrToAmountEntry'value :: !Data.Int.Int64,
                                                    _SendManyRequest'AddrToAmountEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendManyRequest'AddrToAmountEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendManyRequest'AddrToAmountEntry "key" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'AddrToAmountEntry'key
           (\ x__ y__ -> x__ {_SendManyRequest'AddrToAmountEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendManyRequest'AddrToAmountEntry "value" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyRequest'AddrToAmountEntry'value
           (\ x__ y__
              -> x__ {_SendManyRequest'AddrToAmountEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendManyRequest'AddrToAmountEntry where
  messageName _
    = Data.Text.pack "lnrpc.SendManyRequest.AddrToAmountEntry"
  packedMessageDescriptor _
    = "\n\
      \\DC1AddrToAmountEntry\DC2\DLE\n\
      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
      \\ENQvalue\CAN\STX \SOH(\ETXR\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 SendManyRequest'AddrToAmountEntry
        value__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "value"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"value")) ::
              Data.ProtoLens.FieldDescriptor SendManyRequest'AddrToAmountEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendManyRequest'AddrToAmountEntry'_unknownFields
        (\ x__ y__
           -> x__ {_SendManyRequest'AddrToAmountEntry'_unknownFields = y__})
  defMessage
    = SendManyRequest'AddrToAmountEntry'_constructor
        {_SendManyRequest'AddrToAmountEntry'key = Data.ProtoLens.fieldDefault,
         _SendManyRequest'AddrToAmountEntry'value = Data.ProtoLens.fieldDefault,
         _SendManyRequest'AddrToAmountEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendManyRequest'AddrToAmountEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser SendManyRequest'AddrToAmountEntry
        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)
                        16
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "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) "AddrToAmountEntry"
  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.<>)
                (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 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 SendManyRequest'AddrToAmountEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendManyRequest'AddrToAmountEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendManyRequest'AddrToAmountEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_SendManyRequest'AddrToAmountEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.txid' @:: Lens' SendManyResponse Data.Text.Text@ -}
data SendManyResponse
  = SendManyResponse'_constructor {_SendManyResponse'txid :: !Data.Text.Text,
                                   _SendManyResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendManyResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendManyResponse "txid" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendManyResponse'txid
           (\ x__ y__ -> x__ {_SendManyResponse'txid = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendManyResponse where
  messageName _ = Data.Text.pack "lnrpc.SendManyResponse"
  packedMessageDescriptor _
    = "\n\
      \\DLESendManyResponse\DC2\DC2\n\
      \\EOTtxid\CAN\SOH \SOH(\tR\EOTtxid"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        txid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "txid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txid")) ::
              Data.ProtoLens.FieldDescriptor SendManyResponse
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, txid__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendManyResponse'_unknownFields
        (\ x__ y__ -> x__ {_SendManyResponse'_unknownFields = y__})
  defMessage
    = SendManyResponse'_constructor
        {_SendManyResponse'txid = Data.ProtoLens.fieldDefault,
         _SendManyResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendManyResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser SendManyResponse
        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))
                                       "txid"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"txid") 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) "SendManyResponse"
  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)
                      ((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 SendManyResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendManyResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_SendManyResponse'txid x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.dest' @:: Lens' SendRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.destString' @:: Lens' SendRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.amt' @:: Lens' SendRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.amtMsat' @:: Lens' SendRequest Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.paymentHash' @:: Lens' SendRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.paymentHashString' @:: Lens' SendRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.paymentRequest' @:: Lens' SendRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.finalCltvDelta' @:: Lens' SendRequest Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.feeLimit' @:: Lens' SendRequest FeeLimit@
         * 'Proto.LndGrpc_Fields.maybe'feeLimit' @:: Lens' SendRequest (Prelude.Maybe FeeLimit)@
         * 'Proto.LndGrpc_Fields.outgoingChanId' @:: Lens' SendRequest Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.lastHopPubkey' @:: Lens' SendRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.cltvLimit' @:: Lens' SendRequest Data.Word.Word32@
         * 'Proto.LndGrpc_Fields.destCustomRecords' @:: Lens' SendRequest (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString)@
         * 'Proto.LndGrpc_Fields.allowSelfPayment' @:: Lens' SendRequest Prelude.Bool@
         * 'Proto.LndGrpc_Fields.destFeatures' @:: Lens' SendRequest [FeatureBit]@
         * 'Proto.LndGrpc_Fields.vec'destFeatures' @:: Lens' SendRequest (Data.Vector.Vector FeatureBit)@
         * 'Proto.LndGrpc_Fields.paymentAddr' @:: Lens' SendRequest Data.ByteString.ByteString@ -}
data SendRequest
  = SendRequest'_constructor {_SendRequest'dest :: !Data.ByteString.ByteString,
                              _SendRequest'destString :: !Data.Text.Text,
                              _SendRequest'amt :: !Data.Int.Int64,
                              _SendRequest'amtMsat :: !Data.Int.Int64,
                              _SendRequest'paymentHash :: !Data.ByteString.ByteString,
                              _SendRequest'paymentHashString :: !Data.Text.Text,
                              _SendRequest'paymentRequest :: !Data.Text.Text,
                              _SendRequest'finalCltvDelta :: !Data.Int.Int32,
                              _SendRequest'feeLimit :: !(Prelude.Maybe FeeLimit),
                              _SendRequest'outgoingChanId :: !Data.Word.Word64,
                              _SendRequest'lastHopPubkey :: !Data.ByteString.ByteString,
                              _SendRequest'cltvLimit :: !Data.Word.Word32,
                              _SendRequest'destCustomRecords :: !(Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString),
                              _SendRequest'allowSelfPayment :: !Prelude.Bool,
                              _SendRequest'destFeatures :: !(Data.Vector.Vector FeatureBit),
                              _SendRequest'paymentAddr :: !Data.ByteString.ByteString,
                              _SendRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendRequest "dest" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'dest (\ x__ y__ -> x__ {_SendRequest'dest = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "destString" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'destString
           (\ x__ y__ -> x__ {_SendRequest'destString = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "amt" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'amt (\ x__ y__ -> x__ {_SendRequest'amt = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "amtMsat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'amtMsat
           (\ x__ y__ -> x__ {_SendRequest'amtMsat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "paymentHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'paymentHash
           (\ x__ y__ -> x__ {_SendRequest'paymentHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "paymentHashString" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'paymentHashString
           (\ x__ y__ -> x__ {_SendRequest'paymentHashString = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "paymentRequest" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'paymentRequest
           (\ x__ y__ -> x__ {_SendRequest'paymentRequest = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "finalCltvDelta" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'finalCltvDelta
           (\ x__ y__ -> x__ {_SendRequest'finalCltvDelta = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "feeLimit" FeeLimit where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'feeLimit
           (\ x__ y__ -> x__ {_SendRequest'feeLimit = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField SendRequest "maybe'feeLimit" (Prelude.Maybe FeeLimit) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'feeLimit
           (\ x__ y__ -> x__ {_SendRequest'feeLimit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "outgoingChanId" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'outgoingChanId
           (\ x__ y__ -> x__ {_SendRequest'outgoingChanId = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "lastHopPubkey" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'lastHopPubkey
           (\ x__ y__ -> x__ {_SendRequest'lastHopPubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "cltvLimit" Data.Word.Word32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'cltvLimit
           (\ x__ y__ -> x__ {_SendRequest'cltvLimit = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "destCustomRecords" (Data.Map.Map Data.Word.Word64 Data.ByteString.ByteString) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'destCustomRecords
           (\ x__ y__ -> x__ {_SendRequest'destCustomRecords = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "allowSelfPayment" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'allowSelfPayment
           (\ x__ y__ -> x__ {_SendRequest'allowSelfPayment = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "destFeatures" [FeatureBit] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'destFeatures
           (\ x__ y__ -> x__ {_SendRequest'destFeatures = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField SendRequest "vec'destFeatures" (Data.Vector.Vector FeatureBit) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'destFeatures
           (\ x__ y__ -> x__ {_SendRequest'destFeatures = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest "paymentAddr" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'paymentAddr
           (\ x__ y__ -> x__ {_SendRequest'paymentAddr = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendRequest where
  messageName _ = Data.Text.pack "lnrpc.SendRequest"
  packedMessageDescriptor _
    = "\n\
      \\vSendRequest\DC2\DC2\n\
      \\EOTdest\CAN\SOH \SOH(\fR\EOTdest\DC2#\n\
      \\vdest_string\CAN\STX \SOH(\tR\n\
      \destStringB\STX\CAN\SOH\DC2\DLE\n\
      \\ETXamt\CAN\ETX \SOH(\ETXR\ETXamt\DC2\EM\n\
      \\bamt_msat\CAN\f \SOH(\ETXR\aamtMsat\DC2!\n\
      \\fpayment_hash\CAN\EOT \SOH(\fR\vpaymentHash\DC22\n\
      \\DC3payment_hash_string\CAN\ENQ \SOH(\tR\DC1paymentHashStringB\STX\CAN\SOH\DC2'\n\
      \\SIpayment_request\CAN\ACK \SOH(\tR\SOpaymentRequest\DC2(\n\
      \\DLEfinal_cltv_delta\CAN\a \SOH(\ENQR\SOfinalCltvDelta\DC2,\n\
      \\tfee_limit\CAN\b \SOH(\v2\SI.lnrpc.FeeLimitR\bfeeLimit\DC2,\n\
      \\DLEoutgoing_chan_id\CAN\t \SOH(\EOTR\SOoutgoingChanIdB\STX0\SOH\DC2&\n\
      \\SIlast_hop_pubkey\CAN\r \SOH(\fR\rlastHopPubkey\DC2\GS\n\
      \\n\
      \cltv_limit\CAN\n\
      \ \SOH(\rR\tcltvLimit\DC2Y\n\
      \\DC3dest_custom_records\CAN\v \ETX(\v2).lnrpc.SendRequest.DestCustomRecordsEntryR\DC1destCustomRecords\DC2,\n\
      \\DC2allow_self_payment\CAN\SO \SOH(\bR\DLEallowSelfPayment\DC26\n\
      \\rdest_features\CAN\SI \ETX(\SO2\DC1.lnrpc.FeatureBitR\fdestFeatures\DC2!\n\
      \\fpayment_addr\CAN\DLE \SOH(\fR\vpaymentAddr\SUBD\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
        dest__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"dest")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        destString__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest_string"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"destString")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        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 SendRequest
        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 SendRequest
        paymentHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHash")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        paymentHashString__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash_string"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHashString")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        paymentRequest__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_request"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentRequest")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        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 SendRequest
        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 SendRequest
        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 SendRequest
        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 SendRequest
        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 SendRequest
        destCustomRecords__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest_custom_records"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor SendRequest'DestCustomRecordsEntry)
              (Data.ProtoLens.MapField
                 (Data.ProtoLens.Field.field @"key")
                 (Data.ProtoLens.Field.field @"value")
                 (Data.ProtoLens.Field.field @"destCustomRecords")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        allowSelfPayment__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "allow_self_payment"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"allowSelfPayment")) ::
              Data.ProtoLens.FieldDescriptor SendRequest
        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 SendRequest
        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 SendRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, dest__field_descriptor),
           (Data.ProtoLens.Tag 2, destString__field_descriptor),
           (Data.ProtoLens.Tag 3, amt__field_descriptor),
           (Data.ProtoLens.Tag 12, amtMsat__field_descriptor),
           (Data.ProtoLens.Tag 4, paymentHash__field_descriptor),
           (Data.ProtoLens.Tag 5, paymentHashString__field_descriptor),
           (Data.ProtoLens.Tag 6, paymentRequest__field_descriptor),
           (Data.ProtoLens.Tag 7, finalCltvDelta__field_descriptor),
           (Data.ProtoLens.Tag 8, feeLimit__field_descriptor),
           (Data.ProtoLens.Tag 9, outgoingChanId__field_descriptor),
           (Data.ProtoLens.Tag 13, lastHopPubkey__field_descriptor),
           (Data.ProtoLens.Tag 10, cltvLimit__field_descriptor),
           (Data.ProtoLens.Tag 11, destCustomRecords__field_descriptor),
           (Data.ProtoLens.Tag 14, allowSelfPayment__field_descriptor),
           (Data.ProtoLens.Tag 15, destFeatures__field_descriptor),
           (Data.ProtoLens.Tag 16, paymentAddr__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendRequest'_unknownFields
        (\ x__ y__ -> x__ {_SendRequest'_unknownFields = y__})
  defMessage
    = SendRequest'_constructor
        {_SendRequest'dest = Data.ProtoLens.fieldDefault,
         _SendRequest'destString = Data.ProtoLens.fieldDefault,
         _SendRequest'amt = Data.ProtoLens.fieldDefault,
         _SendRequest'amtMsat = Data.ProtoLens.fieldDefault,
         _SendRequest'paymentHash = Data.ProtoLens.fieldDefault,
         _SendRequest'paymentHashString = Data.ProtoLens.fieldDefault,
         _SendRequest'paymentRequest = Data.ProtoLens.fieldDefault,
         _SendRequest'finalCltvDelta = Data.ProtoLens.fieldDefault,
         _SendRequest'feeLimit = Prelude.Nothing,
         _SendRequest'outgoingChanId = Data.ProtoLens.fieldDefault,
         _SendRequest'lastHopPubkey = Data.ProtoLens.fieldDefault,
         _SendRequest'cltvLimit = Data.ProtoLens.fieldDefault,
         _SendRequest'destCustomRecords = Data.Map.empty,
         _SendRequest'allowSelfPayment = Data.ProtoLens.fieldDefault,
         _SendRequest'destFeatures = Data.Vector.Generic.empty,
         _SendRequest'paymentAddr = Data.ProtoLens.fieldDefault,
         _SendRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendRequest
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FeatureBit
             -> Data.ProtoLens.Encoding.Bytes.Parser SendRequest
        loop x mutable'destFeatures
          = 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)
                      (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
                              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))
                                       "dest"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"dest") y x)
                                  mutable'destFeatures
                        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))
                                       "dest_string"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"destString") y x)
                                  mutable'destFeatures
                        24
                          -> 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
                        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
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "payment_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentHash") y x)
                                  mutable'destFeatures
                        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))
                                       "payment_hash_string"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentHashString") y x)
                                  mutable'destFeatures
                        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))
                                       "payment_request"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentRequest") y x)
                                  mutable'destFeatures
                        56
                          -> 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
                        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)
                                       "fee_limit"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"feeLimit") y x)
                                  mutable'destFeatures
                        72
                          -> 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
                        106
                          -> 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
                        80
                          -> 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
                        90
                          -> do !(entry :: SendRequest'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)
                        112
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "allow_self_payment"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"allowSelfPayment") y x)
                                  mutable'destFeatures
                        120
                          -> 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
                        122
                          -> 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
                        130
                          -> 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)
                                  mutable'destFeatures
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'destFeatures
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'destFeatures <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'destFeatures)
          "SendRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"dest") _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 @"destString") _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 @"amt") _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 @"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 @"paymentHash") _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 @"paymentHashString") _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 @"paymentRequest") _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.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 56)
                                           ((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 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.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 72)
                                                 (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 106)
                                                    ((\ 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 @"cltvLimit") _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.<>)
                                                 (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 ::
                                                                           SendRequest'DestCustomRecordsEntry)))))
                                                       (Data.Map.toList
                                                          (Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"destCustomRecords")
                                                             _x))))
                                                 ((Data.Monoid.<>)
                                                    (let
                                                       _v
                                                         = Lens.Family2.view
                                                             (Data.ProtoLens.Field.field
                                                                @"allowSelfPayment")
                                                             _x
                                                     in
                                                       if (Prelude.==)
                                                            _v Data.ProtoLens.fieldDefault then
                                                           Data.Monoid.mempty
                                                       else
                                                           (Data.Monoid.<>)
                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                112)
                                                             ((Prelude..)
                                                                Data.ProtoLens.Encoding.Bytes.putVarInt
                                                                (\ b -> if b then 1 else 0)
                                                                _v))
                                                    ((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
                                                                   122)
                                                                ((\ 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.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
                                                                      130)
                                                                   ((\ 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 SendRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendRequest'dest x__)
                (Control.DeepSeq.deepseq
                   (_SendRequest'destString x__)
                   (Control.DeepSeq.deepseq
                      (_SendRequest'amt x__)
                      (Control.DeepSeq.deepseq
                         (_SendRequest'amtMsat x__)
                         (Control.DeepSeq.deepseq
                            (_SendRequest'paymentHash x__)
                            (Control.DeepSeq.deepseq
                               (_SendRequest'paymentHashString x__)
                               (Control.DeepSeq.deepseq
                                  (_SendRequest'paymentRequest x__)
                                  (Control.DeepSeq.deepseq
                                     (_SendRequest'finalCltvDelta x__)
                                     (Control.DeepSeq.deepseq
                                        (_SendRequest'feeLimit x__)
                                        (Control.DeepSeq.deepseq
                                           (_SendRequest'outgoingChanId x__)
                                           (Control.DeepSeq.deepseq
                                              (_SendRequest'lastHopPubkey x__)
                                              (Control.DeepSeq.deepseq
                                                 (_SendRequest'cltvLimit x__)
                                                 (Control.DeepSeq.deepseq
                                                    (_SendRequest'destCustomRecords x__)
                                                    (Control.DeepSeq.deepseq
                                                       (_SendRequest'allowSelfPayment x__)
                                                       (Control.DeepSeq.deepseq
                                                          (_SendRequest'destFeatures x__)
                                                          (Control.DeepSeq.deepseq
                                                             (_SendRequest'paymentAddr x__)
                                                             ()))))))))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.key' @:: Lens' SendRequest'DestCustomRecordsEntry Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' SendRequest'DestCustomRecordsEntry Data.ByteString.ByteString@ -}
data SendRequest'DestCustomRecordsEntry
  = SendRequest'DestCustomRecordsEntry'_constructor {_SendRequest'DestCustomRecordsEntry'key :: !Data.Word.Word64,
                                                     _SendRequest'DestCustomRecordsEntry'value :: !Data.ByteString.ByteString,
                                                     _SendRequest'DestCustomRecordsEntry'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendRequest'DestCustomRecordsEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendRequest'DestCustomRecordsEntry "key" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'DestCustomRecordsEntry'key
           (\ x__ y__ -> x__ {_SendRequest'DestCustomRecordsEntry'key = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendRequest'DestCustomRecordsEntry "value" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendRequest'DestCustomRecordsEntry'value
           (\ x__ y__
              -> x__ {_SendRequest'DestCustomRecordsEntry'value = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendRequest'DestCustomRecordsEntry where
  messageName _
    = Data.Text.pack "lnrpc.SendRequest.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 SendRequest'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 SendRequest'DestCustomRecordsEntry
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, key__field_descriptor),
           (Data.ProtoLens.Tag 2, value__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendRequest'DestCustomRecordsEntry'_unknownFields
        (\ x__ y__
           -> x__ {_SendRequest'DestCustomRecordsEntry'_unknownFields = y__})
  defMessage
    = SendRequest'DestCustomRecordsEntry'_constructor
        {_SendRequest'DestCustomRecordsEntry'key = Data.ProtoLens.fieldDefault,
         _SendRequest'DestCustomRecordsEntry'value = Data.ProtoLens.fieldDefault,
         _SendRequest'DestCustomRecordsEntry'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendRequest'DestCustomRecordsEntry
          -> Data.ProtoLens.Encoding.Bytes.Parser SendRequest'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 SendRequest'DestCustomRecordsEntry where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendRequest'DestCustomRecordsEntry'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendRequest'DestCustomRecordsEntry'key x__)
                (Control.DeepSeq.deepseq
                   (_SendRequest'DestCustomRecordsEntry'value x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.paymentError' @:: Lens' SendResponse Data.Text.Text@
         * 'Proto.LndGrpc_Fields.paymentPreimage' @:: Lens' SendResponse Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.paymentRoute' @:: Lens' SendResponse Route@
         * 'Proto.LndGrpc_Fields.maybe'paymentRoute' @:: Lens' SendResponse (Prelude.Maybe Route)@
         * 'Proto.LndGrpc_Fields.paymentHash' @:: Lens' SendResponse Data.ByteString.ByteString@ -}
data SendResponse
  = SendResponse'_constructor {_SendResponse'paymentError :: !Data.Text.Text,
                               _SendResponse'paymentPreimage :: !Data.ByteString.ByteString,
                               _SendResponse'paymentRoute :: !(Prelude.Maybe Route),
                               _SendResponse'paymentHash :: !Data.ByteString.ByteString,
                               _SendResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendResponse "paymentError" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendResponse'paymentError
           (\ x__ y__ -> x__ {_SendResponse'paymentError = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendResponse "paymentPreimage" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendResponse'paymentPreimage
           (\ x__ y__ -> x__ {_SendResponse'paymentPreimage = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendResponse "paymentRoute" Route where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendResponse'paymentRoute
           (\ x__ y__ -> x__ {_SendResponse'paymentRoute = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField SendResponse "maybe'paymentRoute" (Prelude.Maybe Route) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendResponse'paymentRoute
           (\ x__ y__ -> x__ {_SendResponse'paymentRoute = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendResponse "paymentHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendResponse'paymentHash
           (\ x__ y__ -> x__ {_SendResponse'paymentHash = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendResponse where
  messageName _ = Data.Text.pack "lnrpc.SendResponse"
  packedMessageDescriptor _
    = "\n\
      \\fSendResponse\DC2#\n\
      \\rpayment_error\CAN\SOH \SOH(\tR\fpaymentError\DC2)\n\
      \\DLEpayment_preimage\CAN\STX \SOH(\fR\SIpaymentPreimage\DC21\n\
      \\rpayment_route\CAN\ETX \SOH(\v2\f.lnrpc.RouteR\fpaymentRoute\DC2!\n\
      \\fpayment_hash\CAN\EOT \SOH(\fR\vpaymentHash"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        paymentError__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_error"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentError")) ::
              Data.ProtoLens.FieldDescriptor SendResponse
        paymentPreimage__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_preimage"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentPreimage")) ::
              Data.ProtoLens.FieldDescriptor SendResponse
        paymentRoute__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_route"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Route)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'paymentRoute")) ::
              Data.ProtoLens.FieldDescriptor SendResponse
        paymentHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHash")) ::
              Data.ProtoLens.FieldDescriptor SendResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, paymentError__field_descriptor),
           (Data.ProtoLens.Tag 2, paymentPreimage__field_descriptor),
           (Data.ProtoLens.Tag 3, paymentRoute__field_descriptor),
           (Data.ProtoLens.Tag 4, paymentHash__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendResponse'_unknownFields
        (\ x__ y__ -> x__ {_SendResponse'_unknownFields = y__})
  defMessage
    = SendResponse'_constructor
        {_SendResponse'paymentError = Data.ProtoLens.fieldDefault,
         _SendResponse'paymentPreimage = Data.ProtoLens.fieldDefault,
         _SendResponse'paymentRoute = Prelude.Nothing,
         _SendResponse'paymentHash = Data.ProtoLens.fieldDefault,
         _SendResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendResponse -> Data.ProtoLens.Encoding.Bytes.Parser SendResponse
        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))
                                       "payment_error"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentError") y x)
                        18
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "payment_preimage"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentPreimage") 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)
                                       "payment_route"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentRoute") y x)
                        34
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
                                           Data.ProtoLens.Encoding.Bytes.getBytes
                                             (Prelude.fromIntegral len))
                                       "payment_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentHash") 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) "SendResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"paymentError") _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 @"paymentPreimage") _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.<>)
                   (case
                        Lens.Family2.view
                          (Data.ProtoLens.Field.field @"maybe'paymentRoute") _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 @"paymentHash") _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.ProtoLens.Encoding.Wire.buildFieldSet
                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
instance Control.DeepSeq.NFData SendResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendResponse'paymentError x__)
                (Control.DeepSeq.deepseq
                   (_SendResponse'paymentPreimage x__)
                   (Control.DeepSeq.deepseq
                      (_SendResponse'paymentRoute x__)
                      (Control.DeepSeq.deepseq (_SendResponse'paymentHash x__) ()))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.paymentHash' @:: Lens' SendToRouteRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.paymentHashString' @:: Lens' SendToRouteRequest Data.Text.Text@
         * 'Proto.LndGrpc_Fields.route' @:: Lens' SendToRouteRequest Route@
         * 'Proto.LndGrpc_Fields.maybe'route' @:: Lens' SendToRouteRequest (Prelude.Maybe Route)@ -}
data SendToRouteRequest
  = SendToRouteRequest'_constructor {_SendToRouteRequest'paymentHash :: !Data.ByteString.ByteString,
                                     _SendToRouteRequest'paymentHashString :: !Data.Text.Text,
                                     _SendToRouteRequest'route :: !(Prelude.Maybe Route),
                                     _SendToRouteRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SendToRouteRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SendToRouteRequest "paymentHash" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendToRouteRequest'paymentHash
           (\ x__ y__ -> x__ {_SendToRouteRequest'paymentHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendToRouteRequest "paymentHashString" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendToRouteRequest'paymentHashString
           (\ x__ y__ -> x__ {_SendToRouteRequest'paymentHashString = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField SendToRouteRequest "route" Route where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendToRouteRequest'route
           (\ x__ y__ -> x__ {_SendToRouteRequest'route = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField SendToRouteRequest "maybe'route" (Prelude.Maybe Route) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SendToRouteRequest'route
           (\ x__ y__ -> x__ {_SendToRouteRequest'route = y__}))
        Prelude.id
instance Data.ProtoLens.Message SendToRouteRequest where
  messageName _ = Data.Text.pack "lnrpc.SendToRouteRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2SendToRouteRequest\DC2!\n\
      \\fpayment_hash\CAN\SOH \SOH(\fR\vpaymentHash\DC22\n\
      \\DC3payment_hash_string\CAN\STX \SOH(\tR\DC1paymentHashStringB\STX\CAN\SOH\DC2\"\n\
      \\ENQroute\CAN\EOT \SOH(\v2\f.lnrpc.RouteR\ENQrouteJ\EOT\b\ETX\DLE\EOT"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        paymentHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHash")) ::
              Data.ProtoLens.FieldDescriptor SendToRouteRequest
        paymentHashString__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "payment_hash_string"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"paymentHashString")) ::
              Data.ProtoLens.FieldDescriptor SendToRouteRequest
        route__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "route"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Route)
              (Data.ProtoLens.OptionalField
                 (Data.ProtoLens.Field.field @"maybe'route")) ::
              Data.ProtoLens.FieldDescriptor SendToRouteRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, paymentHash__field_descriptor),
           (Data.ProtoLens.Tag 2, paymentHashString__field_descriptor),
           (Data.ProtoLens.Tag 4, route__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SendToRouteRequest'_unknownFields
        (\ x__ y__ -> x__ {_SendToRouteRequest'_unknownFields = y__})
  defMessage
    = SendToRouteRequest'_constructor
        {_SendToRouteRequest'paymentHash = Data.ProtoLens.fieldDefault,
         _SendToRouteRequest'paymentHashString = Data.ProtoLens.fieldDefault,
         _SendToRouteRequest'route = Prelude.Nothing,
         _SendToRouteRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SendToRouteRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser SendToRouteRequest
        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))
                                       "payment_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentHash") 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))
                                       "payment_hash_string"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"paymentHashString") 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)
                                       "route"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"route") 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) "SendToRouteRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"paymentHash") _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 @"paymentHashString") _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.<>)
                   (case
                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'route") _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 SendToRouteRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SendToRouteRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_SendToRouteRequest'paymentHash x__)
                (Control.DeepSeq.deepseq
                   (_SendToRouteRequest'paymentHashString x__)
                   (Control.DeepSeq.deepseq (_SendToRouteRequest'route x__) ())))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.msg' @:: Lens' SignMessageRequest Data.ByteString.ByteString@ -}
data SignMessageRequest
  = SignMessageRequest'_constructor {_SignMessageRequest'msg :: !Data.ByteString.ByteString,
                                     _SignMessageRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SignMessageRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SignMessageRequest "msg" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SignMessageRequest'msg
           (\ x__ y__ -> x__ {_SignMessageRequest'msg = y__}))
        Prelude.id
instance Data.ProtoLens.Message SignMessageRequest where
  messageName _ = Data.Text.pack "lnrpc.SignMessageRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC2SignMessageRequest\DC2\DLE\n\
      \\ETXmsg\CAN\SOH \SOH(\fR\ETXmsg"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        msg__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "msg"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"msg")) ::
              Data.ProtoLens.FieldDescriptor SignMessageRequest
      in
        Data.Map.fromList [(Data.ProtoLens.Tag 1, msg__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SignMessageRequest'_unknownFields
        (\ x__ y__ -> x__ {_SignMessageRequest'_unknownFields = y__})
  defMessage
    = SignMessageRequest'_constructor
        {_SignMessageRequest'msg = Data.ProtoLens.fieldDefault,
         _SignMessageRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SignMessageRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser SignMessageRequest
        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))
                                       "msg"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"msg") 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) "SignMessageRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"msg") _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 SignMessageRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SignMessageRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq (_SignMessageRequest'msg x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.signature' @:: Lens' SignMessageResponse Data.Text.Text@ -}
data SignMessageResponse
  = SignMessageResponse'_constructor {_SignMessageResponse'signature :: !Data.Text.Text,
                                      _SignMessageResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show SignMessageResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField SignMessageResponse "signature" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _SignMessageResponse'signature
           (\ x__ y__ -> x__ {_SignMessageResponse'signature = y__}))
        Prelude.id
instance Data.ProtoLens.Message SignMessageResponse where
  messageName _ = Data.Text.pack "lnrpc.SignMessageResponse"
  packedMessageDescriptor _
    = "\n\
      \\DC3SignMessageResponse\DC2\FS\n\
      \\tsignature\CAN\SOH \SOH(\tR\tsignature"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        signature__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "signature"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"signature")) ::
              Data.ProtoLens.FieldDescriptor SignMessageResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, signature__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _SignMessageResponse'_unknownFields
        (\ x__ y__ -> x__ {_SignMessageResponse'_unknownFields = y__})
  defMessage
    = SignMessageResponse'_constructor
        {_SignMessageResponse'signature = Data.ProtoLens.fieldDefault,
         _SignMessageResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          SignMessageResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser SignMessageResponse
        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))
                                       "signature"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"signature") 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) "SignMessageResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"signature") _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.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData SignMessageResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_SignMessageResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq (_SignMessageResponse'signature x__) ())
{- | Fields :
      -}
data StopRequest
  = StopRequest'_constructor {_StopRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show StopRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
instance Prelude.Show StopResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.timestamp' @:: Lens' TimestampedError Data.Word.Word64@
         * 'Proto.LndGrpc_Fields.error' @:: Lens' TimestampedError Data.Text.Text@ -}
data TimestampedError
  = TimestampedError'_constructor {_TimestampedError'timestamp :: !Data.Word.Word64,
                                   _TimestampedError'error :: !Data.Text.Text,
                                   _TimestampedError'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show TimestampedError where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField TimestampedError "timestamp" Data.Word.Word64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _TimestampedError'timestamp
           (\ x__ y__ -> x__ {_TimestampedError'timestamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField TimestampedError "error" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _TimestampedError'error
           (\ x__ y__ -> x__ {_TimestampedError'error = y__}))
        Prelude.id
instance Data.ProtoLens.Message TimestampedError where
  messageName _ = Data.Text.pack "lnrpc.TimestampedError"
  packedMessageDescriptor _
    = "\n\
      \\DLETimestampedError\DC2\FS\n\
      \\ttimestamp\CAN\SOH \SOH(\EOTR\ttimestamp\DC2\DC4\n\
      \\ENQerror\CAN\STX \SOH(\tR\ENQerror"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        timestamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "timestamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timestamp")) ::
              Data.ProtoLens.FieldDescriptor TimestampedError
        error__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "error"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"error")) ::
              Data.ProtoLens.FieldDescriptor TimestampedError
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, timestamp__field_descriptor),
           (Data.ProtoLens.Tag 2, error__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _TimestampedError'_unknownFields
        (\ x__ y__ -> x__ {_TimestampedError'_unknownFields = y__})
  defMessage
    = TimestampedError'_constructor
        {_TimestampedError'timestamp = Data.ProtoLens.fieldDefault,
         _TimestampedError'error = Data.ProtoLens.fieldDefault,
         _TimestampedError'_unknownFields = []}
  parseMessage
    = let
        loop ::
          TimestampedError
          -> Data.ProtoLens.Encoding.Bytes.Parser TimestampedError
        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 "timestamp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timestamp") 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))
                                       "error"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"error") 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) "TimestampedError"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"timestamp") _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 @"error") _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 TimestampedError where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_TimestampedError'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_TimestampedError'timestamp x__)
                (Control.DeepSeq.deepseq (_TimestampedError'error x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.txHash' @:: Lens' Transaction Data.Text.Text@
         * 'Proto.LndGrpc_Fields.amount' @:: Lens' Transaction Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.numConfirmations' @:: Lens' Transaction Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.blockHash' @:: Lens' Transaction Data.Text.Text@
         * 'Proto.LndGrpc_Fields.blockHeight' @:: Lens' Transaction Data.Int.Int32@
         * 'Proto.LndGrpc_Fields.timeStamp' @:: Lens' Transaction Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.totalFees' @:: Lens' Transaction Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.destAddresses' @:: Lens' Transaction [Data.Text.Text]@
         * 'Proto.LndGrpc_Fields.vec'destAddresses' @:: Lens' Transaction (Data.Vector.Vector Data.Text.Text)@
         * 'Proto.LndGrpc_Fields.rawTxHex' @:: Lens' Transaction Data.Text.Text@
         * 'Proto.LndGrpc_Fields.label' @:: Lens' Transaction Data.Text.Text@ -}
data Transaction
  = Transaction'_constructor {_Transaction'txHash :: !Data.Text.Text,
                              _Transaction'amount :: !Data.Int.Int64,
                              _Transaction'numConfirmations :: !Data.Int.Int32,
                              _Transaction'blockHash :: !Data.Text.Text,
                              _Transaction'blockHeight :: !Data.Int.Int32,
                              _Transaction'timeStamp :: !Data.Int.Int64,
                              _Transaction'totalFees :: !Data.Int.Int64,
                              _Transaction'destAddresses :: !(Data.Vector.Vector Data.Text.Text),
                              _Transaction'rawTxHex :: !Data.Text.Text,
                              _Transaction'label :: !Data.Text.Text,
                              _Transaction'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Transaction where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Transaction "txHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'txHash (\ x__ y__ -> x__ {_Transaction'txHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "amount" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'amount (\ x__ y__ -> x__ {_Transaction'amount = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "numConfirmations" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'numConfirmations
           (\ x__ y__ -> x__ {_Transaction'numConfirmations = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "blockHash" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'blockHash
           (\ x__ y__ -> x__ {_Transaction'blockHash = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "blockHeight" Data.Int.Int32 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'blockHeight
           (\ x__ y__ -> x__ {_Transaction'blockHeight = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "timeStamp" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'timeStamp
           (\ x__ y__ -> x__ {_Transaction'timeStamp = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "totalFees" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'totalFees
           (\ x__ y__ -> x__ {_Transaction'totalFees = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "destAddresses" [Data.Text.Text] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'destAddresses
           (\ x__ y__ -> x__ {_Transaction'destAddresses = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField Transaction "vec'destAddresses" (Data.Vector.Vector Data.Text.Text) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'destAddresses
           (\ x__ y__ -> x__ {_Transaction'destAddresses = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "rawTxHex" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'rawTxHex
           (\ x__ y__ -> x__ {_Transaction'rawTxHex = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Transaction "label" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Transaction'label (\ x__ y__ -> x__ {_Transaction'label = y__}))
        Prelude.id
instance Data.ProtoLens.Message Transaction where
  messageName _ = Data.Text.pack "lnrpc.Transaction"
  packedMessageDescriptor _
    = "\n\
      \\vTransaction\DC2\ETB\n\
      \\atx_hash\CAN\SOH \SOH(\tR\ACKtxHash\DC2\SYN\n\
      \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2+\n\
      \\DC1num_confirmations\CAN\ETX \SOH(\ENQR\DLEnumConfirmations\DC2\GS\n\
      \\n\
      \block_hash\CAN\EOT \SOH(\tR\tblockHash\DC2!\n\
      \\fblock_height\CAN\ENQ \SOH(\ENQR\vblockHeight\DC2\GS\n\
      \\n\
      \time_stamp\CAN\ACK \SOH(\ETXR\ttimeStamp\DC2\GS\n\
      \\n\
      \total_fees\CAN\a \SOH(\ETXR\ttotalFees\DC2%\n\
      \\SOdest_addresses\CAN\b \ETX(\tR\rdestAddresses\DC2\FS\n\
      \\n\
      \raw_tx_hex\CAN\t \SOH(\tR\brawTxHex\DC2\DC4\n\
      \\ENQlabel\CAN\n\
      \ \SOH(\tR\ENQlabel"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        txHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "tx_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txHash")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        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 Transaction
        numConfirmations__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "num_confirmations"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"numConfirmations")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        blockHash__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_hash"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockHash")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        blockHeight__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "block_height"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"blockHeight")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        timeStamp__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "time_stamp"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"timeStamp")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        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 Transaction
        destAddresses__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "dest_addresses"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"destAddresses")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        rawTxHex__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "raw_tx_hex"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"rawTxHex")) ::
              Data.ProtoLens.FieldDescriptor Transaction
        label__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "label"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"label")) ::
              Data.ProtoLens.FieldDescriptor Transaction
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, txHash__field_descriptor),
           (Data.ProtoLens.Tag 2, amount__field_descriptor),
           (Data.ProtoLens.Tag 3, numConfirmations__field_descriptor),
           (Data.ProtoLens.Tag 4, blockHash__field_descriptor),
           (Data.ProtoLens.Tag 5, blockHeight__field_descriptor),
           (Data.ProtoLens.Tag 6, timeStamp__field_descriptor),
           (Data.ProtoLens.Tag 7, totalFees__field_descriptor),
           (Data.ProtoLens.Tag 8, destAddresses__field_descriptor),
           (Data.ProtoLens.Tag 9, rawTxHex__field_descriptor),
           (Data.ProtoLens.Tag 10, label__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Transaction'_unknownFields
        (\ x__ y__ -> x__ {_Transaction'_unknownFields = y__})
  defMessage
    = Transaction'_constructor
        {_Transaction'txHash = Data.ProtoLens.fieldDefault,
         _Transaction'amount = Data.ProtoLens.fieldDefault,
         _Transaction'numConfirmations = Data.ProtoLens.fieldDefault,
         _Transaction'blockHash = Data.ProtoLens.fieldDefault,
         _Transaction'blockHeight = Data.ProtoLens.fieldDefault,
         _Transaction'timeStamp = Data.ProtoLens.fieldDefault,
         _Transaction'totalFees = Data.ProtoLens.fieldDefault,
         _Transaction'destAddresses = Data.Vector.Generic.empty,
         _Transaction'rawTxHex = Data.ProtoLens.fieldDefault,
         _Transaction'label = Data.ProtoLens.fieldDefault,
         _Transaction'_unknownFields = []}
  parseMessage
    = let
        loop ::
          Transaction
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
             -> Data.ProtoLens.Encoding.Bytes.Parser Transaction
        loop x mutable'destAddresses
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'destAddresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                   mutable'destAddresses)
                      (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'destAddresses")
                              frozen'destAddresses
                              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))
                                       "tx_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"txHash") y x)
                                  mutable'destAddresses
                        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)
                                  mutable'destAddresses
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "num_confirmations"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"numConfirmations") y x)
                                  mutable'destAddresses
                        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))
                                       "block_hash"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockHash") y x)
                                  mutable'destAddresses
                        40
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "block_height"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"blockHeight") y x)
                                  mutable'destAddresses
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "time_stamp"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"timeStamp") y x)
                                  mutable'destAddresses
                        56
                          -> 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'destAddresses
                        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))
                                        "dest_addresses"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'destAddresses y)
                                loop x v
                        74
                          -> 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))
                                       "raw_tx_hex"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rawTxHex") y x)
                                  mutable'destAddresses
                        82
                          -> 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))
                                       "label"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"label") y x)
                                  mutable'destAddresses
                        wire
                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
                                        wire
                                loop
                                  (Lens.Family2.over
                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
                                  mutable'destAddresses
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'destAddresses <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                         Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'destAddresses)
          "Transaction"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"txHash") _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 @"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 @"numConfirmations") _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 @"blockHash") _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 @"blockHeight") _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 @"timeStamp") _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 @"totalFees") _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.<>)
                                  (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.Text.Encoding.encodeUtf8
                                                _v))
                                     (Lens.Family2.view
                                        (Data.ProtoLens.Field.field @"vec'destAddresses") _x))
                                  ((Data.Monoid.<>)
                                     (let
                                        _v
                                          = Lens.Family2.view
                                              (Data.ProtoLens.Field.field @"rawTxHex") _x
                                      in
                                        if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                            Data.Monoid.mempty
                                        else
                                            (Data.Monoid.<>)
                                              (Data.ProtoLens.Encoding.Bytes.putVarInt 74)
                                              ((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 @"label") _x
                                         in
                                           if (Prelude.==) _v Data.ProtoLens.fieldDefault then
                                               Data.Monoid.mempty
                                           else
                                               (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.Text.Encoding.encodeUtf8
                                                    _v))
                                        (Data.ProtoLens.Encoding.Wire.buildFieldSet
                                           (Lens.Family2.view
                                              Data.ProtoLens.unknownFields _x)))))))))))
instance Control.DeepSeq.NFData Transaction where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Transaction'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Transaction'txHash x__)
                (Control.DeepSeq.deepseq
                   (_Transaction'amount x__)
                   (Control.DeepSeq.deepseq
                      (_Transaction'numConfirmations x__)
                      (Control.DeepSeq.deepseq
                         (_Transaction'blockHash x__)
                         (Control.DeepSeq.deepseq
                            (_Transaction'blockHeight x__)
                            (Control.DeepSeq.deepseq
                               (_Transaction'timeStamp x__)
                               (Control.DeepSeq.deepseq
                                  (_Transaction'totalFees x__)
                                  (Control.DeepSeq.deepseq
                                     (_Transaction'destAddresses x__)
                                     (Control.DeepSeq.deepseq
                                        (_Transaction'rawTxHex x__)
                                        (Control.DeepSeq.deepseq
                                           (_Transaction'label x__) ()))))))))))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.transactions' @:: Lens' TransactionDetails [Transaction]@
         * 'Proto.LndGrpc_Fields.vec'transactions' @:: Lens' TransactionDetails (Data.Vector.Vector Transaction)@ -}
data TransactionDetails
  = TransactionDetails'_constructor {_TransactionDetails'transactions :: !(Data.Vector.Vector Transaction),
                                     _TransactionDetails'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show TransactionDetails where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField TransactionDetails "transactions" [Transaction] where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _TransactionDetails'transactions
           (\ x__ y__ -> x__ {_TransactionDetails'transactions = y__}))
        (Lens.Family2.Unchecked.lens
           Data.Vector.Generic.toList
           (\ _ y__ -> Data.Vector.Generic.fromList y__))
instance Data.ProtoLens.Field.HasField TransactionDetails "vec'transactions" (Data.Vector.Vector Transaction) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _TransactionDetails'transactions
           (\ x__ y__ -> x__ {_TransactionDetails'transactions = y__}))
        Prelude.id
instance Data.ProtoLens.Message TransactionDetails where
  messageName _ = Data.Text.pack "lnrpc.TransactionDetails"
  packedMessageDescriptor _
    = "\n\
      \\DC2TransactionDetails\DC26\n\
      \\ftransactions\CAN\SOH \ETX(\v2\DC2.lnrpc.TransactionR\ftransactions"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        transactions__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "transactions"
              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
                 Data.ProtoLens.FieldTypeDescriptor Transaction)
              (Data.ProtoLens.RepeatedField
                 Data.ProtoLens.Unpacked
                 (Data.ProtoLens.Field.field @"transactions")) ::
              Data.ProtoLens.FieldDescriptor TransactionDetails
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, transactions__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _TransactionDetails'_unknownFields
        (\ x__ y__ -> x__ {_TransactionDetails'_unknownFields = y__})
  defMessage
    = TransactionDetails'_constructor
        {_TransactionDetails'transactions = Data.Vector.Generic.empty,
         _TransactionDetails'_unknownFields = []}
  parseMessage
    = let
        loop ::
          TransactionDetails
          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Transaction
             -> Data.ProtoLens.Encoding.Bytes.Parser TransactionDetails
        loop x mutable'transactions
          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
               if end then
                   do frozen'transactions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
                                                  mutable'transactions)
                      (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'transactions")
                              frozen'transactions
                              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)
                                        "transactions"
                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                       (Data.ProtoLens.Encoding.Growing.append
                                          mutable'transactions 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'transactions
      in
        (Data.ProtoLens.Encoding.Bytes.<?>)
          (do mutable'transactions <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
                                        Data.ProtoLens.Encoding.Growing.new
              loop Data.ProtoLens.defMessage mutable'transactions)
          "TransactionDetails"
  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'transactions") _x))
             (Data.ProtoLens.Encoding.Wire.buildFieldSet
                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
instance Control.DeepSeq.NFData TransactionDetails where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_TransactionDetails'_unknownFields x__)
             (Control.DeepSeq.deepseq (_TransactionDetails'transactions x__) ())
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.addressType' @:: Lens' Utxo AddressType@
         * 'Proto.LndGrpc_Fields.address' @:: Lens' Utxo Data.Text.Text@
         * 'Proto.LndGrpc_Fields.amountSat' @:: Lens' Utxo Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.pkScript' @:: Lens' Utxo Data.Text.Text@
         * 'Proto.LndGrpc_Fields.outpoint' @:: Lens' Utxo OutPoint@
         * 'Proto.LndGrpc_Fields.maybe'outpoint' @:: Lens' Utxo (Prelude.Maybe OutPoint)@
         * 'Proto.LndGrpc_Fields.confirmations' @:: Lens' Utxo Data.Int.Int64@ -}
data Utxo
  = Utxo'_constructor {_Utxo'addressType :: !AddressType,
                       _Utxo'address :: !Data.Text.Text,
                       _Utxo'amountSat :: !Data.Int.Int64,
                       _Utxo'pkScript :: !Data.Text.Text,
                       _Utxo'outpoint :: !(Prelude.Maybe OutPoint),
                       _Utxo'confirmations :: !Data.Int.Int64,
                       _Utxo'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show Utxo where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField Utxo "addressType" AddressType where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'addressType (\ x__ y__ -> x__ {_Utxo'addressType = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Utxo "address" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'address (\ x__ y__ -> x__ {_Utxo'address = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Utxo "amountSat" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'amountSat (\ x__ y__ -> x__ {_Utxo'amountSat = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Utxo "pkScript" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'pkScript (\ x__ y__ -> x__ {_Utxo'pkScript = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Utxo "outpoint" OutPoint where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'outpoint (\ x__ y__ -> x__ {_Utxo'outpoint = y__}))
        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
instance Data.ProtoLens.Field.HasField Utxo "maybe'outpoint" (Prelude.Maybe OutPoint) where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'outpoint (\ x__ y__ -> x__ {_Utxo'outpoint = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField Utxo "confirmations" Data.Int.Int64 where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _Utxo'confirmations (\ x__ y__ -> x__ {_Utxo'confirmations = y__}))
        Prelude.id
instance Data.ProtoLens.Message Utxo where
  messageName _ = Data.Text.pack "lnrpc.Utxo"
  packedMessageDescriptor _
    = "\n\
      \\EOTUtxo\DC25\n\
      \\faddress_type\CAN\SOH \SOH(\SO2\DC2.lnrpc.AddressTypeR\vaddressType\DC2\CAN\n\
      \\aaddress\CAN\STX \SOH(\tR\aaddress\DC2\GS\n\
      \\n\
      \amount_sat\CAN\ETX \SOH(\ETXR\tamountSat\DC2\ESC\n\
      \\tpk_script\CAN\EOT \SOH(\tR\bpkScript\DC2+\n\
      \\boutpoint\CAN\ENQ \SOH(\v2\SI.lnrpc.OutPointR\boutpoint\DC2$\n\
      \\rconfirmations\CAN\ACK \SOH(\ETXR\rconfirmations"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        addressType__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "address_type"
              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
                 Data.ProtoLens.FieldTypeDescriptor AddressType)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"addressType")) ::
              Data.ProtoLens.FieldDescriptor Utxo
        address__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "address"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"address")) ::
              Data.ProtoLens.FieldDescriptor Utxo
        amountSat__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "amount_sat"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"amountSat")) ::
              Data.ProtoLens.FieldDescriptor Utxo
        pkScript__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pk_script"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"pkScript")) ::
              Data.ProtoLens.FieldDescriptor Utxo
        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 Utxo
        confirmations__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "confirmations"
              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"confirmations")) ::
              Data.ProtoLens.FieldDescriptor Utxo
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, addressType__field_descriptor),
           (Data.ProtoLens.Tag 2, address__field_descriptor),
           (Data.ProtoLens.Tag 3, amountSat__field_descriptor),
           (Data.ProtoLens.Tag 4, pkScript__field_descriptor),
           (Data.ProtoLens.Tag 5, outpoint__field_descriptor),
           (Data.ProtoLens.Tag 6, confirmations__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _Utxo'_unknownFields
        (\ x__ y__ -> x__ {_Utxo'_unknownFields = y__})
  defMessage
    = Utxo'_constructor
        {_Utxo'addressType = Data.ProtoLens.fieldDefault,
         _Utxo'address = Data.ProtoLens.fieldDefault,
         _Utxo'amountSat = Data.ProtoLens.fieldDefault,
         _Utxo'pkScript = Data.ProtoLens.fieldDefault,
         _Utxo'outpoint = Prelude.Nothing,
         _Utxo'confirmations = Data.ProtoLens.fieldDefault,
         _Utxo'_unknownFields = []}
  parseMessage
    = let
        loop :: Utxo -> Data.ProtoLens.Encoding.Bytes.Parser Utxo
        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))
                                       "address_type"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"addressType") 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))
                                       "address"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"address") y x)
                        24
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "amount_sat"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"amountSat") 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))
                                       "pk_script"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pkScript") 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)
                                       "outpoint"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outpoint") y x)
                        48
                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
                                       (Prelude.fmap
                                          Prelude.fromIntegral
                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
                                       "confirmations"
                                loop
                                  (Lens.Family2.set
                                     (Data.ProtoLens.Field.field @"confirmations") 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) "Utxo"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v
                  = Lens.Family2.view (Data.ProtoLens.Field.field @"addressType") _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 @"address") _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 @"amountSat") _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 @"pkScript") _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.<>)
                         (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 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.<>)
                            (let
                               _v
                                 = Lens.Family2.view
                                     (Data.ProtoLens.Field.field @"confirmations") _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 Utxo where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_Utxo'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_Utxo'addressType x__)
                (Control.DeepSeq.deepseq
                   (_Utxo'address x__)
                   (Control.DeepSeq.deepseq
                      (_Utxo'amountSat x__)
                      (Control.DeepSeq.deepseq
                         (_Utxo'pkScript x__)
                         (Control.DeepSeq.deepseq
                            (_Utxo'outpoint x__)
                            (Control.DeepSeq.deepseq (_Utxo'confirmations x__) ()))))))
{- | Fields :
      -}
data VerifyChanBackupResponse
  = VerifyChanBackupResponse'_constructor {_VerifyChanBackupResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show VerifyChanBackupResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Message VerifyChanBackupResponse where
  messageName _ = Data.Text.pack "lnrpc.VerifyChanBackupResponse"
  packedMessageDescriptor _
    = "\n\
      \\CANVerifyChanBackupResponse"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag = let in Data.Map.fromList []
  unknownFields
    = Lens.Family2.Unchecked.lens
        _VerifyChanBackupResponse'_unknownFields
        (\ x__ y__ -> x__ {_VerifyChanBackupResponse'_unknownFields = y__})
  defMessage
    = VerifyChanBackupResponse'_constructor
        {_VerifyChanBackupResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          VerifyChanBackupResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser VerifyChanBackupResponse
        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) "VerifyChanBackupResponse"
  buildMessage
    = \ _x
        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
instance Control.DeepSeq.NFData VerifyChanBackupResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_VerifyChanBackupResponse'_unknownFields x__) ()
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.msg' @:: Lens' VerifyMessageRequest Data.ByteString.ByteString@
         * 'Proto.LndGrpc_Fields.signature' @:: Lens' VerifyMessageRequest Data.Text.Text@ -}
data VerifyMessageRequest
  = VerifyMessageRequest'_constructor {_VerifyMessageRequest'msg :: !Data.ByteString.ByteString,
                                       _VerifyMessageRequest'signature :: !Data.Text.Text,
                                       _VerifyMessageRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show VerifyMessageRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField VerifyMessageRequest "msg" Data.ByteString.ByteString where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _VerifyMessageRequest'msg
           (\ x__ y__ -> x__ {_VerifyMessageRequest'msg = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField VerifyMessageRequest "signature" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _VerifyMessageRequest'signature
           (\ x__ y__ -> x__ {_VerifyMessageRequest'signature = y__}))
        Prelude.id
instance Data.ProtoLens.Message VerifyMessageRequest where
  messageName _ = Data.Text.pack "lnrpc.VerifyMessageRequest"
  packedMessageDescriptor _
    = "\n\
      \\DC4VerifyMessageRequest\DC2\DLE\n\
      \\ETXmsg\CAN\SOH \SOH(\fR\ETXmsg\DC2\FS\n\
      \\tsignature\CAN\STX \SOH(\tR\tsignature"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        msg__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "msg"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"msg")) ::
              Data.ProtoLens.FieldDescriptor VerifyMessageRequest
        signature__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "signature"
              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional
                 (Data.ProtoLens.Field.field @"signature")) ::
              Data.ProtoLens.FieldDescriptor VerifyMessageRequest
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, msg__field_descriptor),
           (Data.ProtoLens.Tag 2, signature__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _VerifyMessageRequest'_unknownFields
        (\ x__ y__ -> x__ {_VerifyMessageRequest'_unknownFields = y__})
  defMessage
    = VerifyMessageRequest'_constructor
        {_VerifyMessageRequest'msg = Data.ProtoLens.fieldDefault,
         _VerifyMessageRequest'signature = Data.ProtoLens.fieldDefault,
         _VerifyMessageRequest'_unknownFields = []}
  parseMessage
    = let
        loop ::
          VerifyMessageRequest
          -> Data.ProtoLens.Encoding.Bytes.Parser VerifyMessageRequest
        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))
                                       "msg"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"msg") 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))
                                       "signature"
                                loop
                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"signature") 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) "VerifyMessageRequest"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"msg") _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 @"signature") _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 VerifyMessageRequest where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_VerifyMessageRequest'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_VerifyMessageRequest'msg x__)
                (Control.DeepSeq.deepseq (_VerifyMessageRequest'signature x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.valid' @:: Lens' VerifyMessageResponse Prelude.Bool@
         * 'Proto.LndGrpc_Fields.pubkey' @:: Lens' VerifyMessageResponse Data.Text.Text@ -}
data VerifyMessageResponse
  = VerifyMessageResponse'_constructor {_VerifyMessageResponse'valid :: !Prelude.Bool,
                                        _VerifyMessageResponse'pubkey :: !Data.Text.Text,
                                        _VerifyMessageResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
  deriving stock (Prelude.Eq, Prelude.Ord)
instance Prelude.Show VerifyMessageResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
instance Data.ProtoLens.Field.HasField VerifyMessageResponse "valid" Prelude.Bool where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _VerifyMessageResponse'valid
           (\ x__ y__ -> x__ {_VerifyMessageResponse'valid = y__}))
        Prelude.id
instance Data.ProtoLens.Field.HasField VerifyMessageResponse "pubkey" Data.Text.Text where
  fieldOf _
    = (Prelude..)
        (Lens.Family2.Unchecked.lens
           _VerifyMessageResponse'pubkey
           (\ x__ y__ -> x__ {_VerifyMessageResponse'pubkey = y__}))
        Prelude.id
instance Data.ProtoLens.Message VerifyMessageResponse where
  messageName _ = Data.Text.pack "lnrpc.VerifyMessageResponse"
  packedMessageDescriptor _
    = "\n\
      \\NAKVerifyMessageResponse\DC2\DC4\n\
      \\ENQvalid\CAN\SOH \SOH(\bR\ENQvalid\DC2\SYN\n\
      \\ACKpubkey\CAN\STX \SOH(\tR\ACKpubkey"
  packedFileDescriptor _ = packedFileDescriptor
  fieldsByTag
    = let
        valid__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "valid"
              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
              (Data.ProtoLens.PlainField
                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"valid")) ::
              Data.ProtoLens.FieldDescriptor VerifyMessageResponse
        pubkey__field_descriptor
          = Data.ProtoLens.FieldDescriptor
              "pubkey"
              (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 VerifyMessageResponse
      in
        Data.Map.fromList
          [(Data.ProtoLens.Tag 1, valid__field_descriptor),
           (Data.ProtoLens.Tag 2, pubkey__field_descriptor)]
  unknownFields
    = Lens.Family2.Unchecked.lens
        _VerifyMessageResponse'_unknownFields
        (\ x__ y__ -> x__ {_VerifyMessageResponse'_unknownFields = y__})
  defMessage
    = VerifyMessageResponse'_constructor
        {_VerifyMessageResponse'valid = Data.ProtoLens.fieldDefault,
         _VerifyMessageResponse'pubkey = Data.ProtoLens.fieldDefault,
         _VerifyMessageResponse'_unknownFields = []}
  parseMessage
    = let
        loop ::
          VerifyMessageResponse
          -> Data.ProtoLens.Encoding.Bytes.Parser VerifyMessageResponse
        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)
                                       "valid"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"valid") 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))
                                       "pubkey"
                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"pubkey") 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) "VerifyMessageResponse"
  buildMessage
    = \ _x
        -> (Data.Monoid.<>)
             (let
                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"valid") _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 @"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.ProtoLens.Encoding.Wire.buildFieldSet
                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
instance Control.DeepSeq.NFData VerifyMessageResponse where
  rnf
    = \ x__
        -> Control.DeepSeq.deepseq
             (_VerifyMessageResponse'_unknownFields x__)
             (Control.DeepSeq.deepseq
                (_VerifyMessageResponse'valid x__)
                (Control.DeepSeq.deepseq (_VerifyMessageResponse'pubkey x__) ()))
{- | Fields :
     
         * 'Proto.LndGrpc_Fields.confirmedBalance' @:: Lens' WalletAccountBalance Data.Int.Int64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show WalletAccountBalance where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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)
instance Prelude.Show WalletBalanceRequest where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.totalBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.confirmedBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.LndGrpc_Fields.unconfirmedBalance' @:: Lens' WalletBalanceResponse Data.Int.Int64@
         * 'Proto.LndGrpc_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)
instance Prelude.Show WalletBalanceResponse where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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.LndGrpc_Fields.key' @:: Lens' WalletBalanceResponse'AccountBalanceEntry Data.Text.Text@
         * 'Proto.LndGrpc_Fields.value' @:: Lens' WalletBalanceResponse'AccountBalanceEntry WalletAccountBalance@
         * 'Proto.LndGrpc_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)
instance Prelude.Show WalletBalanceResponse'AccountBalanceEntry where
  showsPrec _ __x __s
    = Prelude.showChar
        '{'
        (Prelude.showString
           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
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__) ()))
data Lightning = Lightning {}
instance Data.ProtoLens.Service.Types.Service Lightning where
  type ServiceName Lightning = "Lightning"
  type ServicePackage Lightning = "lnrpc"
  type ServiceMethods Lightning = '["abandonChannel",
                                    "addInvoice",
                                    "bakeMacaroon",
                                    "channelAcceptor",
                                    "channelBalance",
                                    "closeChannel",
                                    "closedChannels",
                                    "connectPeer",
                                    "debugLevel",
                                    "decodePayReq",
                                    "deleteAllPayments",
                                    "deleteMacaroonID",
                                    "describeGraph",
                                    "disconnectPeer",
                                    "estimateFee",
                                    "exportAllChannelBackups",
                                    "exportChannelBackup",
                                    "feeReport",
                                    "forwardingHistory",
                                    "fundingStateStep",
                                    "getChanInfo",
                                    "getInfo",
                                    "getNetworkInfo",
                                    "getNodeInfo",
                                    "getNodeMetrics",
                                    "getRecoveryInfo",
                                    "getTransactions",
                                    "listChannels",
                                    "listInvoices",
                                    "listMacaroonIDs",
                                    "listPayments",
                                    "listPeers",
                                    "listPermissions",
                                    "listUnspent",
                                    "lookupInvoice",
                                    "newAddress",
                                    "openChannel",
                                    "openChannelSync",
                                    "pendingChannels",
                                    "queryRoutes",
                                    "restoreChannelBackups",
                                    "sendCoins",
                                    "sendMany",
                                    "sendPayment",
                                    "sendPaymentSync",
                                    "sendToRoute",
                                    "sendToRouteSync",
                                    "signMessage",
                                    "stopDaemon",
                                    "subscribeChannelBackups",
                                    "subscribeChannelEvents",
                                    "subscribeChannelGraph",
                                    "subscribeInvoices",
                                    "subscribePeerEvents",
                                    "subscribeTransactions",
                                    "updateChannelPolicy",
                                    "verifyChanBackup",
                                    "verifyMessage",
                                    "walletBalance"]
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "walletBalance" where
  type MethodName Lightning "walletBalance" = "WalletBalance"
  type MethodInput Lightning "walletBalance" = WalletBalanceRequest
  type MethodOutput Lightning "walletBalance" = WalletBalanceResponse
  type MethodStreamingType Lightning "walletBalance" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "channelBalance" where
  type MethodName Lightning "channelBalance" = "ChannelBalance"
  type MethodInput Lightning "channelBalance" = ChannelBalanceRequest
  type MethodOutput Lightning "channelBalance" = ChannelBalanceResponse
  type MethodStreamingType Lightning "channelBalance" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getTransactions" where
  type MethodName Lightning "getTransactions" = "GetTransactions"
  type MethodInput Lightning "getTransactions" = GetTransactionsRequest
  type MethodOutput Lightning "getTransactions" = TransactionDetails
  type MethodStreamingType Lightning "getTransactions" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "estimateFee" where
  type MethodName Lightning "estimateFee" = "EstimateFee"
  type MethodInput Lightning "estimateFee" = EstimateFeeRequest
  type MethodOutput Lightning "estimateFee" = EstimateFeeResponse
  type MethodStreamingType Lightning "estimateFee" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendCoins" where
  type MethodName Lightning "sendCoins" = "SendCoins"
  type MethodInput Lightning "sendCoins" = SendCoinsRequest
  type MethodOutput Lightning "sendCoins" = SendCoinsResponse
  type MethodStreamingType Lightning "sendCoins" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listUnspent" where
  type MethodName Lightning "listUnspent" = "ListUnspent"
  type MethodInput Lightning "listUnspent" = ListUnspentRequest
  type MethodOutput Lightning "listUnspent" = ListUnspentResponse
  type MethodStreamingType Lightning "listUnspent" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribeTransactions" where
  type MethodName Lightning "subscribeTransactions" = "SubscribeTransactions"
  type MethodInput Lightning "subscribeTransactions" = GetTransactionsRequest
  type MethodOutput Lightning "subscribeTransactions" = Transaction
  type MethodStreamingType Lightning "subscribeTransactions" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendMany" where
  type MethodName Lightning "sendMany" = "SendMany"
  type MethodInput Lightning "sendMany" = SendManyRequest
  type MethodOutput Lightning "sendMany" = SendManyResponse
  type MethodStreamingType Lightning "sendMany" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "newAddress" where
  type MethodName Lightning "newAddress" = "NewAddress"
  type MethodInput Lightning "newAddress" = NewAddressRequest
  type MethodOutput Lightning "newAddress" = NewAddressResponse
  type MethodStreamingType Lightning "newAddress" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "signMessage" where
  type MethodName Lightning "signMessage" = "SignMessage"
  type MethodInput Lightning "signMessage" = SignMessageRequest
  type MethodOutput Lightning "signMessage" = SignMessageResponse
  type MethodStreamingType Lightning "signMessage" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "verifyMessage" where
  type MethodName Lightning "verifyMessage" = "VerifyMessage"
  type MethodInput Lightning "verifyMessage" = VerifyMessageRequest
  type MethodOutput Lightning "verifyMessage" = VerifyMessageResponse
  type MethodStreamingType Lightning "verifyMessage" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "connectPeer" where
  type MethodName Lightning "connectPeer" = "ConnectPeer"
  type MethodInput Lightning "connectPeer" = ConnectPeerRequest
  type MethodOutput Lightning "connectPeer" = ConnectPeerResponse
  type MethodStreamingType Lightning "connectPeer" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "disconnectPeer" where
  type MethodName Lightning "disconnectPeer" = "DisconnectPeer"
  type MethodInput Lightning "disconnectPeer" = DisconnectPeerRequest
  type MethodOutput Lightning "disconnectPeer" = DisconnectPeerResponse
  type MethodStreamingType Lightning "disconnectPeer" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listPeers" where
  type MethodName Lightning "listPeers" = "ListPeers"
  type MethodInput Lightning "listPeers" = ListPeersRequest
  type MethodOutput Lightning "listPeers" = ListPeersResponse
  type MethodStreamingType Lightning "listPeers" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribePeerEvents" where
  type MethodName Lightning "subscribePeerEvents" = "SubscribePeerEvents"
  type MethodInput Lightning "subscribePeerEvents" = PeerEventSubscription
  type MethodOutput Lightning "subscribePeerEvents" = PeerEvent
  type MethodStreamingType Lightning "subscribePeerEvents" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getInfo" where
  type MethodName Lightning "getInfo" = "GetInfo"
  type MethodInput Lightning "getInfo" = GetInfoRequest
  type MethodOutput Lightning "getInfo" = GetInfoResponse
  type MethodStreamingType Lightning "getInfo" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getRecoveryInfo" where
  type MethodName Lightning "getRecoveryInfo" = "GetRecoveryInfo"
  type MethodInput Lightning "getRecoveryInfo" = GetRecoveryInfoRequest
  type MethodOutput Lightning "getRecoveryInfo" = GetRecoveryInfoResponse
  type MethodStreamingType Lightning "getRecoveryInfo" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "pendingChannels" where
  type MethodName Lightning "pendingChannels" = "PendingChannels"
  type MethodInput Lightning "pendingChannels" = PendingChannelsRequest
  type MethodOutput Lightning "pendingChannels" = PendingChannelsResponse
  type MethodStreamingType Lightning "pendingChannels" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listChannels" where
  type MethodName Lightning "listChannels" = "ListChannels"
  type MethodInput Lightning "listChannels" = ListChannelsRequest
  type MethodOutput Lightning "listChannels" = ListChannelsResponse
  type MethodStreamingType Lightning "listChannels" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribeChannelEvents" where
  type MethodName Lightning "subscribeChannelEvents" = "SubscribeChannelEvents"
  type MethodInput Lightning "subscribeChannelEvents" = ChannelEventSubscription
  type MethodOutput Lightning "subscribeChannelEvents" = ChannelEventUpdate
  type MethodStreamingType Lightning "subscribeChannelEvents" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "closedChannels" where
  type MethodName Lightning "closedChannels" = "ClosedChannels"
  type MethodInput Lightning "closedChannels" = ClosedChannelsRequest
  type MethodOutput Lightning "closedChannels" = ClosedChannelsResponse
  type MethodStreamingType Lightning "closedChannels" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "openChannelSync" where
  type MethodName Lightning "openChannelSync" = "OpenChannelSync"
  type MethodInput Lightning "openChannelSync" = OpenChannelRequest
  type MethodOutput Lightning "openChannelSync" = ChannelPoint
  type MethodStreamingType Lightning "openChannelSync" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "openChannel" where
  type MethodName Lightning "openChannel" = "OpenChannel"
  type MethodInput Lightning "openChannel" = OpenChannelRequest
  type MethodOutput Lightning "openChannel" = OpenStatusUpdate
  type MethodStreamingType Lightning "openChannel" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "fundingStateStep" where
  type MethodName Lightning "fundingStateStep" = "FundingStateStep"
  type MethodInput Lightning "fundingStateStep" = FundingTransitionMsg
  type MethodOutput Lightning "fundingStateStep" = FundingStateStepResp
  type MethodStreamingType Lightning "fundingStateStep" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "channelAcceptor" where
  type MethodName Lightning "channelAcceptor" = "ChannelAcceptor"
  type MethodInput Lightning "channelAcceptor" = ChannelAcceptResponse
  type MethodOutput Lightning "channelAcceptor" = ChannelAcceptRequest
  type MethodStreamingType Lightning "channelAcceptor" =  'Data.ProtoLens.Service.Types.BiDiStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "closeChannel" where
  type MethodName Lightning "closeChannel" = "CloseChannel"
  type MethodInput Lightning "closeChannel" = CloseChannelRequest
  type MethodOutput Lightning "closeChannel" = CloseStatusUpdate
  type MethodStreamingType Lightning "closeChannel" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "abandonChannel" where
  type MethodName Lightning "abandonChannel" = "AbandonChannel"
  type MethodInput Lightning "abandonChannel" = AbandonChannelRequest
  type MethodOutput Lightning "abandonChannel" = AbandonChannelResponse
  type MethodStreamingType Lightning "abandonChannel" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendPayment" where
  type MethodName Lightning "sendPayment" = "SendPayment"
  type MethodInput Lightning "sendPayment" = SendRequest
  type MethodOutput Lightning "sendPayment" = SendResponse
  type MethodStreamingType Lightning "sendPayment" =  'Data.ProtoLens.Service.Types.BiDiStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendPaymentSync" where
  type MethodName Lightning "sendPaymentSync" = "SendPaymentSync"
  type MethodInput Lightning "sendPaymentSync" = SendRequest
  type MethodOutput Lightning "sendPaymentSync" = SendResponse
  type MethodStreamingType Lightning "sendPaymentSync" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendToRoute" where
  type MethodName Lightning "sendToRoute" = "SendToRoute"
  type MethodInput Lightning "sendToRoute" = SendToRouteRequest
  type MethodOutput Lightning "sendToRoute" = SendResponse
  type MethodStreamingType Lightning "sendToRoute" =  'Data.ProtoLens.Service.Types.BiDiStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "sendToRouteSync" where
  type MethodName Lightning "sendToRouteSync" = "SendToRouteSync"
  type MethodInput Lightning "sendToRouteSync" = SendToRouteRequest
  type MethodOutput Lightning "sendToRouteSync" = SendResponse
  type MethodStreamingType Lightning "sendToRouteSync" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "addInvoice" where
  type MethodName Lightning "addInvoice" = "AddInvoice"
  type MethodInput Lightning "addInvoice" = Invoice
  type MethodOutput Lightning "addInvoice" = AddInvoiceResponse
  type MethodStreamingType Lightning "addInvoice" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listInvoices" where
  type MethodName Lightning "listInvoices" = "ListInvoices"
  type MethodInput Lightning "listInvoices" = ListInvoiceRequest
  type MethodOutput Lightning "listInvoices" = ListInvoiceResponse
  type MethodStreamingType Lightning "listInvoices" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "lookupInvoice" where
  type MethodName Lightning "lookupInvoice" = "LookupInvoice"
  type MethodInput Lightning "lookupInvoice" = PaymentHash
  type MethodOutput Lightning "lookupInvoice" = Invoice
  type MethodStreamingType Lightning "lookupInvoice" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribeInvoices" where
  type MethodName Lightning "subscribeInvoices" = "SubscribeInvoices"
  type MethodInput Lightning "subscribeInvoices" = InvoiceSubscription
  type MethodOutput Lightning "subscribeInvoices" = Invoice
  type MethodStreamingType Lightning "subscribeInvoices" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "decodePayReq" where
  type MethodName Lightning "decodePayReq" = "DecodePayReq"
  type MethodInput Lightning "decodePayReq" = PayReqString
  type MethodOutput Lightning "decodePayReq" = PayReq
  type MethodStreamingType Lightning "decodePayReq" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listPayments" where
  type MethodName Lightning "listPayments" = "ListPayments"
  type MethodInput Lightning "listPayments" = ListPaymentsRequest
  type MethodOutput Lightning "listPayments" = ListPaymentsResponse
  type MethodStreamingType Lightning "listPayments" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "deleteAllPayments" where
  type MethodName Lightning "deleteAllPayments" = "DeleteAllPayments"
  type MethodInput Lightning "deleteAllPayments" = DeleteAllPaymentsRequest
  type MethodOutput Lightning "deleteAllPayments" = DeleteAllPaymentsResponse
  type MethodStreamingType Lightning "deleteAllPayments" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "describeGraph" where
  type MethodName Lightning "describeGraph" = "DescribeGraph"
  type MethodInput Lightning "describeGraph" = ChannelGraphRequest
  type MethodOutput Lightning "describeGraph" = ChannelGraph
  type MethodStreamingType Lightning "describeGraph" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getNodeMetrics" where
  type MethodName Lightning "getNodeMetrics" = "GetNodeMetrics"
  type MethodInput Lightning "getNodeMetrics" = NodeMetricsRequest
  type MethodOutput Lightning "getNodeMetrics" = NodeMetricsResponse
  type MethodStreamingType Lightning "getNodeMetrics" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getChanInfo" where
  type MethodName Lightning "getChanInfo" = "GetChanInfo"
  type MethodInput Lightning "getChanInfo" = ChanInfoRequest
  type MethodOutput Lightning "getChanInfo" = ChannelEdge
  type MethodStreamingType Lightning "getChanInfo" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getNodeInfo" where
  type MethodName Lightning "getNodeInfo" = "GetNodeInfo"
  type MethodInput Lightning "getNodeInfo" = NodeInfoRequest
  type MethodOutput Lightning "getNodeInfo" = NodeInfo
  type MethodStreamingType Lightning "getNodeInfo" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "queryRoutes" where
  type MethodName Lightning "queryRoutes" = "QueryRoutes"
  type MethodInput Lightning "queryRoutes" = QueryRoutesRequest
  type MethodOutput Lightning "queryRoutes" = QueryRoutesResponse
  type MethodStreamingType Lightning "queryRoutes" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "getNetworkInfo" where
  type MethodName Lightning "getNetworkInfo" = "GetNetworkInfo"
  type MethodInput Lightning "getNetworkInfo" = NetworkInfoRequest
  type MethodOutput Lightning "getNetworkInfo" = NetworkInfo
  type MethodStreamingType Lightning "getNetworkInfo" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "stopDaemon" where
  type MethodName Lightning "stopDaemon" = "StopDaemon"
  type MethodInput Lightning "stopDaemon" = StopRequest
  type MethodOutput Lightning "stopDaemon" = StopResponse
  type MethodStreamingType Lightning "stopDaemon" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribeChannelGraph" where
  type MethodName Lightning "subscribeChannelGraph" = "SubscribeChannelGraph"
  type MethodInput Lightning "subscribeChannelGraph" = GraphTopologySubscription
  type MethodOutput Lightning "subscribeChannelGraph" = GraphTopologyUpdate
  type MethodStreamingType Lightning "subscribeChannelGraph" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "debugLevel" where
  type MethodName Lightning "debugLevel" = "DebugLevel"
  type MethodInput Lightning "debugLevel" = DebugLevelRequest
  type MethodOutput Lightning "debugLevel" = DebugLevelResponse
  type MethodStreamingType Lightning "debugLevel" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "feeReport" where
  type MethodName Lightning "feeReport" = "FeeReport"
  type MethodInput Lightning "feeReport" = FeeReportRequest
  type MethodOutput Lightning "feeReport" = FeeReportResponse
  type MethodStreamingType Lightning "feeReport" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "updateChannelPolicy" where
  type MethodName Lightning "updateChannelPolicy" = "UpdateChannelPolicy"
  type MethodInput Lightning "updateChannelPolicy" = PolicyUpdateRequest
  type MethodOutput Lightning "updateChannelPolicy" = PolicyUpdateResponse
  type MethodStreamingType Lightning "updateChannelPolicy" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "forwardingHistory" where
  type MethodName Lightning "forwardingHistory" = "ForwardingHistory"
  type MethodInput Lightning "forwardingHistory" = ForwardingHistoryRequest
  type MethodOutput Lightning "forwardingHistory" = ForwardingHistoryResponse
  type MethodStreamingType Lightning "forwardingHistory" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "exportChannelBackup" where
  type MethodName Lightning "exportChannelBackup" = "ExportChannelBackup"
  type MethodInput Lightning "exportChannelBackup" = ExportChannelBackupRequest
  type MethodOutput Lightning "exportChannelBackup" = ChannelBackup
  type MethodStreamingType Lightning "exportChannelBackup" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "exportAllChannelBackups" where
  type MethodName Lightning "exportAllChannelBackups" = "ExportAllChannelBackups"
  type MethodInput Lightning "exportAllChannelBackups" = ChanBackupExportRequest
  type MethodOutput Lightning "exportAllChannelBackups" = ChanBackupSnapshot
  type MethodStreamingType Lightning "exportAllChannelBackups" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "verifyChanBackup" where
  type MethodName Lightning "verifyChanBackup" = "VerifyChanBackup"
  type MethodInput Lightning "verifyChanBackup" = ChanBackupSnapshot
  type MethodOutput Lightning "verifyChanBackup" = VerifyChanBackupResponse
  type MethodStreamingType Lightning "verifyChanBackup" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "restoreChannelBackups" where
  type MethodName Lightning "restoreChannelBackups" = "RestoreChannelBackups"
  type MethodInput Lightning "restoreChannelBackups" = RestoreChanBackupRequest
  type MethodOutput Lightning "restoreChannelBackups" = RestoreBackupResponse
  type MethodStreamingType Lightning "restoreChannelBackups" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "subscribeChannelBackups" where
  type MethodName Lightning "subscribeChannelBackups" = "SubscribeChannelBackups"
  type MethodInput Lightning "subscribeChannelBackups" = ChannelBackupSubscription
  type MethodOutput Lightning "subscribeChannelBackups" = ChanBackupSnapshot
  type MethodStreamingType Lightning "subscribeChannelBackups" =  'Data.ProtoLens.Service.Types.ServerStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "bakeMacaroon" where
  type MethodName Lightning "bakeMacaroon" = "BakeMacaroon"
  type MethodInput Lightning "bakeMacaroon" = BakeMacaroonRequest
  type MethodOutput Lightning "bakeMacaroon" = BakeMacaroonResponse
  type MethodStreamingType Lightning "bakeMacaroon" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listMacaroonIDs" where
  type MethodName Lightning "listMacaroonIDs" = "ListMacaroonIDs"
  type MethodInput Lightning "listMacaroonIDs" = ListMacaroonIDsRequest
  type MethodOutput Lightning "listMacaroonIDs" = ListMacaroonIDsResponse
  type MethodStreamingType Lightning "listMacaroonIDs" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "deleteMacaroonID" where
  type MethodName Lightning "deleteMacaroonID" = "DeleteMacaroonID"
  type MethodInput Lightning "deleteMacaroonID" = DeleteMacaroonIDRequest
  type MethodOutput Lightning "deleteMacaroonID" = DeleteMacaroonIDResponse
  type MethodStreamingType Lightning "deleteMacaroonID" =  'Data.ProtoLens.Service.Types.NonStreaming
instance Data.ProtoLens.Service.Types.HasMethodImpl Lightning "listPermissions" where
  type MethodName Lightning "listPermissions" = "ListPermissions"
  type MethodInput Lightning "listPermissions" = ListPermissionsRequest
  type MethodOutput Lightning "listPermissions" = ListPermissionsResponse
  type MethodStreamingType Lightning "listPermissions" =  'Data.ProtoLens.Service.Types.NonStreaming
packedFileDescriptor :: Data.ByteString.ByteString
packedFileDescriptor
  = "\n\
    \\SOlnd_grpc.proto\DC2\ENQlnrpc\"\230\SOH\n\
    \\EOTUtxo\DC25\n\
    \\faddress_type\CAN\SOH \SOH(\SO2\DC2.lnrpc.AddressTypeR\vaddressType\DC2\CAN\n\
    \\aaddress\CAN\STX \SOH(\tR\aaddress\DC2\GS\n\
    \\n\
    \amount_sat\CAN\ETX \SOH(\ETXR\tamountSat\DC2\ESC\n\
    \\tpk_script\CAN\EOT \SOH(\tR\bpkScript\DC2+\n\
    \\boutpoint\CAN\ENQ \SOH(\v2\SI.lnrpc.OutPointR\boutpoint\DC2$\n\
    \\rconfirmations\CAN\ACK \SOH(\ETXR\rconfirmations\"\198\STX\n\
    \\vTransaction\DC2\ETB\n\
    \\atx_hash\CAN\SOH \SOH(\tR\ACKtxHash\DC2\SYN\n\
    \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2+\n\
    \\DC1num_confirmations\CAN\ETX \SOH(\ENQR\DLEnumConfirmations\DC2\GS\n\
    \\n\
    \block_hash\CAN\EOT \SOH(\tR\tblockHash\DC2!\n\
    \\fblock_height\CAN\ENQ \SOH(\ENQR\vblockHeight\DC2\GS\n\
    \\n\
    \time_stamp\CAN\ACK \SOH(\ETXR\ttimeStamp\DC2\GS\n\
    \\n\
    \total_fees\CAN\a \SOH(\ETXR\ttotalFees\DC2%\n\
    \\SOdest_addresses\CAN\b \ETX(\tR\rdestAddresses\DC2\FS\n\
    \\n\
    \raw_tx_hex\CAN\t \SOH(\tR\brawTxHex\DC2\DC4\n\
    \\ENQlabel\CAN\n\
    \ \SOH(\tR\ENQlabel\"t\n\
    \\SYNGetTransactionsRequest\DC2!\n\
    \\fstart_height\CAN\SOH \SOH(\ENQR\vstartHeight\DC2\GS\n\
    \\n\
    \end_height\CAN\STX \SOH(\ENQR\tendHeight\DC2\CAN\n\
    \\aaccount\CAN\ETX \SOH(\tR\aaccount\"L\n\
    \\DC2TransactionDetails\DC26\n\
    \\ftransactions\CAN\SOH \ETX(\v2\DC2.lnrpc.TransactionR\ftransactions\"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\"\234\ENQ\n\
    \\vSendRequest\DC2\DC2\n\
    \\EOTdest\CAN\SOH \SOH(\fR\EOTdest\DC2#\n\
    \\vdest_string\CAN\STX \SOH(\tR\n\
    \destStringB\STX\CAN\SOH\DC2\DLE\n\
    \\ETXamt\CAN\ETX \SOH(\ETXR\ETXamt\DC2\EM\n\
    \\bamt_msat\CAN\f \SOH(\ETXR\aamtMsat\DC2!\n\
    \\fpayment_hash\CAN\EOT \SOH(\fR\vpaymentHash\DC22\n\
    \\DC3payment_hash_string\CAN\ENQ \SOH(\tR\DC1paymentHashStringB\STX\CAN\SOH\DC2'\n\
    \\SIpayment_request\CAN\ACK \SOH(\tR\SOpaymentRequest\DC2(\n\
    \\DLEfinal_cltv_delta\CAN\a \SOH(\ENQR\SOfinalCltvDelta\DC2,\n\
    \\tfee_limit\CAN\b \SOH(\v2\SI.lnrpc.FeeLimitR\bfeeLimit\DC2,\n\
    \\DLEoutgoing_chan_id\CAN\t \SOH(\EOTR\SOoutgoingChanIdB\STX0\SOH\DC2&\n\
    \\SIlast_hop_pubkey\CAN\r \SOH(\fR\rlastHopPubkey\DC2\GS\n\
    \\n\
    \cltv_limit\CAN\n\
    \ \SOH(\rR\tcltvLimit\DC2Y\n\
    \\DC3dest_custom_records\CAN\v \ETX(\v2).lnrpc.SendRequest.DestCustomRecordsEntryR\DC1destCustomRecords\DC2,\n\
    \\DC2allow_self_payment\CAN\SO \SOH(\bR\DLEallowSelfPayment\DC26\n\
    \\rdest_features\CAN\SI \ETX(\SO2\DC1.lnrpc.FeatureBitR\fdestFeatures\DC2!\n\
    \\fpayment_addr\CAN\DLE \SOH(\fR\vpaymentAddr\SUBD\n\
    \\SYNDestCustomRecordsEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH\"\180\SOH\n\
    \\fSendResponse\DC2#\n\
    \\rpayment_error\CAN\SOH \SOH(\tR\fpaymentError\DC2)\n\
    \\DLEpayment_preimage\CAN\STX \SOH(\fR\SIpaymentPreimage\DC21\n\
    \\rpayment_route\CAN\ETX \SOH(\v2\f.lnrpc.RouteR\fpaymentRoute\DC2!\n\
    \\fpayment_hash\CAN\EOT \SOH(\fR\vpaymentHash\"\149\SOH\n\
    \\DC2SendToRouteRequest\DC2!\n\
    \\fpayment_hash\CAN\SOH \SOH(\fR\vpaymentHash\DC22\n\
    \\DC3payment_hash_string\CAN\STX \SOH(\tR\DC1paymentHashStringB\STX\CAN\SOH\DC2\"\n\
    \\ENQroute\CAN\EOT \SOH(\v2\f.lnrpc.RouteR\ENQrouteJ\EOT\b\ETX\DLE\EOT\"\218\ETX\n\
    \\DC4ChannelAcceptRequest\DC2\US\n\
    \\vnode_pubkey\CAN\SOH \SOH(\fR\n\
    \nodePubkey\DC2\GS\n\
    \\n\
    \chain_hash\CAN\STX \SOH(\fR\tchainHash\DC2&\n\
    \\SIpending_chan_id\CAN\ETX \SOH(\fR\rpendingChanId\DC2\US\n\
    \\vfunding_amt\CAN\EOT \SOH(\EOTR\n\
    \fundingAmt\DC2\EM\n\
    \\bpush_amt\CAN\ENQ \SOH(\EOTR\apushAmt\DC2\GS\n\
    \\n\
    \dust_limit\CAN\ACK \SOH(\EOTR\tdustLimit\DC2-\n\
    \\DC3max_value_in_flight\CAN\a \SOH(\EOTR\DLEmaxValueInFlight\DC2'\n\
    \\SIchannel_reserve\CAN\b \SOH(\EOTR\SOchannelReserve\DC2\EM\n\
    \\bmin_htlc\CAN\t \SOH(\EOTR\aminHtlc\DC2\FS\n\
    \\n\
    \fee_per_kw\CAN\n\
    \ \SOH(\EOTR\bfeePerKw\DC2\ESC\n\
    \\tcsv_delay\CAN\v \SOH(\rR\bcsvDelay\DC2,\n\
    \\DC2max_accepted_htlcs\CAN\f \SOH(\rR\DLEmaxAcceptedHtlcs\DC2#\n\
    \\rchannel_flags\CAN\r \SOH(\rR\fchannelFlags\"\243\STX\n\
    \\NAKChannelAcceptResponse\DC2\SYN\n\
    \\ACKaccept\CAN\SOH \SOH(\bR\ACKaccept\DC2&\n\
    \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\DC2\DC4\n\
    \\ENQerror\CAN\ETX \SOH(\tR\ENQerror\DC2)\n\
    \\DLEupfront_shutdown\CAN\EOT \SOH(\tR\SIupfrontShutdown\DC2\ESC\n\
    \\tcsv_delay\CAN\ENQ \SOH(\rR\bcsvDelay\DC2\US\n\
    \\vreserve_sat\CAN\ACK \SOH(\EOTR\n\
    \reserveSat\DC2+\n\
    \\DC2in_flight_max_msat\CAN\a \SOH(\EOTR\SIinFlightMaxMsat\DC2$\n\
    \\SOmax_htlc_count\CAN\b \SOH(\rR\fmaxHtlcCount\DC2\RS\n\
    \\vmin_htlc_in\CAN\t \SOH(\EOTR\tminHtlcIn\DC2(\n\
    \\DLEmin_accept_depth\CAN\n\
    \ \SOH(\rR\SOminAcceptDepth\"\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\">\n\
    \\DLELightningAddress\DC2\SYN\n\
    \\ACKpubkey\CAN\SOH \SOH(\tR\ACKpubkey\DC2\DC2\n\
    \\EOThost\CAN\STX \SOH(\tR\EOThost\"\145\STX\n\
    \\DC2EstimateFeeRequest\DC2O\n\
    \\fAddrToAmount\CAN\SOH \ETX(\v2+.lnrpc.EstimateFeeRequest.AddrToAmountEntryR\fAddrToAmount\DC2\US\n\
    \\vtarget_conf\CAN\STX \SOH(\ENQR\n\
    \targetConf\DC2\ESC\n\
    \\tmin_confs\CAN\ETX \SOH(\ENQR\bminConfs\DC2+\n\
    \\DC1spend_unconfirmed\CAN\EOT \SOH(\bR\DLEspendUnconfirmed\SUB?\n\
    \\DC1AddrToAmountEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalue:\STX8\SOH\"\135\SOH\n\
    \\DC3EstimateFeeResponse\DC2\ETB\n\
    \\afee_sat\CAN\SOH \SOH(\ETXR\ACKfeeSat\DC23\n\
    \\DC4feerate_sat_per_byte\CAN\STX \SOH(\ETXR\DC1feerateSatPerByteB\STX\CAN\SOH\DC2\"\n\
    \\rsat_per_vbyte\CAN\ETX \SOH(\EOTR\vsatPerVbyte\"\235\STX\n\
    \\SISendManyRequest\DC2L\n\
    \\fAddrToAmount\CAN\SOH \ETX(\v2(.lnrpc.SendManyRequest.AddrToAmountEntryR\fAddrToAmount\DC2\US\n\
    \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
    \targetConf\DC2\"\n\
    \\rsat_per_vbyte\CAN\EOT \SOH(\EOTR\vsatPerVbyte\DC2$\n\
    \\fsat_per_byte\CAN\ENQ \SOH(\ETXR\n\
    \satPerByteB\STX\CAN\SOH\DC2\DC4\n\
    \\ENQlabel\CAN\ACK \SOH(\tR\ENQlabel\DC2\ESC\n\
    \\tmin_confs\CAN\a \SOH(\ENQR\bminConfs\DC2+\n\
    \\DC1spend_unconfirmed\CAN\b \SOH(\bR\DLEspendUnconfirmed\SUB?\n\
    \\DC1AddrToAmountEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalue:\STX8\SOH\"&\n\
    \\DLESendManyResponse\DC2\DC2\n\
    \\EOTtxid\CAN\SOH \SOH(\tR\EOTtxid\"\164\STX\n\
    \\DLESendCoinsRequest\DC2\DC2\n\
    \\EOTaddr\CAN\SOH \SOH(\tR\EOTaddr\DC2\SYN\n\
    \\ACKamount\CAN\STX \SOH(\ETXR\ACKamount\DC2\US\n\
    \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
    \targetConf\DC2\"\n\
    \\rsat_per_vbyte\CAN\EOT \SOH(\EOTR\vsatPerVbyte\DC2$\n\
    \\fsat_per_byte\CAN\ENQ \SOH(\ETXR\n\
    \satPerByteB\STX\CAN\SOH\DC2\EM\n\
    \\bsend_all\CAN\ACK \SOH(\bR\asendAll\DC2\DC4\n\
    \\ENQlabel\CAN\a \SOH(\tR\ENQlabel\DC2\ESC\n\
    \\tmin_confs\CAN\b \SOH(\ENQR\bminConfs\DC2+\n\
    \\DC1spend_unconfirmed\CAN\t \SOH(\bR\DLEspendUnconfirmed\"'\n\
    \\DC1SendCoinsResponse\DC2\DC2\n\
    \\EOTtxid\CAN\SOH \SOH(\tR\EOTtxid\"h\n\
    \\DC2ListUnspentRequest\DC2\ESC\n\
    \\tmin_confs\CAN\SOH \SOH(\ENQR\bminConfs\DC2\ESC\n\
    \\tmax_confs\CAN\STX \SOH(\ENQR\bmaxConfs\DC2\CAN\n\
    \\aaccount\CAN\ETX \SOH(\tR\aaccount\"8\n\
    \\DC3ListUnspentResponse\DC2!\n\
    \\ENQutxos\CAN\SOH \ETX(\v2\v.lnrpc.UtxoR\ENQutxos\"U\n\
    \\DC1NewAddressRequest\DC2&\n\
    \\EOTtype\CAN\SOH \SOH(\SO2\DC2.lnrpc.AddressTypeR\EOTtype\DC2\CAN\n\
    \\aaccount\CAN\STX \SOH(\tR\aaccount\".\n\
    \\DC2NewAddressResponse\DC2\CAN\n\
    \\aaddress\CAN\SOH \SOH(\tR\aaddress\"&\n\
    \\DC2SignMessageRequest\DC2\DLE\n\
    \\ETXmsg\CAN\SOH \SOH(\fR\ETXmsg\"3\n\
    \\DC3SignMessageResponse\DC2\FS\n\
    \\tsignature\CAN\SOH \SOH(\tR\tsignature\"F\n\
    \\DC4VerifyMessageRequest\DC2\DLE\n\
    \\ETXmsg\CAN\SOH \SOH(\fR\ETXmsg\DC2\FS\n\
    \\tsignature\CAN\STX \SOH(\tR\tsignature\"E\n\
    \\NAKVerifyMessageResponse\DC2\DC4\n\
    \\ENQvalid\CAN\SOH \SOH(\bR\ENQvalid\DC2\SYN\n\
    \\ACKpubkey\CAN\STX \SOH(\tR\ACKpubkey\"o\n\
    \\DC2ConnectPeerRequest\DC2+\n\
    \\EOTaddr\CAN\SOH \SOH(\v2\ETB.lnrpc.LightningAddressR\EOTaddr\DC2\DC2\n\
    \\EOTperm\CAN\STX \SOH(\bR\EOTperm\DC2\CAN\n\
    \\atimeout\CAN\ETX \SOH(\EOTR\atimeout\"\NAK\n\
    \\DC3ConnectPeerResponse\"0\n\
    \\NAKDisconnectPeerRequest\DC2\ETB\n\
    \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\"\CAN\n\
    \\SYNDisconnectPeerResponse\"\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\"\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\"\179\SOH\n\
    \\DC3ListChannelsRequest\DC2\US\n\
    \\vactive_only\CAN\SOH \SOH(\bR\n\
    \activeOnly\DC2#\n\
    \\rinactive_only\CAN\STX \SOH(\bR\finactiveOnly\DC2\US\n\
    \\vpublic_only\CAN\ETX \SOH(\bR\n\
    \publicOnly\DC2!\n\
    \\fprivate_only\CAN\EOT \SOH(\bR\vprivateOnly\DC2\DC2\n\
    \\EOTpeer\CAN\ENQ \SOH(\fR\EOTpeer\"B\n\
    \\DC4ListChannelsResponse\DC2*\n\
    \\bchannels\CAN\v \ETX(\v2\SO.lnrpc.ChannelR\bchannels\"\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\"\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\"\222\SOH\n\
    \\NAKClosedChannelsRequest\DC2 \n\
    \\vcooperative\CAN\SOH \SOH(\bR\vcooperative\DC2\US\n\
    \\vlocal_force\CAN\STX \SOH(\bR\n\
    \localForce\DC2!\n\
    \\fremote_force\CAN\ETX \SOH(\bR\vremoteForce\DC2\SYN\n\
    \\ACKbreach\CAN\EOT \SOH(\bR\ACKbreach\DC2)\n\
    \\DLEfunding_canceled\CAN\ENQ \SOH(\bR\SIfundingCanceled\DC2\FS\n\
    \\tabandoned\CAN\ACK \SOH(\bR\tabandoned\"P\n\
    \\SYNClosedChannelsResponse\DC26\n\
    \\bchannels\CAN\SOH \ETX(\v2\SUB.lnrpc.ChannelCloseSummaryR\bchannels\"\223\EOT\n\
    \\EOTPeer\DC2\ETB\n\
    \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2\CAN\n\
    \\aaddress\CAN\ETX \SOH(\tR\aaddress\DC2\GS\n\
    \\n\
    \bytes_sent\CAN\EOT \SOH(\EOTR\tbytesSent\DC2\GS\n\
    \\n\
    \bytes_recv\CAN\ENQ \SOH(\EOTR\tbytesRecv\DC2\EM\n\
    \\bsat_sent\CAN\ACK \SOH(\ETXR\asatSent\DC2\EM\n\
    \\bsat_recv\CAN\a \SOH(\ETXR\asatRecv\DC2\CAN\n\
    \\ainbound\CAN\b \SOH(\bR\ainbound\DC2\ESC\n\
    \\tping_time\CAN\t \SOH(\ETXR\bpingTime\DC21\n\
    \\tsync_type\CAN\n\
    \ \SOH(\SO2\DC4.lnrpc.Peer.SyncTypeR\bsyncType\DC25\n\
    \\bfeatures\CAN\v \ETX(\v2\EM.lnrpc.Peer.FeaturesEntryR\bfeatures\DC2/\n\
    \\ACKerrors\CAN\f \ETX(\v2\ETB.lnrpc.TimestampedErrorR\ACKerrors\DC2\GS\n\
    \\n\
    \flap_count\CAN\r \SOH(\ENQR\tflapCount\DC2 \n\
    \\flast_flap_ns\CAN\SO \SOH(\ETXR\n\
    \lastFlapNs\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\"P\n\
    \\bSyncType\DC2\DLE\n\
    \\fUNKNOWN_SYNC\DLE\NUL\DC2\SI\n\
    \\vACTIVE_SYNC\DLE\SOH\DC2\DLE\n\
    \\fPASSIVE_SYNC\DLE\STX\DC2\SI\n\
    \\vPINNED_SYNC\DLE\ETX\"F\n\
    \\DLETimestampedError\DC2\FS\n\
    \\ttimestamp\CAN\SOH \SOH(\EOTR\ttimestamp\DC2\DC4\n\
    \\ENQerror\CAN\STX \SOH(\tR\ENQerror\"5\n\
    \\DLEListPeersRequest\DC2!\n\
    \\flatest_error\CAN\SOH \SOH(\bR\vlatestError\"6\n\
    \\DC1ListPeersResponse\DC2!\n\
    \\ENQpeers\CAN\SOH \ETX(\v2\v.lnrpc.PeerR\ENQpeers\"\ETB\n\
    \\NAKPeerEventSubscription\"\132\SOH\n\
    \\tPeerEvent\DC2\ETB\n\
    \\apub_key\CAN\SOH \SOH(\tR\ACKpubKey\DC2.\n\
    \\EOTtype\CAN\STX \SOH(\SO2\SUB.lnrpc.PeerEvent.EventTypeR\EOTtype\".\n\
    \\tEventType\DC2\SI\n\
    \\vPEER_ONLINE\DLE\NUL\DC2\DLE\n\
    \\fPEER_OFFLINE\DLE\SOH\"\DLE\n\
    \\SOGetInfoRequest\"\135\ACK\n\
    \\SIGetInfoResponse\DC2\CAN\n\
    \\aversion\CAN\SO \SOH(\tR\aversion\DC2\US\n\
    \\vcommit_hash\CAN\DC4 \SOH(\tR\n\
    \commitHash\DC2'\n\
    \\SIidentity_pubkey\CAN\SOH \SOH(\tR\SOidentityPubkey\DC2\DC4\n\
    \\ENQalias\CAN\STX \SOH(\tR\ENQalias\DC2\DC4\n\
    \\ENQcolor\CAN\DC1 \SOH(\tR\ENQcolor\DC20\n\
    \\DC4num_pending_channels\CAN\ETX \SOH(\rR\DC2numPendingChannels\DC2.\n\
    \\DC3num_active_channels\CAN\EOT \SOH(\rR\DC1numActiveChannels\DC22\n\
    \\NAKnum_inactive_channels\CAN\SI \SOH(\rR\DC3numInactiveChannels\DC2\ESC\n\
    \\tnum_peers\CAN\ENQ \SOH(\rR\bnumPeers\DC2!\n\
    \\fblock_height\CAN\ACK \SOH(\rR\vblockHeight\DC2\GS\n\
    \\n\
    \block_hash\CAN\b \SOH(\tR\tblockHash\DC22\n\
    \\NAKbest_header_timestamp\CAN\r \SOH(\ETXR\DC3bestHeaderTimestamp\DC2&\n\
    \\SIsynced_to_chain\CAN\t \SOH(\bR\rsyncedToChain\DC2&\n\
    \\SIsynced_to_graph\CAN\DC2 \SOH(\bR\rsyncedToGraph\DC2\FS\n\
    \\atestnet\CAN\n\
    \ \SOH(\bR\atestnetB\STX\CAN\SOH\DC2$\n\
    \\ACKchains\CAN\DLE \ETX(\v2\f.lnrpc.ChainR\ACKchains\DC2\DC2\n\
    \\EOTuris\CAN\f \ETX(\tR\EOTuris\DC2@\n\
    \\bfeatures\CAN\DC3 \ETX(\v2$.lnrpc.GetInfoResponse.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\SOHJ\EOT\b\v\DLE\f\"\CAN\n\
    \\SYNGetRecoveryInfoRequest\"\135\SOH\n\
    \\ETBGetRecoveryInfoResponse\DC2#\n\
    \\rrecovery_mode\CAN\SOH \SOH(\bR\frecoveryMode\DC2+\n\
    \\DC1recovery_finished\CAN\STX \SOH(\bR\DLErecoveryFinished\DC2\SUB\n\
    \\bprogress\CAN\ETX \SOH(\SOHR\bprogress\"7\n\
    \\ENQChain\DC2\DC4\n\
    \\ENQchain\CAN\SOH \SOH(\tR\ENQchain\DC2\CAN\n\
    \\anetwork\CAN\STX \SOH(\tR\anetwork\"z\n\
    \\DC2ConfirmationUpdate\DC2\ESC\n\
    \\tblock_sha\CAN\SOH \SOH(\fR\bblockSha\DC2!\n\
    \\fblock_height\CAN\STX \SOH(\ENQR\vblockHeight\DC2$\n\
    \\SOnum_confs_left\CAN\ETX \SOH(\rR\fnumConfsLeft\"M\n\
    \\DC1ChannelOpenUpdate\DC28\n\
    \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint\"Q\n\
    \\DC2ChannelCloseUpdate\DC2!\n\
    \\fclosing_txid\CAN\SOH \SOH(\fR\vclosingTxid\DC2\CAN\n\
    \\asuccess\CAN\STX \SOH(\bR\asuccess\"\251\SOH\n\
    \\DC3CloseChannelRequest\DC28\n\
    \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint\DC2\DC4\n\
    \\ENQforce\CAN\STX \SOH(\bR\ENQforce\DC2\US\n\
    \\vtarget_conf\CAN\ETX \SOH(\ENQR\n\
    \targetConf\DC2$\n\
    \\fsat_per_byte\CAN\EOT \SOH(\ETXR\n\
    \satPerByteB\STX\CAN\SOH\DC2)\n\
    \\DLEdelivery_address\CAN\ENQ \SOH(\tR\SIdeliveryAddress\DC2\"\n\
    \\rsat_per_vbyte\CAN\ACK \SOH(\EOTR\vsatPerVbyte\"\150\SOH\n\
    \\DC1CloseStatusUpdate\DC2;\n\
    \\rclose_pending\CAN\SOH \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\fclosePending\DC2:\n\
    \\n\
    \chan_close\CAN\ETX \SOH(\v2\EM.lnrpc.ChannelCloseUpdateH\NULR\tchanCloseB\b\n\
    \\ACKupdate\"F\n\
    \\rPendingUpdate\DC2\DC2\n\
    \\EOTtxid\CAN\SOH \SOH(\fR\EOTtxid\DC2!\n\
    \\foutput_index\CAN\STX \SOH(\rR\voutputIndex\"y\n\
    \\DC3ReadyForPsbtFunding\DC2'\n\
    \\SIfunding_address\CAN\SOH \SOH(\tR\SOfundingAddress\DC2%\n\
    \\SOfunding_amount\CAN\STX \SOH(\ETXR\rfundingAmount\DC2\DC2\n\
    \\EOTpsbt\CAN\ETX \SOH(\fR\EOTpsbt\"\192\ENQ\n\
    \\DC2OpenChannelRequest\DC2\"\n\
    \\rsat_per_vbyte\CAN\SOH \SOH(\EOTR\vsatPerVbyte\DC2\US\n\
    \\vnode_pubkey\CAN\STX \SOH(\fR\n\
    \nodePubkey\DC20\n\
    \\DC2node_pubkey_string\CAN\ETX \SOH(\tR\DLEnodePubkeyStringB\STX\CAN\SOH\DC20\n\
    \\DC4local_funding_amount\CAN\EOT \SOH(\ETXR\DC2localFundingAmount\DC2\EM\n\
    \\bpush_sat\CAN\ENQ \SOH(\ETXR\apushSat\DC2\US\n\
    \\vtarget_conf\CAN\ACK \SOH(\ENQR\n\
    \targetConf\DC2$\n\
    \\fsat_per_byte\CAN\a \SOH(\ETXR\n\
    \satPerByteB\STX\CAN\SOH\DC2\CAN\n\
    \\aprivate\CAN\b \SOH(\bR\aprivate\DC2\"\n\
    \\rmin_htlc_msat\CAN\t \SOH(\ETXR\vminHtlcMsat\DC2(\n\
    \\DLEremote_csv_delay\CAN\n\
    \ \SOH(\rR\SOremoteCsvDelay\DC2\ESC\n\
    \\tmin_confs\CAN\v \SOH(\ENQR\bminConfs\DC2+\n\
    \\DC1spend_unconfirmed\CAN\f \SOH(\bR\DLEspendUnconfirmed\DC2#\n\
    \\rclose_address\CAN\r \SOH(\tR\fcloseAddress\DC25\n\
    \\ffunding_shim\CAN\SO \SOH(\v2\DC2.lnrpc.FundingShimR\vfundingShim\DC2C\n\
    \\USremote_max_value_in_flight_msat\CAN\SI \SOH(\EOTR\SUBremoteMaxValueInFlightMsat\DC2(\n\
    \\DLEremote_max_htlcs\CAN\DLE \SOH(\rR\SOremoteMaxHtlcs\DC2\"\n\
    \\rmax_local_csv\CAN\DC1 \SOH(\rR\vmaxLocalCsv\"\243\SOH\n\
    \\DLEOpenStatusUpdate\DC29\n\
    \\fchan_pending\CAN\SOH \SOH(\v2\DC4.lnrpc.PendingUpdateH\NULR\vchanPending\DC27\n\
    \\tchan_open\CAN\ETX \SOH(\v2\CAN.lnrpc.ChannelOpenUpdateH\NULR\bchanOpen\DC29\n\
    \\tpsbt_fund\CAN\ENQ \SOH(\v2\SUB.lnrpc.ReadyForPsbtFundingH\NULR\bpsbtFund\DC2&\n\
    \\SIpending_chan_id\CAN\EOT \SOH(\fR\rpendingChanIdB\b\n\
    \\ACKupdate\"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\"\\\n\
    \\DC1FundingPsbtVerify\DC2\US\n\
    \\vfunded_psbt\CAN\SOH \SOH(\fR\n\
    \fundedPsbt\DC2&\n\
    \\SIpending_chan_id\CAN\STX \SOH(\fR\rpendingChanId\"\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\"\253\DC1\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\161\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\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\"\149\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\DC28\n\
    \\EOTtype\CAN\ENQ \SOH(\SO2$.lnrpc.ChannelEventUpdate.UpdateTypeR\EOTtype\"v\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\EOTB\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\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\"8\n\
    \\tRouteHint\DC2+\n\
    \\thop_hints\CAN\SOH \ETX(\v2\SO.lnrpc.HopHintR\bhopHints\"\150\b\n\
    \\aInvoice\DC2\DC2\n\
    \\EOTmemo\CAN\SOH \SOH(\tR\EOTmemo\DC2\GS\n\
    \\n\
    \r_preimage\CAN\ETX \SOH(\fR\trPreimage\DC2\NAK\n\
    \\ACKr_hash\CAN\EOT \SOH(\fR\ENQrHash\DC2\DC4\n\
    \\ENQvalue\CAN\ENQ \SOH(\ETXR\ENQvalue\DC2\GS\n\
    \\n\
    \value_msat\CAN\ETB \SOH(\ETXR\tvalueMsat\DC2\FS\n\
    \\asettled\CAN\ACK \SOH(\bR\asettledB\STX\CAN\SOH\DC2#\n\
    \\rcreation_date\CAN\a \SOH(\ETXR\fcreationDate\DC2\US\n\
    \\vsettle_date\CAN\b \SOH(\ETXR\n\
    \settleDate\DC2'\n\
    \\SIpayment_request\CAN\t \SOH(\tR\SOpaymentRequest\DC2)\n\
    \\DLEdescription_hash\CAN\n\
    \ \SOH(\fR\SIdescriptionHash\DC2\SYN\n\
    \\ACKexpiry\CAN\v \SOH(\ETXR\ACKexpiry\DC2#\n\
    \\rfallback_addr\CAN\f \SOH(\tR\ffallbackAddr\DC2\US\n\
    \\vcltv_expiry\CAN\r \SOH(\EOTR\n\
    \cltvExpiry\DC21\n\
    \\vroute_hints\CAN\SO \ETX(\v2\DLE.lnrpc.RouteHintR\n\
    \routeHints\DC2\CAN\n\
    \\aprivate\CAN\SI \SOH(\bR\aprivate\DC2\ESC\n\
    \\tadd_index\CAN\DLE \SOH(\EOTR\baddIndex\DC2!\n\
    \\fsettle_index\CAN\DC1 \SOH(\EOTR\vsettleIndex\DC2\GS\n\
    \\bamt_paid\CAN\DC2 \SOH(\ETXR\aamtPaidB\STX\CAN\SOH\DC2 \n\
    \\famt_paid_sat\CAN\DC3 \SOH(\ETXR\n\
    \amtPaidSat\DC2\"\n\
    \\ramt_paid_msat\CAN\DC4 \SOH(\ETXR\vamtPaidMsat\DC21\n\
    \\ENQstate\CAN\NAK \SOH(\SO2\ESC.lnrpc.Invoice.InvoiceStateR\ENQstate\DC2(\n\
    \\ENQhtlcs\CAN\SYN \ETX(\v2\DC2.lnrpc.InvoiceHTLCR\ENQhtlcs\DC28\n\
    \\bfeatures\CAN\CAN \ETX(\v2\FS.lnrpc.Invoice.FeaturesEntryR\bfeatures\DC2\GS\n\
    \\n\
    \is_keysend\CAN\EM \SOH(\bR\tisKeysend\DC2!\n\
    \\fpayment_addr\CAN\SUB \SOH(\fR\vpaymentAddr\DC2\NAK\n\
    \\ACKis_amp\CAN\ESC \SOH(\bR\ENQisAmp\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\"A\n\
    \\fInvoiceState\DC2\b\n\
    \\EOTOPEN\DLE\NUL\DC2\v\n\
    \\aSETTLED\DLE\SOH\DC2\f\n\
    \\bCANCELED\DLE\STX\DC2\f\n\
    \\bACCEPTED\DLE\ETXJ\EOT\b\STX\DLE\ETX\"\252\ETX\n\
    \\vInvoiceHTLC\DC2\ESC\n\
    \\achan_id\CAN\SOH \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\GS\n\
    \\n\
    \htlc_index\CAN\STX \SOH(\EOTR\thtlcIndex\DC2\EM\n\
    \\bamt_msat\CAN\ETX \SOH(\EOTR\aamtMsat\DC2#\n\
    \\raccept_height\CAN\EOT \SOH(\ENQR\facceptHeight\DC2\US\n\
    \\vaccept_time\CAN\ENQ \SOH(\ETXR\n\
    \acceptTime\DC2!\n\
    \\fresolve_time\CAN\ACK \SOH(\ETXR\vresolveTime\DC2#\n\
    \\rexpiry_height\CAN\a \SOH(\ENQR\fexpiryHeight\DC2-\n\
    \\ENQstate\CAN\b \SOH(\SO2\ETB.lnrpc.InvoiceHTLCStateR\ENQstate\DC2L\n\
    \\SOcustom_records\CAN\t \ETX(\v2%.lnrpc.InvoiceHTLC.CustomRecordsEntryR\rcustomRecords\DC2+\n\
    \\DC2mpp_total_amt_msat\CAN\n\
    \ \SOH(\EOTR\SImppTotalAmtMsat\DC2\FS\n\
    \\ETXamp\CAN\v \SOH(\v2\n\
    \.lnrpc.AMPR\ETXamp\SUB@\n\
    \\DC2CustomRecordsEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\EOTR\ETXkey\DC2\DC4\n\
    \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue:\STX8\SOH\"\140\SOH\n\
    \\ETXAMP\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\DC2\DC2\n\
    \\EOThash\CAN\EOT \SOH(\fR\EOThash\DC2\SUB\n\
    \\bpreimage\CAN\ENQ \SOH(\fR\bpreimage\"\148\SOH\n\
    \\DC2AddInvoiceResponse\DC2\NAK\n\
    \\ACKr_hash\CAN\SOH \SOH(\fR\ENQrHash\DC2'\n\
    \\SIpayment_request\CAN\STX \SOH(\tR\SOpaymentRequest\DC2\ESC\n\
    \\tadd_index\CAN\DLE \SOH(\EOTR\baddIndex\DC2!\n\
    \\fpayment_addr\CAN\DC1 \SOH(\fR\vpaymentAddr\"F\n\
    \\vPaymentHash\DC2 \n\
    \\n\
    \r_hash_str\CAN\SOH \SOH(\tR\brHashStrB\STX\CAN\SOH\DC2\NAK\n\
    \\ACKr_hash\CAN\STX \SOH(\fR\ENQrHash\"\160\SOH\n\
    \\DC2ListInvoiceRequest\DC2!\n\
    \\fpending_only\CAN\SOH \SOH(\bR\vpendingOnly\DC2!\n\
    \\findex_offset\CAN\EOT \SOH(\EOTR\vindexOffset\DC2(\n\
    \\DLEnum_max_invoices\CAN\ENQ \SOH(\EOTR\SOnumMaxInvoices\DC2\SUB\n\
    \\breversed\CAN\ACK \SOH(\bR\breversed\"\155\SOH\n\
    \\DC3ListInvoiceResponse\DC2*\n\
    \\binvoices\CAN\SOH \ETX(\v2\SO.lnrpc.InvoiceR\binvoices\DC2*\n\
    \\DC1last_index_offset\CAN\STX \SOH(\EOTR\SIlastIndexOffset\DC2,\n\
    \\DC2first_index_offset\CAN\ETX \SOH(\EOTR\DLEfirstIndexOffset\"U\n\
    \\DC3InvoiceSubscription\DC2\ESC\n\
    \\tadd_index\CAN\SOH \SOH(\EOTR\baddIndex\DC2!\n\
    \\fsettle_index\CAN\STX \SOH(\EOTR\vsettleIndex\"\138\ENQ\n\
    \\aPayment\DC2!\n\
    \\fpayment_hash\CAN\SOH \SOH(\tR\vpaymentHash\DC2\CAN\n\
    \\ENQvalue\CAN\STX \SOH(\ETXR\ENQvalueB\STX\CAN\SOH\DC2'\n\
    \\rcreation_date\CAN\ETX \SOH(\ETXR\fcreationDateB\STX\CAN\SOH\DC2\DC4\n\
    \\ETXfee\CAN\ENQ \SOH(\ETXR\ETXfeeB\STX\CAN\SOH\DC2)\n\
    \\DLEpayment_preimage\CAN\ACK \SOH(\tR\SIpaymentPreimage\DC2\ESC\n\
    \\tvalue_sat\CAN\a \SOH(\ETXR\bvalueSat\DC2\GS\n\
    \\n\
    \value_msat\CAN\b \SOH(\ETXR\tvalueMsat\DC2'\n\
    \\SIpayment_request\CAN\t \SOH(\tR\SOpaymentRequest\DC24\n\
    \\ACKstatus\CAN\n\
    \ \SOH(\SO2\FS.lnrpc.Payment.PaymentStatusR\ACKstatus\DC2\ETB\n\
    \\afee_sat\CAN\v \SOH(\ETXR\ACKfeeSat\DC2\EM\n\
    \\bfee_msat\CAN\f \SOH(\ETXR\afeeMsat\DC2(\n\
    \\DLEcreation_time_ns\CAN\r \SOH(\ETXR\SOcreationTimeNs\DC2(\n\
    \\ENQhtlcs\CAN\SO \ETX(\v2\DC2.lnrpc.HTLCAttemptR\ENQhtlcs\DC2#\n\
    \\rpayment_index\CAN\SI \SOH(\EOTR\fpaymentIndex\DC2B\n\
    \\SOfailure_reason\CAN\DLE \SOH(\SO2\ESC.lnrpc.PaymentFailureReasonR\rfailureReason\"F\n\
    \\rPaymentStatus\DC2\v\n\
    \\aUNKNOWN\DLE\NUL\DC2\r\n\
    \\tIN_FLIGHT\DLE\SOH\DC2\r\n\
    \\tSUCCEEDED\DLE\STX\DC2\n\
    \\n\
    \\ACKFAILED\DLE\ETXJ\EOT\b\EOT\DLE\ENQ\"\213\STX\n\
    \\vHTLCAttempt\DC2\GS\n\
    \\n\
    \attempt_id\CAN\a \SOH(\EOTR\tattemptId\DC25\n\
    \\ACKstatus\CAN\SOH \SOH(\SO2\GS.lnrpc.HTLCAttempt.HTLCStatusR\ACKstatus\DC2\"\n\
    \\ENQroute\CAN\STX \SOH(\v2\f.lnrpc.RouteR\ENQroute\DC2&\n\
    \\SIattempt_time_ns\CAN\ETX \SOH(\ETXR\rattemptTimeNs\DC2&\n\
    \\SIresolve_time_ns\CAN\EOT \SOH(\ETXR\rresolveTimeNs\DC2(\n\
    \\afailure\CAN\ENQ \SOH(\v2\SO.lnrpc.FailureR\afailure\DC2\SUB\n\
    \\bpreimage\CAN\ACK \SOH(\fR\bpreimage\"6\n\
    \\n\
    \HTLCStatus\DC2\r\n\
    \\tIN_FLIGHT\DLE\NUL\DC2\r\n\
    \\tSUCCEEDED\DLE\SOH\DC2\n\
    \\n\
    \\ACKFAILED\DLE\STX\"\166\SOH\n\
    \\DC3ListPaymentsRequest\DC2-\n\
    \\DC2include_incomplete\CAN\SOH \SOH(\bR\DC1includeIncomplete\DC2!\n\
    \\findex_offset\CAN\STX \SOH(\EOTR\vindexOffset\DC2!\n\
    \\fmax_payments\CAN\ETX \SOH(\EOTR\vmaxPayments\DC2\SUB\n\
    \\breversed\CAN\EOT \SOH(\bR\breversed\"\156\SOH\n\
    \\DC4ListPaymentsResponse\DC2*\n\
    \\bpayments\CAN\SOH \ETX(\v2\SO.lnrpc.PaymentR\bpayments\DC2,\n\
    \\DC2first_index_offset\CAN\STX \SOH(\EOTR\DLEfirstIndexOffset\DC2*\n\
    \\DC1last_index_offset\CAN\ETX \SOH(\EOTR\SIlastIndexOffset\"x\n\
    \\CANDeleteAllPaymentsRequest\DC20\n\
    \\DC4failed_payments_only\CAN\SOH \SOH(\bR\DC2failedPaymentsOnly\DC2*\n\
    \\DC1failed_htlcs_only\CAN\STX \SOH(\bR\SIfailedHtlcsOnly\"\ESC\n\
    \\EMDeleteAllPaymentsResponse\"\191\SOH\n\
    \\NAKAbandonChannelRequest\DC28\n\
    \\rchannel_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\fchannelPoint\DC29\n\
    \\EMpending_funding_shim_only\CAN\STX \SOH(\bR\SYNpendingFundingShimOnly\DC21\n\
    \\SYNi_know_what_i_am_doing\CAN\ETX \SOH(\bR\DC1iKnowWhatIAmDoing\"\CAN\n\
    \\SYNAbandonChannelResponse\"F\n\
    \\DC1DebugLevelRequest\DC2\DC2\n\
    \\EOTshow\CAN\SOH \SOH(\bR\EOTshow\DC2\GS\n\
    \\n\
    \level_spec\CAN\STX \SOH(\tR\tlevelSpec\"5\n\
    \\DC2DebugLevelResponse\DC2\US\n\
    \\vsub_systems\CAN\SOH \SOH(\tR\n\
    \subSystems\"'\n\
    \\fPayReqString\DC2\ETB\n\
    \\apay_req\CAN\SOH \SOH(\tR\ACKpayReq\"\176\EOT\n\
    \\ACKPayReq\DC2 \n\
    \\vdestination\CAN\SOH \SOH(\tR\vdestination\DC2!\n\
    \\fpayment_hash\CAN\STX \SOH(\tR\vpaymentHash\DC2!\n\
    \\fnum_satoshis\CAN\ETX \SOH(\ETXR\vnumSatoshis\DC2\FS\n\
    \\ttimestamp\CAN\EOT \SOH(\ETXR\ttimestamp\DC2\SYN\n\
    \\ACKexpiry\CAN\ENQ \SOH(\ETXR\ACKexpiry\DC2 \n\
    \\vdescription\CAN\ACK \SOH(\tR\vdescription\DC2)\n\
    \\DLEdescription_hash\CAN\a \SOH(\tR\SIdescriptionHash\DC2#\n\
    \\rfallback_addr\CAN\b \SOH(\tR\ffallbackAddr\DC2\US\n\
    \\vcltv_expiry\CAN\t \SOH(\ETXR\n\
    \cltvExpiry\DC21\n\
    \\vroute_hints\CAN\n\
    \ \ETX(\v2\DLE.lnrpc.RouteHintR\n\
    \routeHints\DC2!\n\
    \\fpayment_addr\CAN\v \SOH(\fR\vpaymentAddr\DC2\EM\n\
    \\bnum_msat\CAN\f \SOH(\ETXR\anumMsat\DC27\n\
    \\bfeatures\CAN\r \ETX(\v2\ESC.lnrpc.PayReq.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\"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\"\DC2\n\
    \\DLEFeeReportRequest\"\179\SOH\n\
    \\DLEChannelFeeReport\DC2\ESC\n\
    \\achan_id\CAN\ENQ \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2#\n\
    \\rchannel_point\CAN\SOH \SOH(\tR\fchannelPoint\DC2\"\n\
    \\rbase_fee_msat\CAN\STX \SOH(\ETXR\vbaseFeeMsat\DC2\RS\n\
    \\vfee_per_mil\CAN\ETX \SOH(\ETXR\tfeePerMil\DC2\EM\n\
    \\bfee_rate\CAN\EOT \SOH(\SOHR\afeeRate\"\181\SOH\n\
    \\DC1FeeReportResponse\DC2:\n\
    \\fchannel_fees\CAN\SOH \ETX(\v2\ETB.lnrpc.ChannelFeeReportR\vchannelFees\DC2\RS\n\
    \\vday_fee_sum\CAN\STX \SOH(\EOTR\tdayFeeSum\DC2 \n\
    \\fweek_fee_sum\CAN\ETX \SOH(\EOTR\n\
    \weekFeeSum\DC2\"\n\
    \\rmonth_fee_sum\CAN\EOT \SOH(\EOTR\vmonthFeeSum\"\212\STX\n\
    \\DC3PolicyUpdateRequest\DC2\CAN\n\
    \\ACKglobal\CAN\SOH \SOH(\bH\NULR\ACKglobal\DC24\n\
    \\n\
    \chan_point\CAN\STX \SOH(\v2\DC3.lnrpc.ChannelPointH\NULR\tchanPoint\DC2\"\n\
    \\rbase_fee_msat\CAN\ETX \SOH(\ETXR\vbaseFeeMsat\DC2\EM\n\
    \\bfee_rate\CAN\EOT \SOH(\SOHR\afeeRate\DC2&\n\
    \\SItime_lock_delta\CAN\ENQ \SOH(\rR\rtimeLockDelta\DC2\"\n\
    \\rmax_htlc_msat\CAN\ACK \SOH(\EOTR\vmaxHtlcMsat\DC2\"\n\
    \\rmin_htlc_msat\CAN\a \SOH(\EOTR\vminHtlcMsat\DC25\n\
    \\ETBmin_htlc_msat_specified\CAN\b \SOH(\bR\DC4minHtlcMsatSpecifiedB\a\n\
    \\ENQscope\"\SYN\n\
    \\DC4PolicyUpdateResponse\"\157\SOH\n\
    \\CANForwardingHistoryRequest\DC2\GS\n\
    \\n\
    \start_time\CAN\SOH \SOH(\EOTR\tstartTime\DC2\EM\n\
    \\bend_time\CAN\STX \SOH(\EOTR\aendTime\DC2!\n\
    \\findex_offset\CAN\ETX \SOH(\rR\vindexOffset\DC2$\n\
    \\SOnum_max_events\CAN\EOT \SOH(\rR\fnumMaxEvents\"\187\STX\n\
    \\SIForwardingEvent\DC2 \n\
    \\ttimestamp\CAN\SOH \SOH(\EOTR\ttimestampB\STX\CAN\SOH\DC2 \n\
    \\n\
    \chan_id_in\CAN\STX \SOH(\EOTR\bchanIdInB\STX0\SOH\DC2\"\n\
    \\vchan_id_out\CAN\EOT \SOH(\EOTR\tchanIdOutB\STX0\SOH\DC2\NAK\n\
    \\ACKamt_in\CAN\ENQ \SOH(\EOTR\ENQamtIn\DC2\ETB\n\
    \\aamt_out\CAN\ACK \SOH(\EOTR\ACKamtOut\DC2\DLE\n\
    \\ETXfee\CAN\a \SOH(\EOTR\ETXfee\DC2\EM\n\
    \\bfee_msat\CAN\b \SOH(\EOTR\afeeMsat\DC2\RS\n\
    \\vamt_in_msat\CAN\t \SOH(\EOTR\tamtInMsat\DC2 \n\
    \\famt_out_msat\CAN\n\
    \ \SOH(\EOTR\n\
    \amtOutMsat\DC2!\n\
    \\ftimestamp_ns\CAN\v \SOH(\EOTR\vtimestampNs\"\140\SOH\n\
    \\EMForwardingHistoryResponse\DC2C\n\
    \\DC1forwarding_events\CAN\SOH \ETX(\v2\SYN.lnrpc.ForwardingEventR\DLEforwardingEvents\DC2*\n\
    \\DC1last_offset_index\CAN\STX \SOH(\rR\SIlastOffsetIndex\"P\n\
    \\SUBExportChannelBackupRequest\DC22\n\
    \\n\
    \chan_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\"d\n\
    \\rChannelBackup\DC22\n\
    \\n\
    \chan_point\CAN\SOH \SOH(\v2\DC3.lnrpc.ChannelPointR\tchanPoint\DC2\US\n\
    \\vchan_backup\CAN\STX \SOH(\fR\n\
    \chanBackup\"s\n\
    \\SIMultiChanBackup\DC24\n\
    \\vchan_points\CAN\SOH \ETX(\v2\DC3.lnrpc.ChannelPointR\n\
    \chanPoints\DC2*\n\
    \\DC1multi_chan_backup\CAN\STX \SOH(\fR\SImultiChanBackup\"\EM\n\
    \\ETBChanBackupExportRequest\"\159\SOH\n\
    \\DC2ChanBackupSnapshot\DC2E\n\
    \\DC3single_chan_backups\CAN\SOH \SOH(\v2\NAK.lnrpc.ChannelBackupsR\DC1singleChanBackups\DC2B\n\
    \\DC1multi_chan_backup\CAN\STX \SOH(\v2\SYN.lnrpc.MultiChanBackupR\SImultiChanBackup\"I\n\
    \\SOChannelBackups\DC27\n\
    \\fchan_backups\CAN\SOH \ETX(\v2\DC4.lnrpc.ChannelBackupR\vchanBackups\"\142\SOH\n\
    \\CANRestoreChanBackupRequest\DC2:\n\
    \\fchan_backups\CAN\SOH \SOH(\v2\NAK.lnrpc.ChannelBackupsH\NULR\vchanBackups\DC2,\n\
    \\DC1multi_chan_backup\CAN\STX \SOH(\fH\NULR\SImultiChanBackupB\b\n\
    \\ACKbackup\"\ETB\n\
    \\NAKRestoreBackupResponse\"\ESC\n\
    \\EMChannelBackupSubscription\"\SUB\n\
    \\CANVerifyChanBackupResponse\"D\n\
    \\DC2MacaroonPermission\DC2\SYN\n\
    \\ACKentity\CAN\SOH \SOH(\tR\ACKentity\DC2\SYN\n\
    \\ACKaction\CAN\STX \SOH(\tR\ACKaction\"r\n\
    \\DC3BakeMacaroonRequest\DC2;\n\
    \\vpermissions\CAN\SOH \ETX(\v2\EM.lnrpc.MacaroonPermissionR\vpermissions\DC2\RS\n\
    \\vroot_key_id\CAN\STX \SOH(\EOTR\trootKeyId\"2\n\
    \\DC4BakeMacaroonResponse\DC2\SUB\n\
    \\bmacaroon\CAN\SOH \SOH(\tR\bmacaroon\"\CAN\n\
    \\SYNListMacaroonIDsRequest\";\n\
    \\ETBListMacaroonIDsResponse\DC2 \n\
    \\froot_key_ids\CAN\SOH \ETX(\EOTR\n\
    \rootKeyIds\"9\n\
    \\ETBDeleteMacaroonIDRequest\DC2\RS\n\
    \\vroot_key_id\CAN\SOH \SOH(\EOTR\trootKeyId\"4\n\
    \\CANDeleteMacaroonIDResponse\DC2\CAN\n\
    \\adeleted\CAN\SOH \SOH(\bR\adeleted\"U\n\
    \\SYNMacaroonPermissionList\DC2;\n\
    \\vpermissions\CAN\SOH \ETX(\v2\EM.lnrpc.MacaroonPermissionR\vpermissions\"\CAN\n\
    \\SYNListPermissionsRequest\"\228\SOH\n\
    \\ETBListPermissionsResponse\DC2d\n\
    \\DC2method_permissions\CAN\SOH \ETX(\v25.lnrpc.ListPermissionsResponse.MethodPermissionsEntryR\DC1methodPermissions\SUBc\n\
    \\SYNMethodPermissionsEntry\DC2\DLE\n\
    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC23\n\
    \\ENQvalue\CAN\STX \SOH(\v2\GS.lnrpc.MacaroonPermissionListR\ENQvalue:\STX8\SOH\"\176\b\n\
    \\aFailure\DC2.\n\
    \\EOTcode\CAN\SOH \SOH(\SO2\SUB.lnrpc.Failure.FailureCodeR\EOTcode\DC2;\n\
    \\SOchannel_update\CAN\ETX \SOH(\v2\DC4.lnrpc.ChannelUpdateR\rchannelUpdate\DC2\ESC\n\
    \\thtlc_msat\CAN\EOT \SOH(\EOTR\bhtlcMsat\DC2\"\n\
    \\ronion_sha_256\CAN\ENQ \SOH(\fR\vonionSha256\DC2\US\n\
    \\vcltv_expiry\CAN\ACK \SOH(\rR\n\
    \cltvExpiry\DC2\DC4\n\
    \\ENQflags\CAN\a \SOH(\rR\ENQflags\DC20\n\
    \\DC4failure_source_index\CAN\b \SOH(\rR\DC2failureSourceIndex\DC2\SYN\n\
    \\ACKheight\CAN\t \SOH(\rR\ACKheight\"\239\ENQ\n\
    \\vFailureCode\DC2\f\n\
    \\bRESERVED\DLE\NUL\DC2(\n\
    \$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\DLE\SOH\DC2\FS\n\
    \\CANINCORRECT_PAYMENT_AMOUNT\DLE\STX\DC2\US\n\
    \\ESCFINAL_INCORRECT_CLTV_EXPIRY\DLE\ETX\DC2\US\n\
    \\ESCFINAL_INCORRECT_HTLC_AMOUNT\DLE\EOT\DC2\EM\n\
    \\NAKFINAL_EXPIRY_TOO_SOON\DLE\ENQ\DC2\DC1\n\
    \\rINVALID_REALM\DLE\ACK\DC2\DC3\n\
    \\SIEXPIRY_TOO_SOON\DLE\a\DC2\EM\n\
    \\NAKINVALID_ONION_VERSION\DLE\b\DC2\SYN\n\
    \\DC2INVALID_ONION_HMAC\DLE\t\DC2\NAK\n\
    \\DC1INVALID_ONION_KEY\DLE\n\
    \\DC2\CAN\n\
    \\DC4AMOUNT_BELOW_MINIMUM\DLE\v\DC2\DC4\n\
    \\DLEFEE_INSUFFICIENT\DLE\f\DC2\EM\n\
    \\NAKINCORRECT_CLTV_EXPIRY\DLE\r\DC2\DC4\n\
    \\DLECHANNEL_DISABLED\DLE\SO\DC2\GS\n\
    \\EMTEMPORARY_CHANNEL_FAILURE\DLE\SI\DC2!\n\
    \\GSREQUIRED_NODE_FEATURE_MISSING\DLE\DLE\DC2$\n\
    \ REQUIRED_CHANNEL_FEATURE_MISSING\DLE\DC1\DC2\NAK\n\
    \\DC1UNKNOWN_NEXT_PEER\DLE\DC2\DC2\SUB\n\
    \\SYNTEMPORARY_NODE_FAILURE\DLE\DC3\DC2\SUB\n\
    \\SYNPERMANENT_NODE_FAILURE\DLE\DC4\DC2\GS\n\
    \\EMPERMANENT_CHANNEL_FAILURE\DLE\NAK\DC2\DC2\n\
    \\SOEXPIRY_TOO_FAR\DLE\SYN\DC2\SI\n\
    \\vMPP_TIMEOUT\DLE\ETB\DC2\EM\n\
    \\NAKINVALID_ONION_PAYLOAD\DLE\CAN\DC2\NAK\n\
    \\DLEINTERNAL_FAILURE\DLE\229\a\DC2\DC4\n\
    \\SIUNKNOWN_FAILURE\DLE\230\a\DC2\ETB\n\
    \\DC2UNREADABLE_FAILURE\DLE\231\aJ\EOT\b\STX\DLE\ETX\"\179\ETX\n\
    \\rChannelUpdate\DC2\FS\n\
    \\tsignature\CAN\SOH \SOH(\fR\tsignature\DC2\GS\n\
    \\n\
    \chain_hash\CAN\STX \SOH(\fR\tchainHash\DC2\ESC\n\
    \\achan_id\CAN\ETX \SOH(\EOTR\ACKchanIdB\STX0\SOH\DC2\FS\n\
    \\ttimestamp\CAN\EOT \SOH(\rR\ttimestamp\DC2#\n\
    \\rmessage_flags\CAN\n\
    \ \SOH(\rR\fmessageFlags\DC2#\n\
    \\rchannel_flags\CAN\ENQ \SOH(\rR\fchannelFlags\DC2&\n\
    \\SItime_lock_delta\CAN\ACK \SOH(\rR\rtimeLockDelta\DC2*\n\
    \\DC1htlc_minimum_msat\CAN\a \SOH(\EOTR\SIhtlcMinimumMsat\DC2\EM\n\
    \\bbase_fee\CAN\b \SOH(\rR\abaseFee\DC2\EM\n\
    \\bfee_rate\CAN\t \SOH(\rR\afeeRate\DC2*\n\
    \\DC1htlc_maximum_msat\CAN\v \SOH(\EOTR\SIhtlcMaximumMsat\DC2*\n\
    \\DC1extra_opaque_data\CAN\f \SOH(\fR\SIextraOpaqueData\"]\n\
    \\n\
    \MacaroonId\DC2\DC4\n\
    \\ENQnonce\CAN\SOH \SOH(\fR\ENQnonce\DC2\FS\n\
    \\tstorageId\CAN\STX \SOH(\fR\tstorageId\DC2\ESC\n\
    \\ETXops\CAN\ETX \ETX(\v2\t.lnrpc.OpR\ETXops\"6\n\
    \\STXOp\DC2\SYN\n\
    \\ACKentity\CAN\SOH \SOH(\tR\ACKentity\DC2\CAN\n\
    \\aactions\CAN\STX \ETX(\tR\aactions*}\n\
    \\vAddressType\DC2\ETB\n\
    \\DC3WITNESS_PUBKEY_HASH\DLE\NUL\DC2\SYN\n\
    \\DC2NESTED_PUBKEY_HASH\DLE\SOH\DC2\RS\n\
    \\SUBUNUSED_WITNESS_PUBKEY_HASH\DLE\STX\DC2\GS\n\
    \\EMUNUSED_NESTED_PUBKEY_HASH\DLE\ETX*^\n\
    \\SOCommitmentType\DC2\n\
    \\n\
    \\ACKLEGACY\DLE\NUL\DC2\NAK\n\
    \\DC1STATIC_REMOTE_KEY\DLE\SOH\DC2\v\n\
    \\aANCHORS\DLE\STX\DC2\FS\n\
    \\ETBUNKNOWN_COMMITMENT_TYPE\DLE\231\a*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*`\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\SOH*;\n\
    \\DLEInvoiceHTLCState\DC2\f\n\
    \\bACCEPTED\DLE\NUL\DC2\v\n\
    \\aSETTLED\DLE\SOH\DC2\f\n\
    \\bCANCELED\DLE\STX*\217\SOH\n\
    \\DC4PaymentFailureReason\DC2\ETB\n\
    \\DC3FAILURE_REASON_NONE\DLE\NUL\DC2\SUB\n\
    \\SYNFAILURE_REASON_TIMEOUT\DLE\SOH\DC2\ESC\n\
    \\ETBFAILURE_REASON_NO_ROUTE\DLE\STX\DC2\CAN\n\
    \\DC4FAILURE_REASON_ERROR\DLE\ETX\DC2,\n\
    \(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\DLE\EOT\DC2'\n\
    \#FAILURE_REASON_INSUFFICIENT_BALANCE\DLE\ENQ*\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\US2\201!\n\
    \\tLightning\DC2J\n\
    \\rWalletBalance\DC2\ESC.lnrpc.WalletBalanceRequest\SUB\FS.lnrpc.WalletBalanceResponse\DC2M\n\
    \\SOChannelBalance\DC2\FS.lnrpc.ChannelBalanceRequest\SUB\GS.lnrpc.ChannelBalanceResponse\DC2K\n\
    \\SIGetTransactions\DC2\GS.lnrpc.GetTransactionsRequest\SUB\EM.lnrpc.TransactionDetails\DC2D\n\
    \\vEstimateFee\DC2\EM.lnrpc.EstimateFeeRequest\SUB\SUB.lnrpc.EstimateFeeResponse\DC2>\n\
    \\tSendCoins\DC2\ETB.lnrpc.SendCoinsRequest\SUB\CAN.lnrpc.SendCoinsResponse\DC2D\n\
    \\vListUnspent\DC2\EM.lnrpc.ListUnspentRequest\SUB\SUB.lnrpc.ListUnspentResponse\DC2L\n\
    \\NAKSubscribeTransactions\DC2\GS.lnrpc.GetTransactionsRequest\SUB\DC2.lnrpc.Transaction0\SOH\DC2;\n\
    \\bSendMany\DC2\SYN.lnrpc.SendManyRequest\SUB\ETB.lnrpc.SendManyResponse\DC2A\n\
    \\n\
    \NewAddress\DC2\CAN.lnrpc.NewAddressRequest\SUB\EM.lnrpc.NewAddressResponse\DC2D\n\
    \\vSignMessage\DC2\EM.lnrpc.SignMessageRequest\SUB\SUB.lnrpc.SignMessageResponse\DC2J\n\
    \\rVerifyMessage\DC2\ESC.lnrpc.VerifyMessageRequest\SUB\FS.lnrpc.VerifyMessageResponse\DC2D\n\
    \\vConnectPeer\DC2\EM.lnrpc.ConnectPeerRequest\SUB\SUB.lnrpc.ConnectPeerResponse\DC2M\n\
    \\SODisconnectPeer\DC2\FS.lnrpc.DisconnectPeerRequest\SUB\GS.lnrpc.DisconnectPeerResponse\DC2>\n\
    \\tListPeers\DC2\ETB.lnrpc.ListPeersRequest\SUB\CAN.lnrpc.ListPeersResponse\DC2G\n\
    \\DC3SubscribePeerEvents\DC2\FS.lnrpc.PeerEventSubscription\SUB\DLE.lnrpc.PeerEvent0\SOH\DC28\n\
    \\aGetInfo\DC2\NAK.lnrpc.GetInfoRequest\SUB\SYN.lnrpc.GetInfoResponse\DC2P\n\
    \\SIGetRecoveryInfo\DC2\GS.lnrpc.GetRecoveryInfoRequest\SUB\RS.lnrpc.GetRecoveryInfoResponse\DC2P\n\
    \\SIPendingChannels\DC2\GS.lnrpc.PendingChannelsRequest\SUB\RS.lnrpc.PendingChannelsResponse\DC2G\n\
    \\fListChannels\DC2\SUB.lnrpc.ListChannelsRequest\SUB\ESC.lnrpc.ListChannelsResponse\DC2V\n\
    \\SYNSubscribeChannelEvents\DC2\US.lnrpc.ChannelEventSubscription\SUB\EM.lnrpc.ChannelEventUpdate0\SOH\DC2M\n\
    \\SOClosedChannels\DC2\FS.lnrpc.ClosedChannelsRequest\SUB\GS.lnrpc.ClosedChannelsResponse\DC2A\n\
    \\SIOpenChannelSync\DC2\EM.lnrpc.OpenChannelRequest\SUB\DC3.lnrpc.ChannelPoint\DC2C\n\
    \\vOpenChannel\DC2\EM.lnrpc.OpenChannelRequest\SUB\ETB.lnrpc.OpenStatusUpdate0\SOH\DC2L\n\
    \\DLEFundingStateStep\DC2\ESC.lnrpc.FundingTransitionMsg\SUB\ESC.lnrpc.FundingStateStepResp\DC2P\n\
    \\SIChannelAcceptor\DC2\FS.lnrpc.ChannelAcceptResponse\SUB\ESC.lnrpc.ChannelAcceptRequest(\SOH0\SOH\DC2F\n\
    \\fCloseChannel\DC2\SUB.lnrpc.CloseChannelRequest\SUB\CAN.lnrpc.CloseStatusUpdate0\SOH\DC2M\n\
    \\SOAbandonChannel\DC2\FS.lnrpc.AbandonChannelRequest\SUB\GS.lnrpc.AbandonChannelResponse\DC2?\n\
    \\vSendPayment\DC2\DC2.lnrpc.SendRequest\SUB\DC3.lnrpc.SendResponse\"\ETX\136\STX\SOH(\SOH0\SOH\DC2:\n\
    \\SISendPaymentSync\DC2\DC2.lnrpc.SendRequest\SUB\DC3.lnrpc.SendResponse\DC2F\n\
    \\vSendToRoute\DC2\EM.lnrpc.SendToRouteRequest\SUB\DC3.lnrpc.SendResponse\"\ETX\136\STX\SOH(\SOH0\SOH\DC2A\n\
    \\SISendToRouteSync\DC2\EM.lnrpc.SendToRouteRequest\SUB\DC3.lnrpc.SendResponse\DC27\n\
    \\n\
    \AddInvoice\DC2\SO.lnrpc.Invoice\SUB\EM.lnrpc.AddInvoiceResponse\DC2E\n\
    \\fListInvoices\DC2\EM.lnrpc.ListInvoiceRequest\SUB\SUB.lnrpc.ListInvoiceResponse\DC23\n\
    \\rLookupInvoice\DC2\DC2.lnrpc.PaymentHash\SUB\SO.lnrpc.Invoice\DC2A\n\
    \\DC1SubscribeInvoices\DC2\SUB.lnrpc.InvoiceSubscription\SUB\SO.lnrpc.Invoice0\SOH\DC22\n\
    \\fDecodePayReq\DC2\DC3.lnrpc.PayReqString\SUB\r.lnrpc.PayReq\DC2G\n\
    \\fListPayments\DC2\SUB.lnrpc.ListPaymentsRequest\SUB\ESC.lnrpc.ListPaymentsResponse\DC2V\n\
    \\DC1DeleteAllPayments\DC2\US.lnrpc.DeleteAllPaymentsRequest\SUB .lnrpc.DeleteAllPaymentsResponse\DC2@\n\
    \\rDescribeGraph\DC2\SUB.lnrpc.ChannelGraphRequest\SUB\DC3.lnrpc.ChannelGraph\DC2G\n\
    \\SOGetNodeMetrics\DC2\EM.lnrpc.NodeMetricsRequest\SUB\SUB.lnrpc.NodeMetricsResponse\DC29\n\
    \\vGetChanInfo\DC2\SYN.lnrpc.ChanInfoRequest\SUB\DC2.lnrpc.ChannelEdge\DC26\n\
    \\vGetNodeInfo\DC2\SYN.lnrpc.NodeInfoRequest\SUB\SI.lnrpc.NodeInfo\DC2D\n\
    \\vQueryRoutes\DC2\EM.lnrpc.QueryRoutesRequest\SUB\SUB.lnrpc.QueryRoutesResponse\DC2?\n\
    \\SOGetNetworkInfo\DC2\EM.lnrpc.NetworkInfoRequest\SUB\DC2.lnrpc.NetworkInfo\DC25\n\
    \\n\
    \StopDaemon\DC2\DC2.lnrpc.StopRequest\SUB\DC3.lnrpc.StopResponse\DC2W\n\
    \\NAKSubscribeChannelGraph\DC2 .lnrpc.GraphTopologySubscription\SUB\SUB.lnrpc.GraphTopologyUpdate0\SOH\DC2A\n\
    \\n\
    \DebugLevel\DC2\CAN.lnrpc.DebugLevelRequest\SUB\EM.lnrpc.DebugLevelResponse\DC2>\n\
    \\tFeeReport\DC2\ETB.lnrpc.FeeReportRequest\SUB\CAN.lnrpc.FeeReportResponse\DC2N\n\
    \\DC3UpdateChannelPolicy\DC2\SUB.lnrpc.PolicyUpdateRequest\SUB\ESC.lnrpc.PolicyUpdateResponse\DC2V\n\
    \\DC1ForwardingHistory\DC2\US.lnrpc.ForwardingHistoryRequest\SUB .lnrpc.ForwardingHistoryResponse\DC2N\n\
    \\DC3ExportChannelBackup\DC2!.lnrpc.ExportChannelBackupRequest\SUB\DC4.lnrpc.ChannelBackup\DC2T\n\
    \\ETBExportAllChannelBackups\DC2\RS.lnrpc.ChanBackupExportRequest\SUB\EM.lnrpc.ChanBackupSnapshot\DC2N\n\
    \\DLEVerifyChanBackup\DC2\EM.lnrpc.ChanBackupSnapshot\SUB\US.lnrpc.VerifyChanBackupResponse\DC2V\n\
    \\NAKRestoreChannelBackups\DC2\US.lnrpc.RestoreChanBackupRequest\SUB\FS.lnrpc.RestoreBackupResponse\DC2X\n\
    \\ETBSubscribeChannelBackups\DC2 .lnrpc.ChannelBackupSubscription\SUB\EM.lnrpc.ChanBackupSnapshot0\SOH\DC2G\n\
    \\fBakeMacaroon\DC2\SUB.lnrpc.BakeMacaroonRequest\SUB\ESC.lnrpc.BakeMacaroonResponse\DC2P\n\
    \\SIListMacaroonIDs\DC2\GS.lnrpc.ListMacaroonIDsRequest\SUB\RS.lnrpc.ListMacaroonIDsResponse\DC2S\n\
    \\DLEDeleteMacaroonID\DC2\RS.lnrpc.DeleteMacaroonIDRequest\SUB\US.lnrpc.DeleteMacaroonIDResponse\DC2P\n\
    \\SIListPermissions\DC2\GS.lnrpc.ListPermissionsRequest\SUB\RS.lnrpc.ListPermissionsResponseB'Z%github.com/lightningnetwork/lnd/lnrpcJ\205\234\b\n\
    \\a\DC2\ENQ\STX\NUL\176\RS\SOH\n\
    \\130\SOH\n\
    \\SOH\f\DC2\ETX\STX\NUL\DC22x source https://raw.githubusercontent.com/lightningnetwork/lnd/c733c139e95a6ef4e5f9ac88b43328ac96c333ef/lnrpc/rpc.proto\n\
    \\n\
    \\b\n\
    \\SOH\STX\DC2\ETX\EOT\NUL\SO\n\
    \\b\n\
    \\SOH\b\DC2\ETX\ACK\NUL<\n\
    \\t\n\
    \\STX\b\v\DC2\ETX\ACK\NUL<\n\
    \\228\ENQ\n\
    \\STX\ACK\NUL\DC2\ENQ\ESC\NUL\135\EOT\SOH\SUB1 Lightning is the main RPC server of the daemon.\n\
    \2\163\ENQ\n\
    \ Comments in this file will be directly parsed into the API\n\
    \ Documentation as descriptions of the associated method, message, or field.\n\
    \ These descriptions should go right above the definition of the object, and\n\
    \ can be in either block or // comment format.\n\
    \\n\
    \ An RPC method can be matched to an lncli command by placing a line in the\n\
    \ beginning of the description in exactly the following format:\n\
    \ lncli: `methodname`\n\
    \\n\
    \ Failure to specify the exact name of the command will cause documentation\n\
    \ generation to fail.\n\
    \\n\
    \ More information on how exactly the gRPC documentation is generated from\n\
    \ this proto file can be found here:\n\
    \ https://github.com/lightninglabs/lightning-api\n\
    \\n\
    \\n\
    \\n\
    \\ETX\ACK\NUL\SOH\DC2\ETX\ESC\b\DC1\n\
    \\205\SOH\n\
    \\EOT\ACK\NUL\STX\NUL\DC2\ETX!\EOTM\SUB\191\SOH lncli: `walletbalance`\n\
    \WalletBalance returns total unspent outputs(confirmed and unconfirmed), all\n\
    \confirmed unspent outputs and all unconfirmed unspent outputs under control\n\
    \of the wallet.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\NUL\SOH\DC2\ETX!\b\NAK\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\NUL\STX\DC2\ETX!\ETB+\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\NUL\ETX\DC2\ETX!6K\n\
    \\203\SOH\n\
    \\EOT\ACK\NUL\STX\SOH\DC2\ETX(\EOTP\SUB\189\SOH lncli: `channelbalance`\n\
    \ChannelBalance returns a report on the total funds across all open channels,\n\
    \categorized in local/remote, pending local/remote and unsettled local/remote\n\
    \balances.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\SOH\SOH\DC2\ETX(\b\SYN\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\SOH\STX\DC2\ETX(\CAN-\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\SOH\ETX\DC2\ETX(8N\n\
    \\130\SOH\n\
    \\EOT\ACK\NUL\STX\STX\DC2\ETX.\EOTN\SUBu lncli: `listchaintxns`\n\
    \GetTransactions returns a list describing all the known transactions\n\
    \relevant to the wallet.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\STX\SOH\DC2\ETX.\b\ETB\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\STX\STX\DC2\ETX.\EM/\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\STX\ETX\DC2\ETX.:L\n\
    \\159\ETX\n\
    \\EOT\ACK\NUL\STX\ETX\DC2\ETX9\EOTG\SUB\145\ETX lncli: `estimatefee`\n\
    \EstimateFee asks the chain backend to estimate the fee rate and total fees\n\
    \for a transaction that pays to multiple specified outputs.\n\
    \\n\
    \When using REST, the `AddrToAmount` map type can be set by appending\n\
    \`&AddrToAmount[<address>]=<amount_to_send>` to the URL. Unfortunately this\n\
    \map type doesn't appear in the REST API documentation because of a bug in\n\
    \the grpc-gateway library.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ETX\SOH\DC2\ETX9\b\DC3\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ETX\STX\DC2\ETX9\NAK'\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ETX\ETX\DC2\ETX92E\n\
    \\211\STX\n\
    \\EOT\ACK\NUL\STX\EOT\DC2\ETXB\EOTA\SUB\197\STX lncli: `sendcoins`\n\
    \SendCoins executes a request to send coins to a particular address. Unlike\n\
    \SendMany, this RPC call only allows creating a single output at a time. If\n\
    \neither target_conf, or sat_per_vbyte are set, then the internal wallet will\n\
    \consult its fee model to determine a fee for the default confirmation\n\
    \target.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\EOT\SOH\DC2\ETXB\b\DC1\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\EOT\STX\DC2\ETXB\DC3#\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\EOT\ETX\DC2\ETXB.?\n\
    \\222\SOH\n\
    \\EOT\ACK\NUL\STX\ENQ\DC2\ETXJ\EOTG\SUB\208\SOH lncli: `listunspent`\n\
    \Deprecated, use walletrpc.ListUnspent instead.\n\
    \\n\
    \ListUnspent returns a list of all utxos spendable by the wallet with a\n\
    \number of confirmations between the specified minimum and maximum.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ENQ\SOH\DC2\ETXJ\b\DC3\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ENQ\STX\DC2\ETXJ\NAK'\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ENQ\ETX\DC2\ETXJ2E\n\
    \\182\SOH\n\
    \\EOT\ACK\NUL\STX\ACK\DC2\EOTQ\EOTR%\SUB\167\SOH\n\
    \SubscribeTransactions creates a uni-directional stream from the server to\n\
    \the client in which any newly discovered transactions relevant to the\n\
    \wallet are sent over.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ACK\SOH\DC2\ETXQ\b\GS\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ACK\STX\DC2\ETXQ\US5\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ACK\ACK\DC2\ETXR\DC1\ETB\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\ACK\ETX\DC2\ETXR\CAN#\n\
    \\161\STX\n\
    \\EOT\ACK\NUL\STX\a\DC2\ETXZ\EOT>\SUB\147\STX lncli: `sendmany`\n\
    \SendMany handles a request for a transaction that creates multiple specified\n\
    \outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then\n\
    \the internal wallet will consult its fee model to determine a fee for the\n\
    \default confirmation target.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\a\SOH\DC2\ETXZ\b\DLE\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\a\STX\DC2\ETXZ\DC2!\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\a\ETX\DC2\ETXZ,<\n\
    \f\n\
    \\EOT\ACK\NUL\STX\b\DC2\ETX_\EOTD\SUBY lncli: `newaddress`\n\
    \NewAddress creates a new address under control of the local wallet.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\b\SOH\DC2\ETX_\b\DC2\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\b\STX\DC2\ETX_\DC4%\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\b\ETX\DC2\ETX_0B\n\
    \\249\SOH\n\
    \\EOT\ACK\NUL\STX\t\DC2\ETXf\EOTG\SUB\235\SOH lncli: `signmessage`\n\
    \SignMessage signs a message with this node's private key. The returned\n\
    \signature string is `zbase32` encoded and pubkey recoverable, meaning that\n\
    \only the message digest and signature are needed for verification.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\t\SOH\DC2\ETXf\b\DC3\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\t\STX\DC2\ETXf\NAK'\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\t\ETX\DC2\ETXf2E\n\
    \\189\STX\n\
    \\EOT\ACK\NUL\STX\n\
    \\DC2\ETXn\EOTM\SUB\175\STX lncli: `verifymessage`\n\
    \VerifyMessage verifies a signature over a msg. The signature must be\n\
    \zbase32 encoded and signed by an active node in the resident node's\n\
    \channel database. In addition to returning the validity of the signature,\n\
    \VerifyMessage also returns the recovered pubkey from the signature.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\n\
    \\SOH\DC2\ETXn\b\NAK\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\n\
    \\STX\DC2\ETXn\ETB+\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\n\
    \\ETX\DC2\ETXn6K\n\
    \\233\SOH\n\
    \\EOT\ACK\NUL\STX\v\DC2\ETXu\EOTG\SUB\219\SOH lncli: `connect`\n\
    \ConnectPeer attempts to establish a connection to a remote peer. This is at\n\
    \the networking level, and is used for communication between nodes. This is\n\
    \distinct from establishing a channel with a peer.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\v\SOH\DC2\ETXu\b\DC3\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\v\STX\DC2\ETXu\NAK'\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\v\ETX\DC2\ETXu2E\n\
    \\251\SOH\n\
    \\EOT\ACK\NUL\STX\f\DC2\ETX|\EOTP\SUB\237\SOH lncli: `disconnect`\n\
    \DisconnectPeer attempts to disconnect one peer from another identified by a\n\
    \given pubKey. In the case that we currently have a pending or active channel\n\
    \with the target peer, then this action will be not be allowed.\n\
    \\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\f\SOH\DC2\ETX|\b\SYN\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\f\STX\DC2\ETX|\CAN-\n\
    \\f\n\
    \\ENQ\ACK\NUL\STX\f\ETX\DC2\ETX|8N\n\
    \e\n\
    \\EOT\ACK\NUL\STX\r\DC2\EOT\129\SOH\EOTA\SUBW lncli: `listpeers`\n\
    \ListPeers returns a verbose listing of all currently active peers.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\r\SOH\DC2\EOT\129\SOH\b\DC1\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\r\STX\DC2\EOT\129\SOH\DC3#\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\r\ETX\DC2\EOT\129\SOH.?\n\
    \\212\SOH\n\
    \\EOT\ACK\NUL\STX\SO\DC2\EOT\136\SOH\EOTO\SUB\197\SOH\n\
    \SubscribePeerEvents creates a uni-directional stream from the server to\n\
    \the client in which any events relevant to the state of peers are sent\n\
    \over. Events include peers going online and offline.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SO\SOH\DC2\EOT\136\SOH\b\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SO\STX\DC2\EOT\136\SOH\GS2\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SO\ACK\DC2\EOT\136\SOH=C\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SO\ETX\DC2\EOT\136\SOHDM\n\
    \\233\SOH\n\
    \\EOT\ACK\NUL\STX\SI\DC2\EOT\143\SOH\EOT;\SUB\218\SOH lncli: `getinfo`\n\
    \GetInfo returns general information concerning the lightning node including\n\
    \it's identity pubkey, alias, the chains it is connected to, and information\n\
    \concerning the number of open+pending channels.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SI\SOH\DC2\EOT\143\SOH\b\SI\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SI\STX\DC2\EOT\143\SOH\DC1\US\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SI\ETX\DC2\EOT\143\SOH*9\n\
    \\216\SOH\n\
    \\EOT\ACK\NUL\STX\DLE\DC2\ACK\150\SOH\EOT\151\SOH*\SUB\199\SOH* lncli: `getrecoveryinfo`\n\
    \GetRecoveryInfo returns information concerning the recovery mode including\n\
    \whether it's in a recovery mode, whether the recovery is finished, and the\n\
    \progress made so far.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DLE\SOH\DC2\EOT\150\SOH\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DLE\STX\DC2\EOT\150\SOH\EM/\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DLE\ETX\DC2\EOT\151\SOH\DC1(\n\
    \\255\STX\n\
    \\EOT\ACK\NUL\STX\DC1\DC2\ACK\160\SOH\EOT\161\SOH*\SUB\191\STX lncli: `pendingchannels`\n\
    \PendingChannels returns a list of all the channels that are currently\n\
    \considered \"pending\". A channel is pending if it has finished the funding\n\
    \workflow and is waiting for confirmations for the funding txn, or is in the\n\
    \process of closure, either initiated cooperatively or non-cooperatively.\n\
    \2- TODO(roasbeef): merge with below with bool?\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC1\SOH\DC2\EOT\160\SOH\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC1\STX\DC2\EOT\160\SOH\EM/\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC1\ETX\DC2\EOT\161\SOH\DC1(\n\
    \\133\SOH\n\
    \\EOT\ACK\NUL\STX\DC2\DC2\EOT\167\SOH\EOTJ\SUBw lncli: `listchannels`\n\
    \ListChannels returns a description of all the open channels that this node\n\
    \is a participant in.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC2\SOH\DC2\EOT\167\SOH\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC2\STX\DC2\EOT\167\SOH\SYN)\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC2\ETX\DC2\EOT\167\SOH4H\n\
    \\254\SOH\n\
    \\EOT\ACK\NUL\STX\DC3\DC2\ACK\175\SOH\EOT\176\SOH,\SUB\237\SOH\n\
    \SubscribeChannelEvents creates a uni-directional stream from the server to\n\
    \the client in which any updates relevant to the state of the channels are\n\
    \sent over. Events include new active channels, inactive channels, and closed\n\
    \channels.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC3\SOH\DC2\EOT\175\SOH\b\RS\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC3\STX\DC2\EOT\175\SOH 8\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC3\ACK\DC2\EOT\176\SOH\DC1\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC3\ETX\DC2\EOT\176\SOH\CAN*\n\
    \\140\SOH\n\
    \\EOT\ACK\NUL\STX\DC4\DC2\EOT\182\SOH\EOTP\SUB~ lncli: `closedchannels`\n\
    \ClosedChannels returns a description of all the closed channels that\n\
    \this node was a participant in.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC4\SOH\DC2\EOT\182\SOH\b\SYN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC4\STX\DC2\EOT\182\SOH\CAN-\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\DC4\ETX\DC2\EOT\182\SOH8N\n\
    \\249\SOH\n\
    \\EOT\ACK\NUL\STX\NAK\DC2\EOT\190\SOH\EOTD\SUB\234\SOH\n\
    \OpenChannelSync is a synchronous version of the OpenChannel RPC call. This\n\
    \call is meant to be consumed by clients to the REST proxy. As with all\n\
    \other sync calls, all byte slices are intended to be populated as hex\n\
    \encoded strings.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\NAK\SOH\DC2\EOT\190\SOH\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\NAK\STX\DC2\EOT\190\SOH\EM+\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\NAK\ETX\DC2\EOT\190\SOH6B\n\
    \\219\EOT\n\
    \\EOT\ACK\NUL\STX\SYN\DC2\EOT\202\SOH\EOTK\SUB\204\EOT lncli: `openchannel`\n\
    \OpenChannel attempts to open a singly funded channel specified in the\n\
    \request to a remote peer. Users are able to specify a target number of\n\
    \blocks that the funding transaction should be confirmed in, or a manual fee\n\
    \rate to us for the funding transaction. If neither are specified, then a\n\
    \lax block confirmation target is used. Each OpenStatusUpdate will return\n\
    \the pending channel ID of the in-progress channel. Depending on the\n\
    \arguments specified in the OpenChannelRequest, this pending channel ID can\n\
    \then be used to manually progress the channel funding flow.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SYN\SOH\DC2\EOT\202\SOH\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SYN\STX\DC2\EOT\202\SOH\NAK'\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SYN\ACK\DC2\EOT\202\SOH28\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SYN\ETX\DC2\EOT\202\SOH9I\n\
    \\184\EOT\n\
    \\EOT\ACK\NUL\STX\ETB\DC2\EOT\214\SOH\EOTO\SUB\169\EOT\n\
    \FundingStateStep is an advanced funding related call that allows the caller\n\
    \to either execute some preparatory steps for a funding workflow, or\n\
    \manually progress a funding workflow. The primary way a funding flow is\n\
    \identified is via its pending channel ID. As an example, this method can be\n\
    \used to specify that we're expecting a funding flow for a particular\n\
    \pending channel ID, for which we need to use specific parameters.\n\
    \Alternatively, this can be used to interactively drive PSBT signing for\n\
    \funding for partially complete funding transactions.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ETB\SOH\DC2\EOT\214\SOH\b\CAN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ETB\STX\DC2\EOT\214\SOH\SUB.\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ETB\ETX\DC2\EOT\214\SOH9M\n\
    \\221\STX\n\
    \\EOT\ACK\NUL\STX\CAN\DC2\ACK\223\SOH\EOT\224\SOH.\SUB\204\STX\n\
    \ChannelAcceptor dispatches a bi-directional streaming RPC in which\n\
    \OpenChannel requests are sent to the client and the client responds with\n\
    \a boolean that tells LND whether or not to accept the channel. This allows\n\
    \node operators to specify their own criteria for accepting inbound channels\n\
    \through a single persistent connection.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\CAN\SOH\DC2\EOT\223\SOH\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\CAN\ENQ\DC2\EOT\223\SOH\EM\US\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\CAN\STX\DC2\EOT\223\SOH 5\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\CAN\ACK\DC2\EOT\224\SOH\DC1\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\CAN\ETX\DC2\EOT\224\SOH\CAN,\n\
    \\155\EOT\n\
    \\EOT\ACK\NUL\STX\EM\DC2\EOT\235\SOH\EOTN\SUB\140\EOT lncli: `closechannel`\n\
    \CloseChannel attempts to close an active channel identified by its channel\n\
    \outpoint (ChannelPoint). The actions of this method can additionally be\n\
    \augmented to attempt a force close after a timeout period in the case of an\n\
    \inactive peer. If a non-force close (cooperative closure) is requested,\n\
    \then the user can specify either a target number of blocks until the\n\
    \closure transaction is confirmed, or a manual fee rate. If neither are\n\
    \specified, then a default lax, block confirmation target is used.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\EM\SOH\DC2\EOT\235\SOH\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\EM\STX\DC2\EOT\235\SOH\SYN)\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\EM\ACK\DC2\EOT\235\SOH4:\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\EM\ETX\DC2\EOT\235\SOH;L\n\
    \\164\ETX\n\
    \\EOT\ACK\NUL\STX\SUB\DC2\EOT\245\SOH\EOTP\SUB\149\ETX lncli: `abandonchannel`\n\
    \AbandonChannel removes all channel state from the database except for a\n\
    \close summary. This method can be used to get rid of permanently unusable\n\
    \channels due to bugs fixed in newer versions of lnd. This method can also be\n\
    \used to remove externally funded channels where the funding transaction was\n\
    \never broadcast. Only available for non-externally funded channels in dev\n\
    \build.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SUB\SOH\DC2\EOT\245\SOH\b\SYN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SUB\STX\DC2\EOT\245\SOH\CAN-\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\SUB\ETX\DC2\EOT\245\SOH8N\n\
    \\234\STX\n\
    \\EOT\ACK\NUL\STX\ESC\DC2\ACK\254\SOH\EOT\128\STX\ENQ\SUB\217\STX lncli: `sendpayment`\n\
    \Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a\n\
    \bi-directional streaming RPC for sending payments through the Lightning\n\
    \Network. A single RPC invocation creates a persistent bi-directional\n\
    \stream allowing clients to rapidly send payments through the Lightning\n\
    \Network with a single persistent connection.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\SOH\DC2\EOT\254\SOH\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\ENQ\DC2\EOT\254\SOH\NAK\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\STX\DC2\EOT\254\SOH\FS'\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\ACK\DC2\EOT\254\SOH28\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\ETX\DC2\EOT\254\SOH9E\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\ESC\EOT\DC2\EOT\255\SOH\b!\n\
    \\SO\n\
    \\ACK\ACK\NUL\STX\ESC\EOT!\DC2\EOT\255\SOH\b!\n\
    \\147\STX\n\
    \\EOT\ACK\NUL\STX\FS\DC2\EOT\136\STX\EOT=\SUB\132\STX\n\
    \SendPaymentSync is the synchronous non-streaming version of SendPayment.\n\
    \This RPC is intended to be consumed by clients of the REST proxy.\n\
    \Additionally, this RPC expects the destination's public key and the payment\n\
    \hash (if any) to be encoded as hex strings.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\FS\SOH\DC2\EOT\136\STX\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\FS\STX\DC2\EOT\136\STX\EM$\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\FS\ETX\DC2\EOT\136\STX/;\n\
    \\208\STX\n\
    \\EOT\ACK\NUL\STX\GS\DC2\ACK\145\STX\EOT\147\STX\ENQ\SUB\191\STX lncli: `sendtoroute`\n\
    \Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional\n\
    \streaming RPC for sending payment through the Lightning Network. This\n\
    \method differs from SendPayment in that it allows users to specify a full\n\
    \route manually. This can be used for things like rebalancing, and atomic\n\
    \swaps.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\SOH\DC2\EOT\145\STX\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\ENQ\DC2\EOT\145\STX\NAK\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\STX\DC2\EOT\145\STX\FS.\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\ACK\DC2\EOT\145\STX9?\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\ETX\DC2\EOT\145\STX@L\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\GS\EOT\DC2\EOT\146\STX\b!\n\
    \\SO\n\
    \\ACK\ACK\NUL\STX\GS\EOT!\DC2\EOT\146\STX\b!\n\
    \\130\SOH\n\
    \\EOT\ACK\NUL\STX\RS\DC2\EOT\153\STX\EOTD\SUBt\n\
    \SendToRouteSync is a synchronous version of SendToRoute. It Will block\n\
    \until the payment either fails or succeeds.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\RS\SOH\DC2\EOT\153\STX\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\RS\STX\DC2\EOT\153\STX\EM+\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\RS\ETX\DC2\EOT\153\STX6B\n\
    \\202\SOH\n\
    \\EOT\ACK\NUL\STX\US\DC2\EOT\160\STX\EOT:\SUB\187\SOH lncli: `addinvoice`\n\
    \AddInvoice attempts to add a new invoice to the invoice database. Any\n\
    \duplicated invoices are rejected, therefore all invoices *must* have a\n\
    \unique payment preimage.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\US\SOH\DC2\EOT\160\STX\b\DC2\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\US\STX\DC2\EOT\160\STX\DC4\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\US\ETX\DC2\EOT\160\STX&8\n\
    \\172\EOT\n\
    \\EOT\ACK\NUL\STX \DC2\EOT\171\STX\EOTH\SUB\157\EOT lncli: `listinvoices`\n\
    \ListInvoices returns a list of all the invoices currently stored within the\n\
    \database. Any active debug invoices are ignored. It has full support for\n\
    \paginated responses, allowing users to query for specific invoices through\n\
    \their add_index. This can be done by using either the first_index_offset or\n\
    \last_index_offset fields included in the response as the index_offset of the\n\
    \next request. By default, the first 100 invoices created will be returned.\n\
    \Backwards pagination is also supported through the Reversed flag.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX \SOH\DC2\EOT\171\STX\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX \STX\DC2\EOT\171\STX\SYN(\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX \ETX\DC2\EOT\171\STX3F\n\
    \\197\SOH\n\
    \\EOT\ACK\NUL\STX!\DC2\EOT\178\STX\EOT6\SUB\182\SOH lncli: `lookupinvoice`\n\
    \LookupInvoice attempts to look up an invoice according to its payment hash.\n\
    \The passed payment hash *must* be exactly 32 bytes, if not, an error is\n\
    \returned.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX!\SOH\DC2\EOT\178\STX\b\NAK\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX!\STX\DC2\EOT\178\STX\ETB\"\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX!\ETX\DC2\EOT\178\STX-4\n\
    \\247\EOT\n\
    \\EOT\ACK\NUL\STX\"\DC2\EOT\191\STX\EOTI\SUB\232\EOT\n\
    \SubscribeInvoices returns a uni-directional stream (server -> client) for\n\
    \notifying the client of newly added/settled invoices. The caller can\n\
    \optionally specify the add_index and/or the settle_index. If the add_index\n\
    \is specified, then we'll first start by sending add invoice events for all\n\
    \invoices with an add_index greater than the specified value. If the\n\
    \settle_index is specified, the next, we'll send out all settle events for\n\
    \invoices with a settle_index greater than the specified value. One or both\n\
    \of these fields can be set. If no fields are set, then we'll only send out\n\
    \the latest add/settle events.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\"\SOH\DC2\EOT\191\STX\b\EM\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\"\STX\DC2\EOT\191\STX\ESC.\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\"\ACK\DC2\EOT\191\STX9?\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX\"\ETX\DC2\EOT\191\STX@G\n\
    \\201\SOH\n\
    \\EOT\ACK\NUL\STX#\DC2\EOT\198\STX\EOT5\SUB\186\SOH lncli: `decodepayreq`\n\
    \DecodePayReq takes an encoded payment request string and attempts to decode\n\
    \it, returning a full description of the conditions encoded within the\n\
    \payment request.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX#\SOH\DC2\EOT\198\STX\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX#\STX\DC2\EOT\198\STX\SYN\"\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX#\ETX\DC2\EOT\198\STX-3\n\
    \[\n\
    \\EOT\ACK\NUL\STX$\DC2\EOT\203\STX\EOTJ\SUBM lncli: `listpayments`\n\
    \ListPayments returns a list of all outgoing payments.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX$\SOH\DC2\EOT\203\STX\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX$\STX\DC2\EOT\203\STX\SYN)\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX$\ETX\DC2\EOT\203\STX4H\n\
    \J\n\
    \\EOT\ACK\NUL\STX%\DC2\ACK\208\STX\EOT\209\STX,\SUB:\n\
    \DeleteAllPayments deletes all outgoing payments from DB.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX%\SOH\DC2\EOT\208\STX\b\EM\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX%\STX\DC2\EOT\208\STX\ESC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX%\ETX\DC2\EOT\209\STX\DC1*\n\
    \\175\ETX\n\
    \\EOT\ACK\NUL\STX&\DC2\EOT\219\STX\EOTC\SUB\160\ETX lncli: `describegraph`\n\
    \DescribeGraph returns a description of the latest graph state from the\n\
    \point of view of the node. The graph information is partitioned into two\n\
    \components: all the nodes/vertexes, and all the edges that connect the\n\
    \vertexes themselves. As this is a directed graph, the edges also contain\n\
    \the node directional specific routing policy which includes: the time lock\n\
    \delta, fee information, etc.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX&\SOH\DC2\EOT\219\STX\b\NAK\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX&\STX\DC2\EOT\219\STX\ETB*\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX&\ETX\DC2\EOT\219\STX5A\n\
    \\186\SOH\n\
    \\EOT\ACK\NUL\STX'\DC2\EOT\225\STX\EOTJ\SUB\171\SOH lncli: `getnodemetrics`\n\
    \GetNodeMetrics returns node metrics calculated from the graph. Currently\n\
    \the only supported metric is betweenness centrality of individual nodes.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX'\SOH\DC2\EOT\225\STX\b\SYN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX'\STX\DC2\EOT\225\STX\CAN*\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX'\ETX\DC2\EOT\225\STX5H\n\
    \\139\STX\n\
    \\EOT\ACK\NUL\STX(\DC2\EOT\233\STX\EOT<\SUB\252\SOH lncli: `getchaninfo`\n\
    \GetChanInfo returns the latest authenticated network announcement for the\n\
    \given channel identified by its channel ID: an 8-byte integer which\n\
    \uniquely identifies the location of transaction's funding output within the\n\
    \blockchain.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX(\SOH\DC2\EOT\233\STX\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX(\STX\DC2\EOT\233\STX\NAK$\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX(\ETX\DC2\EOT\233\STX/:\n\
    \\183\SOH\n\
    \\EOT\ACK\NUL\STX)\DC2\EOT\239\STX\EOT9\SUB\168\SOH lncli: `getnodeinfo`\n\
    \GetNodeInfo returns the latest advertised, aggregated, and authenticated\n\
    \channel information for the specified node identified by its public key.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX)\SOH\DC2\EOT\239\STX\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX)\STX\DC2\EOT\239\STX\NAK$\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX)\ETX\DC2\EOT\239\STX/7\n\
    \\160\ENQ\n\
    \\EOT\ACK\NUL\STX*\DC2\EOT\253\STX\EOTG\SUB\145\ENQ lncli: `queryroutes`\n\
    \QueryRoutes attempts to query the daemon's Channel Router for a possible\n\
    \route to a target destination capable of carrying a specific amount of\n\
    \satoshis. The returned route contains the full details required to craft and\n\
    \send an HTLC, also including the necessary information that should be\n\
    \present within the Sphinx packet encapsulated within the HTLC.\n\
    \\n\
    \When using REST, the `dest_custom_records` map type can be set by appending\n\
    \`&dest_custom_records[<record_number>]=<record_data_base64_url_encoded>`\n\
    \to the URL. Unfortunately this map type doesn't appear in the REST API\n\
    \documentation because of a bug in the grpc-gateway library.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX*\SOH\DC2\EOT\253\STX\b\DC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX*\STX\DC2\EOT\253\STX\NAK'\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX*\ETX\DC2\EOT\253\STX2E\n\
    \\146\SOH\n\
    \\EOT\ACK\NUL\STX+\DC2\EOT\131\ETX\EOTB\SUB\131\SOH lncli: `getnetworkinfo`\n\
    \GetNetworkInfo returns some basic stats about the known channel graph from\n\
    \the point of view of the node.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX+\SOH\DC2\EOT\131\ETX\b\SYN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX+\STX\DC2\EOT\131\ETX\CAN*\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX+\ETX\DC2\EOT\131\ETX5@\n\
    \\141\SOH\n\
    \\EOT\ACK\NUL\STX,\DC2\EOT\137\ETX\EOT8\SUB\DEL lncli: `stop`\n\
    \StopDaemon will send a shutdown request to the interrupt handler, triggering\n\
    \a graceful shutdown of the daemon.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX,\SOH\DC2\EOT\137\ETX\b\DC2\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX,\STX\DC2\EOT\137\ETX\DC4\US\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX,\ETX\DC2\EOT\137\ETX*6\n\
    \\180\ETX\n\
    \\EOT\ACK\NUL\STX-\DC2\ACK\147\ETX\EOT\148\ETX-\SUB\163\ETX\n\
    \SubscribeChannelGraph launches a streaming RPC that allows the caller to\n\
    \receive notifications upon any changes to the channel graph topology from\n\
    \the point of view of the responding node. Events notified include: new\n\
    \nodes coming online, nodes updating their authenticated attributes, new\n\
    \channels being advertised, updates in the routing policy for a directional\n\
    \channel edge, and when channels are closed on-chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX-\SOH\DC2\EOT\147\ETX\b\GS\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX-\STX\DC2\EOT\147\ETX\US8\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX-\ACK\DC2\EOT\148\ETX\DC1\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX-\ETX\DC2\EOT\148\ETX\CAN+\n\
    \\139\STX\n\
    \\EOT\ACK\NUL\STX.\DC2\EOT\156\ETX\EOTD\SUB\252\SOH lncli: `debuglevel`\n\
    \DebugLevel allows a caller to programmatically set the logging verbosity of\n\
    \lnd. The logging can be targeted according to a coarse daemon-wide logging\n\
    \level, or in a granular fashion to specify the logging for a target\n\
    \sub-system.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX.\SOH\DC2\EOT\156\ETX\b\DC2\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX.\STX\DC2\EOT\156\ETX\DC4%\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX.\ETX\DC2\EOT\156\ETX0B\n\
    \\165\SOH\n\
    \\EOT\ACK\NUL\STX/\DC2\EOT\162\ETX\EOTA\SUB\150\SOH lncli: `feereport`\n\
    \FeeReport allows the caller to obtain a report detailing the current fee\n\
    \schedule enforced by the node globally for each channel.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX/\SOH\DC2\EOT\162\ETX\b\DC1\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX/\STX\DC2\EOT\162\ETX\DC3#\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX/\ETX\DC2\EOT\162\ETX.?\n\
    \\182\SOH\n\
    \\EOT\ACK\NUL\STX0\DC2\ACK\168\ETX\EOT\169\ETX'\SUB\165\SOH lncli: `updatechanpolicy`\n\
    \UpdateChannelPolicy allows the caller to update the fee schedule and\n\
    \channel policies for all channels globally, or a particular channel.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX0\SOH\DC2\EOT\168\ETX\b\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX0\STX\DC2\EOT\168\ETX\GS0\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX0\ETX\DC2\EOT\169\ETX\DC1%\n\
    \\133\ACK\n\
    \\EOT\ACK\NUL\STX1\DC2\ACK\184\ETX\EOT\185\ETX,\SUB\244\ENQ lncli: `fwdinghistory`\n\
    \ForwardingHistory allows the caller to query the htlcswitch for a record of\n\
    \all HTLCs forwarded within the target time range, and integer offset\n\
    \within that time range, for a maximum number of events. If no maximum number\n\
    \of events is specified, up to 100 events will be returned. If no time-range\n\
    \is specified, then events will be returned in the order that they occured.\n\
    \\n\
    \A list of forwarding events are returned. The size of each forwarding event\n\
    \is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.\n\
    \As a result each message can only contain 50k entries. Each response has\n\
    \the index offset of the last entry. The index offset can be provided to the\n\
    \request to allow the caller to skip a series of records.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX1\SOH\DC2\EOT\184\ETX\b\EM\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX1\STX\DC2\EOT\184\ETX\ESC3\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX1\ETX\DC2\EOT\185\ETX\DC1*\n\
    \\178\ETX\n\
    \\EOT\ACK\NUL\STX2\DC2\ACK\195\ETX\EOT\196\ETX \SUB\161\ETX lncli: `exportchanbackup`\n\
    \ExportChannelBackup attempts to return an encrypted static channel backup\n\
    \for the target channel identified by it channel point. The backup is\n\
    \encrypted with a key generated from the aezeed seed of the user. The\n\
    \returned backup can either be restored using the RestoreChannelBackup\n\
    \method once lnd is running, or via the InitWallet and UnlockWallet methods\n\
    \from the WalletUnlocker service.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX2\SOH\DC2\EOT\195\ETX\b\ESC\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX2\STX\DC2\EOT\195\ETX\GS7\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX2\ETX\DC2\EOT\196\ETX\DC1\RS\n\
    \\202\STX\n\
    \\EOT\ACK\NUL\STX3\DC2\ACK\205\ETX\EOT\206\ETX%\SUB\185\STX\n\
    \ExportAllChannelBackups returns static channel backups for all existing\n\
    \channels known to lnd. A set of regular singular static channel backups for\n\
    \each channel are returned. Additionally, a multi-channel backup is returned\n\
    \as well, which contains a single encrypted blob containing the backups of\n\
    \each channel.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX3\SOH\DC2\EOT\205\ETX\b\US\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX3\STX\DC2\EOT\205\ETX!8\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX3\ETX\DC2\EOT\206\ETX\DC1#\n\
    \\212\SOH\n\
    \\EOT\ACK\NUL\STX4\DC2\ACK\213\ETX\EOT\214\ETX+\SUB\195\SOH\n\
    \VerifyChanBackup allows a caller to verify the integrity of a channel backup\n\
    \snapshot. This method will accept either a packed Single or a packed Multi.\n\
    \Specifying both will result in an error.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX4\SOH\DC2\EOT\213\ETX\b\CAN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX4\STX\DC2\EOT\213\ETX\SUB,\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX4\ETX\DC2\EOT\214\ETX\DC1)\n\
    \\207\STX\n\
    \\EOT\ACK\NUL\STX5\DC2\ACK\222\ETX\EOT\223\ETX(\SUB\190\STX lncli: `restorechanbackup`\n\
    \RestoreChannelBackups accepts a set of singular channel backups, or a\n\
    \single encrypted multi-chan backup and attempts to recover any funds\n\
    \remaining within the channel. If we are able to unpack the backup, then the\n\
    \new channel will be shown under listchannels, as well as pending channels.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX5\SOH\DC2\EOT\222\ETX\b\GS\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX5\STX\DC2\EOT\222\ETX\US7\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX5\ETX\DC2\EOT\223\ETX\DC1&\n\
    \\223\ETX\n\
    \\EOT\ACK\NUL\STX6\DC2\ACK\234\ETX\EOT\235\ETX,\SUB\206\ETX\n\
    \SubscribeChannelBackups allows a client to sub-subscribe to the most up to\n\
    \date information concerning the state of all channel backups. Each time a\n\
    \new channel is added, we return the new set of channels, along with a\n\
    \multi-chan backup containing the backup info for all channels. Each time a\n\
    \channel is closed, we send a new update, which contains new new chan back\n\
    \ups, but the updated set of encrypted multi-chan backups with the closed\n\
    \channel(s) removed.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX6\SOH\DC2\EOT\234\ETX\b\US\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX6\STX\DC2\EOT\234\ETX!:\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX6\ACK\DC2\EOT\235\ETX\DC1\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX6\ETX\DC2\EOT\235\ETX\CAN*\n\
    \\194\SOH\n\
    \\EOT\ACK\NUL\STX7\DC2\EOT\242\ETX\EOTJ\SUB\179\SOH lncli: `bakemacaroon`\n\
    \BakeMacaroon allows the creation of a new macaroon with custom read and\n\
    \write permissions. No first-party caveats are added since this can be done\n\
    \offline.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX7\SOH\DC2\EOT\242\ETX\b\DC4\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX7\STX\DC2\EOT\242\ETX\SYN)\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX7\ETX\DC2\EOT\242\ETX4H\n\
    \d\n\
    \\EOT\ACK\NUL\STX8\DC2\ACK\247\ETX\EOT\248\ETX*\SUBT lncli: `listmacaroonids`\n\
    \ListMacaroonIDs returns all root key IDs that are in use.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX8\SOH\DC2\EOT\247\ETX\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX8\STX\DC2\EOT\247\ETX\EM/\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX8\ETX\DC2\EOT\248\ETX\DC1(\n\
    \\147\SOH\n\
    \\EOT\ACK\NUL\STX9\DC2\ACK\254\ETX\EOT\255\ETX+\SUB\130\SOH lncli: `deletemacaroonid`\n\
    \DeleteMacaroonID deletes the specified macaroon ID and invalidates all\n\
    \macaroons derived from that ID.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX9\SOH\DC2\EOT\254\ETX\b\CAN\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX9\STX\DC2\EOT\254\ETX\SUB1\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX9\ETX\DC2\EOT\255\ETX\DC1)\n\
    \\140\SOH\n\
    \\EOT\ACK\NUL\STX:\DC2\ACK\133\EOT\EOT\134\EOT*\SUB| lncli: `listpermissions`\n\
    \ListPermissions lists all RPC method URIs and their required macaroon\n\
    \permissions to access them.\n\
    \\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX:\SOH\DC2\EOT\133\EOT\b\ETB\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX:\STX\DC2\EOT\133\EOT\EM/\n\
    \\r\n\
    \\ENQ\ACK\NUL\STX:\ETX\DC2\EOT\134\EOT\DC1(\n\
    \\f\n\
    \\STX\EOT\NUL\DC2\ACK\137\EOT\NUL\155\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\NUL\SOH\DC2\EOT\137\EOT\b\f\n\
    \#\n\
    \\EOT\EOT\NUL\STX\NUL\DC2\EOT\139\EOT\EOT!\SUB\NAK The type of address\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\ACK\139\EOT\EOT\137\EOT\SO\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\EOT\139\EOT\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\EOT\139\EOT\DLE\FS\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\EOT\139\EOT\US \n\
    \\ESC\n\
    \\EOT\EOT\NUL\STX\SOH\DC2\EOT\142\EOT\EOT\ETB\SUB\r The address\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\SOH\EOT\DC2\ACK\142\EOT\EOT\139\EOT!\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\SOH\ENQ\DC2\EOT\142\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\EOT\142\EOT\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\EOT\142\EOT\NAK\SYN\n\
    \9\n\
    \\EOT\EOT\NUL\STX\STX\DC2\EOT\145\EOT\EOT\EM\SUB+ The value of the unspent coin in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ACK\145\EOT\EOT\142\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\STX\ENQ\DC2\EOT\145\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\EOT\145\EOT\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\EOT\145\EOT\ETB\CAN\n\
    \#\n\
    \\EOT\EOT\NUL\STX\ETX\DC2\EOT\148\EOT\EOT\EM\SUB\NAK The pkscript in hex\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\ETX\EOT\DC2\ACK\148\EOT\EOT\145\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ETX\ENQ\DC2\EOT\148\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ETX\SOH\DC2\EOT\148\EOT\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ETX\ETX\DC2\EOT\148\EOT\ETB\CAN\n\
    \-\n\
    \\EOT\EOT\NUL\STX\EOT\DC2\EOT\151\EOT\EOT\SUB\SUB\US The outpoint in format txid:n\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\EOT\EOT\DC2\ACK\151\EOT\EOT\148\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\EOT\ACK\DC2\EOT\151\EOT\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\EOT\SOH\DC2\EOT\151\EOT\r\NAK\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\EOT\ETX\DC2\EOT\151\EOT\CAN\EM\n\
    \8\n\
    \\EOT\EOT\NUL\STX\ENQ\DC2\EOT\154\EOT\EOT\FS\SUB* The number of confirmations for the Utxo\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NUL\STX\ENQ\EOT\DC2\ACK\154\EOT\EOT\151\EOT\SUB\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ENQ\ENQ\DC2\EOT\154\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ENQ\SOH\DC2\EOT\154\EOT\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\NUL\STX\ENQ\ETX\DC2\EOT\154\EOT\SUB\ESC\n\
    \\f\n\
    \\STX\EOT\SOH\DC2\ACK\157\EOT\NUL\187\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\SOH\SOH\DC2\EOT\157\EOT\b\DC3\n\
    \$\n\
    \\EOT\EOT\SOH\STX\NUL\DC2\EOT\159\EOT\EOT\ETB\SUB\SYN The transaction hash\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\ACK\159\EOT\EOT\157\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\EOT\159\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\EOT\159\EOT\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\EOT\159\EOT\NAK\SYN\n\
    \?\n\
    \\EOT\EOT\SOH\STX\SOH\DC2\EOT\162\EOT\EOT\NAK\SUB1 The transaction amount, denominated in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\SOH\EOT\DC2\ACK\162\EOT\EOT\159\EOT\ETB\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\SOH\ENQ\DC2\EOT\162\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\EOT\162\EOT\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\EOT\162\EOT\DC3\DC4\n\
    \+\n\
    \\EOT\EOT\SOH\STX\STX\DC2\EOT\165\EOT\EOT \SUB\GS The number of confirmations\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\STX\EOT\DC2\ACK\165\EOT\EOT\162\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\EOT\165\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\EOT\165\EOT\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\EOT\165\EOT\RS\US\n\
    \F\n\
    \\EOT\EOT\SOH\STX\ETX\DC2\EOT\168\EOT\EOT\SUB\SUB8 The hash of the block this transaction was included in\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\ETX\EOT\DC2\ACK\168\EOT\EOT\165\EOT \n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ETX\ENQ\DC2\EOT\168\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\EOT\168\EOT\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\EOT\168\EOT\CAN\EM\n\
    \H\n\
    \\EOT\EOT\SOH\STX\EOT\DC2\EOT\171\EOT\EOT\ESC\SUB: The height of the block this transaction was included in\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\EOT\EOT\DC2\ACK\171\EOT\EOT\168\EOT\SUB\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\EOT\ENQ\DC2\EOT\171\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\EOT\SOH\DC2\EOT\171\EOT\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\EOT\ETX\DC2\EOT\171\EOT\EM\SUB\n\
    \-\n\
    \\EOT\EOT\SOH\STX\ENQ\DC2\EOT\174\EOT\EOT\EM\SUB\US Timestamp of this transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\ENQ\EOT\DC2\ACK\174\EOT\EOT\171\EOT\ESC\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ENQ\ENQ\DC2\EOT\174\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ENQ\SOH\DC2\EOT\174\EOT\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ENQ\ETX\DC2\EOT\174\EOT\ETB\CAN\n\
    \.\n\
    \\EOT\EOT\SOH\STX\ACK\DC2\EOT\177\EOT\EOT\EM\SUB  Fees paid for this transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\ACK\EOT\DC2\ACK\177\EOT\EOT\174\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ACK\ENQ\DC2\EOT\177\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ACK\SOH\DC2\EOT\177\EOT\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\ACK\ETX\DC2\EOT\177\EOT\ETB\CAN\n\
    \B\n\
    \\EOT\EOT\SOH\STX\a\DC2\EOT\180\EOT\EOT'\SUB4 Addresses that received funds for this transaction\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\a\EOT\DC2\EOT\180\EOT\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\a\ENQ\DC2\EOT\180\EOT\r\DC3\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\a\SOH\DC2\EOT\180\EOT\DC4\"\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\a\ETX\DC2\EOT\180\EOT%&\n\
    \(\n\
    \\EOT\EOT\SOH\STX\b\DC2\EOT\183\EOT\EOT\SUB\SUB\SUB The raw transaction hex.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\b\EOT\DC2\ACK\183\EOT\EOT\180\EOT'\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\b\ENQ\DC2\EOT\183\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\b\SOH\DC2\EOT\183\EOT\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\b\ETX\DC2\EOT\183\EOT\CAN\EM\n\
    \I\n\
    \\EOT\EOT\SOH\STX\t\DC2\EOT\186\EOT\EOT\SYN\SUB; A label that was optionally set on transaction broadcast.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SOH\STX\t\EOT\DC2\ACK\186\EOT\EOT\183\EOT\SUB\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\t\ENQ\DC2\EOT\186\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\t\SOH\DC2\EOT\186\EOT\v\DLE\n\
    \\r\n\
    \\ENQ\EOT\SOH\STX\t\ETX\DC2\EOT\186\EOT\DC3\NAK\n\
    \\f\n\
    \\STX\EOT\STX\DC2\ACK\188\EOT\NUL\206\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\STX\SOH\DC2\EOT\188\EOT\b\RS\n\
    \\151\SOH\n\
    \\EOT\EOT\STX\STX\NUL\DC2\EOT\193\EOT\EOT\ESC\SUB\136\SOH\n\
    \The height from which to list transactions, inclusive. If this value is\n\
    \greater than end_height, transactions will be read in reverse.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\STX\STX\NUL\EOT\DC2\ACK\193\EOT\EOT\188\EOT \n\
    \\r\n\
    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\EOT\193\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\EOT\193\EOT\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\EOT\193\EOT\EM\SUB\n\
    \\188\STX\n\
    \\EOT\EOT\STX\STX\SOH\DC2\EOT\202\EOT\EOT\EM\SUB\173\STX\n\
    \The height until which to list transactions, inclusive. To include\n\
    \unconfirmed transactions, this value should be set to -1, which will\n\
    \return transactions from start_height until the current chain tip and\n\
    \unconfirmed transactions. If no end_height is provided, the call will\n\
    \default to this option.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\STX\STX\SOH\EOT\DC2\ACK\202\EOT\EOT\193\EOT\ESC\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\EOT\202\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\EOT\202\EOT\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\EOT\202\EOT\ETB\CAN\n\
    \W\n\
    \\EOT\EOT\STX\STX\STX\DC2\EOT\205\EOT\EOT\ETB\SUBI An optional filter to only include transactions relevant to an account.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\STX\STX\STX\EOT\DC2\ACK\205\EOT\EOT\202\EOT\EM\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\STX\ENQ\DC2\EOT\205\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\STX\SOH\DC2\EOT\205\EOT\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\STX\STX\STX\ETX\DC2\EOT\205\EOT\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\ETX\DC2\ACK\208\EOT\NUL\211\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\ETX\SOH\DC2\EOT\208\EOT\b\SUB\n\
    \@\n\
    \\EOT\EOT\ETX\STX\NUL\DC2\EOT\210\EOT\EOT*\SUB2 The list of transactions relevant to the wallet.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ETX\STX\NUL\EOT\DC2\EOT\210\EOT\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\EOT\210\EOT\r\CAN\n\
    \\r\n\
    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\EOT\210\EOT\EM%\n\
    \\r\n\
    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\EOT\210\EOT()\n\
    \\f\n\
    \\STX\EOT\EOT\DC2\ACK\213\EOT\NUL\232\EOT\SOH\n\
    \\v\n\
    \\ETX\EOT\EOT\SOH\DC2\EOT\213\EOT\b\DLE\n\
    \\SO\n\
    \\EOT\EOT\EOT\b\NUL\DC2\ACK\214\EOT\EOT\231\EOT\ENQ\n\
    \\r\n\
    \\ENQ\EOT\EOT\b\NUL\SOH\DC2\EOT\214\EOT\n\
    \\SI\n\
    \\DEL\n\
    \\EOT\EOT\EOT\STX\NUL\DC2\EOT\220\EOT\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\EOT\STX\NUL\ENQ\DC2\EOT\220\EOT\b\r\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\220\EOT\SO\DC3\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\220\EOT\SYN\ETB\n\
    \\132\SOH\n\
    \\EOT\EOT\EOT\STX\SOH\DC2\EOT\227\EOT\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\EOT\STX\SOH\ENQ\DC2\EOT\227\EOT\b\r\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\227\EOT\SO\CAN\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\227\EOT\ESC\FS\n\
    \N\n\
    \\EOT\EOT\EOT\STX\STX\DC2\EOT\230\EOT\b\SUB\SUB@ The fee limit expressed as a percentage of the payment amount.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\STX\ENQ\DC2\EOT\230\EOT\b\r\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\230\EOT\SO\NAK\n\
    \\r\n\
    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\230\EOT\CAN\EM\n\
    \\f\n\
    \\STX\EOT\ENQ\DC2\ACK\234\EOT\NUL\209\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\ENQ\SOH\DC2\EOT\234\EOT\b\DC3\n\
    \t\n\
    \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\239\EOT\EOT\DC3\SUBf\n\
    \The identity pubkey of the payment recipient. When using REST, this field\n\
    \must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\ACK\239\EOT\EOT\234\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\239\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\239\EOT\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\239\EOT\DC1\DC2\n\
    \\153\SOH\n\
    \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\245\EOT\EOT/\SUB\138\SOH\n\
    \The hex-encoded identity pubkey of the payment recipient. Deprecated now\n\
    \that the REST gateway supports base64 encoding of bytes fields.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\SOH\EOT\DC2\ACK\245\EOT\EOT\239\EOT\DC3\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\245\EOT\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\245\EOT\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\245\EOT\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SOH\b\DC2\EOT\245\EOT\ESC.\n\
    \\SO\n\
    \\ACK\EOT\ENQ\STX\SOH\b\ETX\DC2\EOT\245\EOT\FS-\n\
    \n\n\
    \\EOT\EOT\ENQ\STX\STX\DC2\EOT\252\EOT\EOT\DC2\SUB`\n\
    \The amount to send expressed in satoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\STX\EOT\DC2\ACK\252\EOT\EOT\245\EOT/\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\252\EOT\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\252\EOT\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\252\EOT\DLE\DC1\n\
    \s\n\
    \\EOT\EOT\ENQ\STX\ETX\DC2\EOT\131\ENQ\EOT\CAN\SUBe\n\
    \The amount to send expressed in millisatoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\ETX\EOT\DC2\ACK\131\ENQ\EOT\252\EOT\DC2\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\ENQ\DC2\EOT\131\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\SOH\DC2\EOT\131\ENQ\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ETX\ETX\DC2\EOT\131\ENQ\NAK\ETB\n\
    \q\n\
    \\EOT\EOT\ENQ\STX\EOT\DC2\EOT\137\ENQ\EOT\ESC\SUBc\n\
    \The hash to use within the payment's HTLC. When using REST, this field\n\
    \must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\EOT\EOT\DC2\ACK\137\ENQ\EOT\131\ENQ\CAN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\ENQ\DC2\EOT\137\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\SOH\DC2\EOT\137\ENQ\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\EOT\ETX\DC2\EOT\137\ENQ\EM\SUB\n\
    \\150\SOH\n\
    \\EOT\EOT\ENQ\STX\ENQ\DC2\EOT\143\ENQ\EOT7\SUB\135\SOH\n\
    \The hex-encoded hash to use within the payment's HTLC. Deprecated now\n\
    \that the REST gateway supports base64 encoding of bytes fields.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\ENQ\EOT\DC2\ACK\143\ENQ\EOT\137\ENQ\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\ENQ\DC2\EOT\143\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\SOH\DC2\EOT\143\ENQ\v\RS\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\ETX\DC2\EOT\143\ENQ!\"\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ENQ\b\DC2\EOT\143\ENQ#6\n\
    \\SO\n\
    \\ACK\EOT\ENQ\STX\ENQ\b\ETX\DC2\EOT\143\ENQ$5\n\
    \\188\SOH\n\
    \\EOT\EOT\ENQ\STX\ACK\DC2\EOT\150\ENQ\EOT\US\SUB\173\SOH\n\
    \A bare-bones invoice for a payment within the Lightning Network. With the\n\
    \details of the invoice, the sender has all the data necessary to send a\n\
    \payment to the recipient.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\ACK\EOT\DC2\ACK\150\ENQ\EOT\143\ENQ7\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ACK\ENQ\DC2\EOT\150\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ACK\SOH\DC2\EOT\150\ENQ\v\SUB\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\ACK\ETX\DC2\EOT\150\ENQ\GS\RS\n\
    \q\n\
    \\EOT\EOT\ENQ\STX\a\DC2\EOT\156\ENQ\EOT\US\SUBc\n\
    \The CLTV delta from the current height that should be used to set the\n\
    \timelock for the final hop.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\a\EOT\DC2\ACK\156\ENQ\EOT\150\ENQ\US\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\a\ENQ\DC2\EOT\156\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\a\SOH\DC2\EOT\156\ENQ\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\a\ETX\DC2\EOT\156\ENQ\GS\RS\n\
    \\130\STX\n\
    \\EOT\EOT\ENQ\STX\b\DC2\EOT\164\ENQ\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\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\b\EOT\DC2\ACK\164\ENQ\EOT\156\ENQ\US\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\b\ACK\DC2\EOT\164\ENQ\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\b\SOH\DC2\EOT\164\ENQ\r\SYN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\b\ETX\DC2\EOT\164\ENQ\EM\SUB\n\
    \t\n\
    \\EOT\EOT\ENQ\STX\t\DC2\EOT\170\ENQ\EOT5\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\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\t\EOT\DC2\ACK\170\ENQ\EOT\164\ENQ\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\t\ENQ\DC2\EOT\170\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\t\SOH\DC2\EOT\170\ENQ\v\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\t\ETX\DC2\EOT\170\ENQ\RS\US\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\t\b\DC2\EOT\170\ENQ 4\n\
    \\SO\n\
    \\ACK\EOT\ENQ\STX\t\b\ACK\DC2\EOT\170\ENQ!3\n\
    \W\n\
    \\EOT\EOT\ENQ\STX\n\
    \\DC2\EOT\175\ENQ\EOT\US\SUBI\n\
    \The pubkey of the last hop of the route. If empty, any hop may be used.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\n\
    \\EOT\DC2\ACK\175\ENQ\EOT\170\ENQ5\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\n\
    \\ENQ\DC2\EOT\175\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\n\
    \\SOH\DC2\EOT\175\ENQ\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\n\
    \\ETX\DC2\EOT\175\ENQ\FS\RS\n\
    \\185\SOH\n\
    \\EOT\EOT\ENQ\STX\v\DC2\EOT\182\ENQ\EOT\ESC\SUB\170\SOH\n\
    \An optional maximum total time lock for the route. This should not exceed\n\
    \lnd's `--max-cltv-expiry` setting. If zero, then the value of\n\
    \`--max-cltv-expiry` is enforced.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\v\EOT\DC2\ACK\182\ENQ\EOT\175\ENQ\US\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\v\ENQ\DC2\EOT\182\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\v\SOH\DC2\EOT\182\ENQ\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\v\ETX\DC2\EOT\182\ENQ\CAN\SUB\n\
    \\204\STX\n\
    \\EOT\EOT\ENQ\STX\f\DC2\EOT\191\ENQ\EOT0\SUB\189\STX\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. Record types are\n\
    \required to be in the custom range >= 65536. When using REST, the values\n\
    \must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\f\EOT\DC2\ACK\191\ENQ\EOT\182\ENQ\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\f\ACK\DC2\EOT\191\ENQ\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\f\SOH\DC2\EOT\191\ENQ\ETB*\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\f\ETX\DC2\EOT\191\ENQ-/\n\
    \@\n\
    \\EOT\EOT\ENQ\STX\r\DC2\EOT\194\ENQ\EOT!\SUB2 If set, circular payments to self are permitted.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\r\EOT\DC2\ACK\194\ENQ\EOT\191\ENQ0\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\r\ENQ\DC2\EOT\194\ENQ\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\r\SOH\DC2\EOT\194\ENQ\t\ESC\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\r\ETX\DC2\EOT\194\ENQ\RS \n\
    \\195\STX\n\
    \\EOT\EOT\ENQ\STX\SO\DC2\EOT\203\ENQ\EOT+\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\ENQ\STX\SO\EOT\DC2\EOT\203\ENQ\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SO\ACK\DC2\EOT\203\ENQ\r\ETB\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SO\SOH\DC2\EOT\203\ENQ\CAN%\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SO\ETX\DC2\EOT\203\ENQ(*\n\
    \=\n\
    \\EOT\EOT\ENQ\STX\SI\DC2\EOT\208\ENQ\EOT\FS\SUB/\n\
    \The payment address of the generated invoice.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ENQ\STX\SI\EOT\DC2\ACK\208\ENQ\EOT\203\ENQ+\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SI\ENQ\DC2\EOT\208\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SI\SOH\DC2\EOT\208\ENQ\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\ENQ\STX\SI\ETX\DC2\EOT\208\ENQ\EM\ESC\n\
    \\f\n\
    \\STX\EOT\ACK\DC2\ACK\211\ENQ\NUL\216\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\ACK\SOH\DC2\EOT\211\ENQ\b\DC4\n\
    \\f\n\
    \\EOT\EOT\ACK\STX\NUL\DC2\EOT\212\ENQ\EOT\GS\n\
    \\SI\n\
    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\ACK\212\ENQ\EOT\211\ENQ\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\212\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\212\ENQ\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\212\ENQ\ESC\FS\n\
    \\f\n\
    \\EOT\EOT\ACK\STX\SOH\DC2\EOT\213\ENQ\EOT\US\n\
    \\SI\n\
    \\ENQ\EOT\ACK\STX\SOH\EOT\DC2\ACK\213\ENQ\EOT\212\ENQ\GS\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\213\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\213\ENQ\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\213\ENQ\GS\RS\n\
    \\f\n\
    \\EOT\EOT\ACK\STX\STX\DC2\EOT\214\ENQ\EOT\FS\n\
    \\SI\n\
    \\ENQ\EOT\ACK\STX\STX\EOT\DC2\ACK\214\ENQ\EOT\213\ENQ\US\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\214\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\214\ENQ\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\214\ENQ\SUB\ESC\n\
    \\f\n\
    \\EOT\EOT\ACK\STX\ETX\DC2\EOT\215\ENQ\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT\ACK\STX\ETX\EOT\DC2\ACK\215\ENQ\EOT\214\ENQ\FS\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\ENQ\DC2\EOT\215\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\SOH\DC2\EOT\215\ENQ\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\ACK\STX\ETX\ETX\DC2\EOT\215\ENQ\EM\SUB\n\
    \\f\n\
    \\STX\EOT\a\DC2\ACK\218\ENQ\NUL\235\ENQ\SOH\n\
    \\v\n\
    \\ETX\EOT\a\SOH\DC2\EOT\218\ENQ\b\SUB\n\
    \l\n\
    \\EOT\EOT\a\STX\NUL\DC2\EOT\223\ENQ\EOT\ESC\SUB^\n\
    \The payment hash to use for the HTLC. When using REST, this field must be\n\
    \encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\a\STX\NUL\EOT\DC2\ACK\223\ENQ\EOT\218\ENQ\FS\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\223\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\223\ENQ\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\223\ENQ\EM\SUB\n\
    \\157\SOH\n\
    \\EOT\EOT\a\STX\SOH\DC2\EOT\229\ENQ\EOT7\SUB\142\SOH\n\
    \An optional hex-encoded payment hash to be used for the HTLC. Deprecated now\n\
    \that the REST gateway supports base64 encoding of bytes fields.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\a\STX\SOH\EOT\DC2\ACK\229\ENQ\EOT\223\ENQ\ESC\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\229\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\229\ENQ\v\RS\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\229\ENQ!\"\n\
    \\r\n\
    \\ENQ\EOT\a\STX\SOH\b\DC2\EOT\229\ENQ#6\n\
    \\SO\n\
    \\ACK\EOT\a\STX\SOH\b\ETX\DC2\EOT\229\ENQ$5\n\
    \\v\n\
    \\ETX\EOT\a\t\DC2\EOT\231\ENQ\EOT\SI\n\
    \\f\n\
    \\EOT\EOT\a\t\NUL\DC2\EOT\231\ENQ\r\SO\n\
    \\r\n\
    \\ENQ\EOT\a\t\NUL\SOH\DC2\EOT\231\ENQ\r\SO\n\
    \\r\n\
    \\ENQ\EOT\a\t\NUL\STX\DC2\EOT\231\ENQ\r\SO\n\
    \M\n\
    \\EOT\EOT\a\STX\STX\DC2\EOT\234\ENQ\EOT\DC4\SUB? Route that should be used to attempt to complete the payment.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\a\STX\STX\EOT\DC2\ACK\234\ENQ\EOT\231\ENQ\SI\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\234\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\234\ENQ\n\
    \\SI\n\
    \\r\n\
    \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\234\ENQ\DC2\DC3\n\
    \\f\n\
    \\STX\EOT\b\DC2\ACK\237\ENQ\NUL\156\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\b\SOH\DC2\EOT\237\ENQ\b\FS\n\
    \N\n\
    \\EOT\EOT\b\STX\NUL\DC2\EOT\239\ENQ\EOT\SUB\SUB@ The pubkey of the node that wishes to open an inbound channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\NUL\EOT\DC2\ACK\239\ENQ\EOT\237\ENQ\RS\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\239\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\239\ENQ\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\239\ENQ\CAN\EM\n\
    \S\n\
    \\EOT\EOT\b\STX\SOH\DC2\EOT\242\ENQ\EOT\EM\SUBE The hash of the genesis block that the proposed channel resides in.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\SOH\EOT\DC2\ACK\242\ENQ\EOT\239\ENQ\SUB\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\ENQ\DC2\EOT\242\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\242\ENQ\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\242\ENQ\ETB\CAN\n\
    \'\n\
    \\EOT\EOT\b\STX\STX\DC2\EOT\245\ENQ\EOT\RS\SUB\EM The pending channel id.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\STX\EOT\DC2\ACK\245\ENQ\EOT\242\ENQ\EM\n\
    \\r\n\
    \\ENQ\EOT\b\STX\STX\ENQ\DC2\EOT\245\ENQ\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\b\STX\STX\SOH\DC2\EOT\245\ENQ\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\b\STX\STX\ETX\DC2\EOT\245\ENQ\FS\GS\n\
    \\\\n\
    \\EOT\EOT\b\STX\ETX\DC2\EOT\249\ENQ\EOT\ESC\SUBN The funding amount in satoshis that initiator wishes to use in the\n\
    \ channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\ETX\EOT\DC2\ACK\249\ENQ\EOT\245\ENQ\RS\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ETX\ENQ\DC2\EOT\249\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ETX\SOH\DC2\EOT\249\ENQ\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ETX\ETX\DC2\EOT\249\ENQ\EM\SUB\n\
    \I\n\
    \\EOT\EOT\b\STX\EOT\DC2\EOT\252\ENQ\EOT\CAN\SUB; The push amount of the proposed channel in millisatoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\EOT\EOT\DC2\ACK\252\ENQ\EOT\249\ENQ\ESC\n\
    \\r\n\
    \\ENQ\EOT\b\STX\EOT\ENQ\DC2\EOT\252\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\EOT\SOH\DC2\EOT\252\ENQ\v\DC3\n\
    \\r\n\
    \\ENQ\EOT\b\STX\EOT\ETX\DC2\EOT\252\ENQ\SYN\ETB\n\
    \@\n\
    \\EOT\EOT\b\STX\ENQ\DC2\EOT\255\ENQ\EOT\SUB\SUB2 The dust limit of the initiator's commitment tx.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\ENQ\EOT\DC2\ACK\255\ENQ\EOT\252\ENQ\CAN\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ENQ\ENQ\DC2\EOT\255\ENQ\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ENQ\SOH\DC2\EOT\255\ENQ\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ENQ\ETX\DC2\EOT\255\ENQ\CAN\EM\n\
    \b\n\
    \\EOT\EOT\b\STX\ACK\DC2\EOT\131\ACK\EOT#\SUBT The maximum amount of coins in millisatoshis that can be pending in this\n\
    \ channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\ACK\EOT\DC2\ACK\131\ACK\EOT\255\ENQ\SUB\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ACK\ENQ\DC2\EOT\131\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ACK\SOH\DC2\EOT\131\ACK\v\RS\n\
    \\r\n\
    \\ENQ\EOT\b\STX\ACK\ETX\DC2\EOT\131\ACK!\"\n\
    \_\n\
    \\EOT\EOT\b\STX\a\DC2\EOT\135\ACK\EOT\US\SUBQ The minimum amount of satoshis the initiator requires us to have at all\n\
    \ times.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\a\EOT\DC2\ACK\135\ACK\EOT\131\ACK#\n\
    \\r\n\
    \\ENQ\EOT\b\STX\a\ENQ\DC2\EOT\135\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\a\SOH\DC2\EOT\135\ACK\v\SUB\n\
    \\r\n\
    \\ENQ\EOT\b\STX\a\ETX\DC2\EOT\135\ACK\GS\RS\n\
    \R\n\
    \\EOT\EOT\b\STX\b\DC2\EOT\138\ACK\EOT\CAN\SUBD The smallest HTLC in millisatoshis that the initiator will accept.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\b\EOT\DC2\ACK\138\ACK\EOT\135\ACK\US\n\
    \\r\n\
    \\ENQ\EOT\b\STX\b\ENQ\DC2\EOT\138\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\b\SOH\DC2\EOT\138\ACK\v\DC3\n\
    \\r\n\
    \\ENQ\EOT\b\STX\b\ETX\DC2\EOT\138\ACK\SYN\ETB\n\
    \c\n\
    \\EOT\EOT\b\STX\t\DC2\EOT\142\ACK\EOT\ESC\SUBU The initial fee rate that the initiator suggests for both commitment\n\
    \ transactions.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\t\EOT\DC2\ACK\142\ACK\EOT\138\ACK\CAN\n\
    \\r\n\
    \\ENQ\EOT\b\STX\t\ENQ\DC2\EOT\142\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\t\SOH\DC2\EOT\142\ACK\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\b\STX\t\ETX\DC2\EOT\142\ACK\CAN\SUB\n\
    \\129\SOH\n\
    \\EOT\EOT\b\STX\n\
    \\DC2\EOT\148\ACK\EOT\SUB\SUBs\n\
    \The number of blocks to use for the relative time lock in the pay-to-self\n\
    \output of both commitment transactions.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\n\
    \\EOT\DC2\ACK\148\ACK\EOT\142\ACK\ESC\n\
    \\r\n\
    \\ENQ\EOT\b\STX\n\
    \\ENQ\DC2\EOT\148\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\n\
    \\SOH\DC2\EOT\148\ACK\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\b\STX\n\
    \\ETX\DC2\EOT\148\ACK\ETB\EM\n\
    \S\n\
    \\EOT\EOT\b\STX\v\DC2\EOT\151\ACK\EOT#\SUBE The total number of incoming HTLC's that the initiator will accept.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\v\EOT\DC2\ACK\151\ACK\EOT\148\ACK\SUB\n\
    \\r\n\
    \\ENQ\EOT\b\STX\v\ENQ\DC2\EOT\151\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\v\SOH\DC2\EOT\151\ACK\v\GS\n\
    \\r\n\
    \\ENQ\EOT\b\STX\v\ETX\DC2\EOT\151\ACK \"\n\
    \[\n\
    \\EOT\EOT\b\STX\f\DC2\EOT\155\ACK\EOT\RS\SUBM A bit-field which the initiator uses to specify proposed channel\n\
    \ behavior.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\b\STX\f\EOT\DC2\ACK\155\ACK\EOT\151\ACK#\n\
    \\r\n\
    \\ENQ\EOT\b\STX\f\ENQ\DC2\EOT\155\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\b\STX\f\SOH\DC2\EOT\155\ACK\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\b\STX\f\ETX\DC2\EOT\155\ACK\ESC\GS\n\
    \\f\n\
    \\STX\EOT\t\DC2\ACK\158\ACK\NUL\216\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\t\SOH\DC2\EOT\158\ACK\b\GS\n\
    \>\n\
    \\EOT\EOT\t\STX\NUL\DC2\EOT\160\ACK\EOT\DC4\SUB0 Whether or not the client accepts the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\NUL\EOT\DC2\ACK\160\ACK\EOT\158\ACK\US\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\160\ACK\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\160\ACK\t\SI\n\
    \\r\n\
    \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\160\ACK\DC2\DC3\n\
    \F\n\
    \\EOT\EOT\t\STX\SOH\DC2\EOT\163\ACK\EOT\RS\SUB8 The pending channel id to which this response applies.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\SOH\EOT\DC2\ACK\163\ACK\EOT\160\ACK\DC4\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\163\ACK\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\163\ACK\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\163\ACK\FS\GS\n\
    \\138\ETX\n\
    \\EOT\EOT\t\STX\STX\DC2\EOT\173\ACK\EOT\NAK\SUB\251\STX\n\
    \An optional error to send the initiating party to indicate why the channel\n\
    \was rejected. This field *should not* contain sensitive information, it will\n\
    \be sent to the initiating party. This field should only be set if accept is\n\
    \false, the channel will be rejected if an error is set with accept=true\n\
    \because the meaning of this response is ambiguous. Limited to 500\n\
    \characters.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\STX\EOT\DC2\ACK\173\ACK\EOT\163\ACK\RS\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\173\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\173\ACK\v\DLE\n\
    \\r\n\
    \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\173\ACK\DC3\DC4\n\
    \\140\STX\n\
    \\EOT\EOT\t\STX\ETX\DC2\EOT\181\ACK\EOT \SUB\253\SOH\n\
    \The upfront shutdown address to use if the initiating peer supports option\n\
    \upfront shutdown script (see ListPeers for the features supported). Note\n\
    \that the channel open will fail if this value is set for a peer that does\n\
    \not support this feature bit.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\ETX\EOT\DC2\ACK\181\ACK\EOT\173\ACK\NAK\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\181\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\181\ACK\v\ESC\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\181\ACK\RS\US\n\
    \O\n\
    \\EOT\EOT\t\STX\EOT\DC2\EOT\186\ACK\EOT\EM\SUBA\n\
    \The csv delay (in blocks) that we require for the remote party.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\EOT\EOT\DC2\ACK\186\ACK\EOT\181\ACK \n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\186\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\186\ACK\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\186\ACK\ETB\CAN\n\
    \\187\STX\n\
    \\EOT\EOT\t\STX\ENQ\DC2\EOT\194\ACK\EOT\ESC\SUB\172\STX\n\
    \The reserve amount in satoshis that we require the remote peer to adhere to.\n\
    \We require that the remote peer always have some reserve amount allocated to\n\
    \them so that there is always a disincentive to broadcast old state (if they\n\
    \hold 0 sats on their side of the channel, there is nothing to lose).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\ENQ\EOT\DC2\ACK\194\ACK\EOT\186\ACK\EM\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ENQ\ENQ\DC2\EOT\194\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\194\ACK\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\194\ACK\EM\SUB\n\
    \x\n\
    \\EOT\EOT\t\STX\ACK\DC2\EOT\200\ACK\EOT\"\SUBj\n\
    \The maximum amount of funds in millisatoshis that we allow the remote peer\n\
    \to have in outstanding htlcs.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\ACK\EOT\DC2\ACK\200\ACK\EOT\194\ACK\ESC\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ACK\ENQ\DC2\EOT\200\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ACK\SOH\DC2\EOT\200\ACK\v\GS\n\
    \\r\n\
    \\ENQ\EOT\t\STX\ACK\ETX\DC2\EOT\200\ACK !\n\
    \N\n\
    \\EOT\EOT\t\STX\a\DC2\EOT\205\ACK\EOT\RS\SUB@\n\
    \The maximum number of htlcs that the remote peer can offer us.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\a\EOT\DC2\ACK\205\ACK\EOT\200\ACK\"\n\
    \\r\n\
    \\ENQ\EOT\t\STX\a\ENQ\DC2\EOT\205\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\a\SOH\DC2\EOT\205\ACK\v\EM\n\
    \\r\n\
    \\ENQ\EOT\t\STX\a\ETX\DC2\EOT\205\ACK\FS\GS\n\
    \U\n\
    \\EOT\EOT\t\STX\b\DC2\EOT\210\ACK\EOT\ESC\SUBG\n\
    \The minimum value in millisatoshis for incoming htlcs on the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\b\EOT\DC2\ACK\210\ACK\EOT\205\ACK\RS\n\
    \\r\n\
    \\ENQ\EOT\t\STX\b\ENQ\DC2\EOT\210\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\b\SOH\DC2\EOT\210\ACK\v\SYN\n\
    \\r\n\
    \\ENQ\EOT\t\STX\b\ETX\DC2\EOT\210\ACK\EM\SUB\n\
    \[\n\
    \\EOT\EOT\t\STX\t\DC2\EOT\215\ACK\EOT!\SUBM\n\
    \The number of confirmations we require before we consider the channel open.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\t\STX\t\EOT\DC2\ACK\215\ACK\EOT\210\ACK\ESC\n\
    \\r\n\
    \\ENQ\EOT\t\STX\t\ENQ\DC2\EOT\215\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\t\STX\t\SOH\DC2\EOT\215\ACK\v\ESC\n\
    \\r\n\
    \\ENQ\EOT\t\STX\t\ETX\DC2\EOT\215\ACK\RS \n\
    \\f\n\
    \\STX\EOT\n\
    \\DC2\ACK\218\ACK\NUL\235\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\n\
    \\SOH\DC2\EOT\218\ACK\b\DC4\n\
    \\SO\n\
    \\EOT\EOT\n\
    \\b\NUL\DC2\ACK\219\ACK\EOT\231\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\b\NUL\SOH\DC2\EOT\219\ACK\n\
    \\SYN\n\
    \g\n\
    \\EOT\EOT\n\
    \\STX\NUL\DC2\EOT\224\ACK\b%\SUBY\n\
    \Txid of the funding transaction. When using REST, this field must be\n\
    \encoded as base64.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\ENQ\DC2\EOT\224\ACK\b\r\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\SOH\DC2\EOT\224\ACK\SO \n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\NUL\ETX\DC2\EOT\224\ACK#$\n\
    \b\n\
    \\EOT\EOT\n\
    \\STX\SOH\DC2\EOT\230\ACK\b$\SUBT\n\
    \Hex-encoded string representing the byte-reversed hash of the funding\n\
    \transaction.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\ENQ\DC2\EOT\230\ACK\b\SO\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\SOH\DC2\EOT\230\ACK\SI\US\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\SOH\ETX\DC2\EOT\230\ACK\"#\n\
    \B\n\
    \\EOT\EOT\n\
    \\STX\STX\DC2\EOT\234\ACK\EOT\FS\SUB4 The index of the output of the funding transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\n\
    \\STX\STX\EOT\DC2\ACK\234\ACK\EOT\231\ACK\ENQ\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\ENQ\DC2\EOT\234\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\SOH\DC2\EOT\234\ACK\v\ETB\n\
    \\r\n\
    \\ENQ\EOT\n\
    \\STX\STX\ETX\DC2\EOT\234\ACK\SUB\ESC\n\
    \\f\n\
    \\STX\EOT\v\DC2\ACK\237\ACK\NUL\246\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\v\SOH\DC2\EOT\237\ACK\b\DLE\n\
    \:\n\
    \\EOT\EOT\v\STX\NUL\DC2\EOT\239\ACK\EOT\EM\SUB, Raw bytes representing the transaction id.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\v\STX\NUL\EOT\DC2\ACK\239\ACK\EOT\237\ACK\DC2\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\ENQ\DC2\EOT\239\ACK\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\239\ACK\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\239\ACK\ETB\CAN\n\
    \M\n\
    \\EOT\EOT\v\STX\SOH\DC2\EOT\242\ACK\EOT\CAN\SUB? Reversed, hex-encoded string representing the transaction id.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\v\STX\SOH\EOT\DC2\ACK\242\ACK\EOT\239\ACK\EM\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\242\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\242\ACK\v\DC3\n\
    \\r\n\
    \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\242\ACK\SYN\ETB\n\
    \;\n\
    \\EOT\EOT\v\STX\STX\DC2\EOT\245\ACK\EOT\FS\SUB- The index of the output on the transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\v\STX\STX\EOT\DC2\ACK\245\ACK\EOT\242\ACK\CAN\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\245\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\245\ACK\v\ETB\n\
    \\r\n\
    \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\245\ACK\SUB\ESC\n\
    \\f\n\
    \\STX\EOT\f\DC2\ACK\248\ACK\NUL\255\ACK\SOH\n\
    \\v\n\
    \\ETX\EOT\f\SOH\DC2\EOT\248\ACK\b\CAN\n\
    \9\n\
    \\EOT\EOT\f\STX\NUL\DC2\EOT\250\ACK\EOT\SYN\SUB+ The identity pubkey of the Lightning node\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\f\STX\NUL\EOT\DC2\ACK\250\ACK\EOT\248\ACK\SUB\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\ENQ\DC2\EOT\250\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\SOH\DC2\EOT\250\ACK\v\DC1\n\
    \\r\n\
    \\ENQ\EOT\f\STX\NUL\ETX\DC2\EOT\250\ACK\DC4\NAK\n\
    \i\n\
    \\EOT\EOT\f\STX\SOH\DC2\EOT\254\ACK\EOT\DC4\SUB[ The network location of the lightning node, e.g. `69.69.69.69:1337` or\n\
    \ `localhost:10011`\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\f\STX\SOH\EOT\DC2\ACK\254\ACK\EOT\250\ACK\SYN\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\ENQ\DC2\EOT\254\ACK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\SOH\DC2\EOT\254\ACK\v\SI\n\
    \\r\n\
    \\ENQ\EOT\f\STX\SOH\ETX\DC2\EOT\254\ACK\DC2\DC3\n\
    \\f\n\
    \\STX\EOT\r\DC2\ACK\129\a\NUL\143\a\SOH\n\
    \\v\n\
    \\ETX\EOT\r\SOH\DC2\EOT\129\a\b\SUB\n\
    \F\n\
    \\EOT\EOT\r\STX\NUL\DC2\EOT\131\a\EOT(\SUB8 The map from addresses to amounts for the transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\r\STX\NUL\EOT\DC2\ACK\131\a\EOT\129\a\FS\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\ACK\DC2\EOT\131\a\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\SOH\DC2\EOT\131\a\ETB#\n\
    \\r\n\
    \\ENQ\EOT\r\STX\NUL\ETX\DC2\EOT\131\a&'\n\
    \Z\n\
    \\EOT\EOT\r\STX\SOH\DC2\EOT\135\a\EOT\SUB\SUBL The target number of blocks that this transaction should be confirmed\n\
    \ by.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\r\STX\SOH\EOT\DC2\ACK\135\a\EOT\131\a(\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\ENQ\DC2\EOT\135\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\SOH\DC2\EOT\135\a\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\r\STX\SOH\ETX\DC2\EOT\135\a\CAN\EM\n\
    \t\n\
    \\EOT\EOT\r\STX\STX\DC2\EOT\139\a\EOT\CAN\SUBf The minimum number of confirmations each one of your outputs used for\n\
    \ the transaction must satisfy.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\r\STX\STX\EOT\DC2\ACK\139\a\EOT\135\a\SUB\n\
    \\r\n\
    \\ENQ\EOT\r\STX\STX\ENQ\DC2\EOT\139\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\r\STX\STX\SOH\DC2\EOT\139\a\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\r\STX\STX\ETX\DC2\EOT\139\a\SYN\ETB\n\
    \Y\n\
    \\EOT\EOT\r\STX\ETX\DC2\EOT\142\a\EOT\US\SUBK Whether unconfirmed outputs should be used as inputs for the transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\r\STX\ETX\EOT\DC2\ACK\142\a\EOT\139\a\CAN\n\
    \\r\n\
    \\ENQ\EOT\r\STX\ETX\ENQ\DC2\EOT\142\a\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\r\STX\ETX\SOH\DC2\EOT\142\a\t\SUB\n\
    \\r\n\
    \\ENQ\EOT\r\STX\ETX\ETX\DC2\EOT\142\a\GS\RS\n\
    \\f\n\
    \\STX\EOT\SO\DC2\ACK\145\a\NUL\155\a\SOH\n\
    \\v\n\
    \\ETX\EOT\SO\SOH\DC2\EOT\145\a\b\ESC\n\
    \*\n\
    \\EOT\EOT\SO\STX\NUL\DC2\EOT\147\a\EOT\SYN\SUB\FS The total fee in satoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SO\STX\NUL\EOT\DC2\ACK\147\a\EOT\145\a\GS\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\ENQ\DC2\EOT\147\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\SOH\DC2\EOT\147\a\n\
    \\DC1\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\NUL\ETX\DC2\EOT\147\a\DC4\NAK\n\
    \N\n\
    \\EOT\EOT\SO\STX\SOH\DC2\EOT\151\a\EOT7\SUB@ Deprecated, use sat_per_vbyte.\n\
    \ The fee rate in satoshi/vbyte.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SO\STX\SOH\EOT\DC2\ACK\151\a\EOT\147\a\SYN\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\ENQ\DC2\EOT\151\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\SOH\DC2\EOT\151\a\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\ETX\DC2\EOT\151\a!\"\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\SOH\b\DC2\EOT\151\a#6\n\
    \\SO\n\
    \\ACK\EOT\SO\STX\SOH\b\ETX\DC2\EOT\151\a$5\n\
    \.\n\
    \\EOT\EOT\SO\STX\STX\DC2\EOT\154\a\EOT\GS\SUB  The fee rate in satoshi/vbyte.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SO\STX\STX\EOT\DC2\ACK\154\a\EOT\151\a7\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\ENQ\DC2\EOT\154\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\SOH\DC2\EOT\154\a\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\SO\STX\STX\ETX\DC2\EOT\154\a\ESC\FS\n\
    \\f\n\
    \\STX\EOT\SI\DC2\ACK\157\a\NUL\183\a\SOH\n\
    \\v\n\
    \\ETX\EOT\SI\SOH\DC2\EOT\157\a\b\ETB\n\
    \1\n\
    \\EOT\EOT\SI\STX\NUL\DC2\EOT\159\a\EOT(\SUB# The map from addresses to amounts\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\NUL\EOT\DC2\ACK\159\a\EOT\157\a\EM\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\ACK\DC2\EOT\159\a\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\SOH\DC2\EOT\159\a\ETB#\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\NUL\ETX\DC2\EOT\159\a&'\n\
    \Z\n\
    \\EOT\EOT\SI\STX\SOH\DC2\EOT\163\a\EOT\SUB\SUBL The target number of blocks that this transaction should be confirmed\n\
    \ by.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\SOH\EOT\DC2\ACK\163\a\EOT\159\a(\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\ENQ\DC2\EOT\163\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\SOH\DC2\EOT\163\a\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\SOH\ETX\DC2\EOT\163\a\CAN\EM\n\
    \f\n\
    \\EOT\EOT\SI\STX\STX\DC2\EOT\167\a\EOT\GS\SUBX A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\STX\EOT\DC2\ACK\167\a\EOT\163\a\SUB\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\ENQ\DC2\EOT\167\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\SOH\DC2\EOT\167\a\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\STX\ETX\DC2\EOT\167\a\ESC\FS\n\
    \\134\SOH\n\
    \\EOT\EOT\SI\STX\ETX\DC2\EOT\172\a\EOT/\SUBx Deprecated, use sat_per_vbyte.\n\
    \ A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\ETX\EOT\DC2\ACK\172\a\EOT\167\a\GS\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ETX\ENQ\DC2\EOT\172\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ETX\SOH\DC2\EOT\172\a\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ETX\ETX\DC2\EOT\172\a\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ETX\b\DC2\EOT\172\a\ESC.\n\
    \\SO\n\
    \\ACK\EOT\SI\STX\ETX\b\ETX\DC2\EOT\172\a\FS-\n\
    \Q\n\
    \\EOT\EOT\SI\STX\EOT\DC2\EOT\175\a\EOT\NAK\SUBC An optional label for the transaction, limited to 500 characters.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\EOT\EOT\DC2\ACK\175\a\EOT\172\a/\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\EOT\ENQ\DC2\EOT\175\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\EOT\SOH\DC2\EOT\175\a\v\DLE\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\EOT\ETX\DC2\EOT\175\a\DC3\DC4\n\
    \t\n\
    \\EOT\EOT\SI\STX\ENQ\DC2\EOT\179\a\EOT\CAN\SUBf The minimum number of confirmations each one of your outputs used for\n\
    \ the transaction must satisfy.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\ENQ\EOT\DC2\ACK\179\a\EOT\175\a\NAK\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ENQ\ENQ\DC2\EOT\179\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ENQ\SOH\DC2\EOT\179\a\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ENQ\ETX\DC2\EOT\179\a\SYN\ETB\n\
    \Y\n\
    \\EOT\EOT\SI\STX\ACK\DC2\EOT\182\a\EOT\US\SUBK Whether unconfirmed outputs should be used as inputs for the transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SI\STX\ACK\EOT\DC2\ACK\182\a\EOT\179\a\CAN\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ACK\ENQ\DC2\EOT\182\a\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ACK\SOH\DC2\EOT\182\a\t\SUB\n\
    \\r\n\
    \\ENQ\EOT\SI\STX\ACK\ETX\DC2\EOT\182\a\GS\RS\n\
    \\f\n\
    \\STX\EOT\DLE\DC2\ACK\184\a\NUL\187\a\SOH\n\
    \\v\n\
    \\ETX\EOT\DLE\SOH\DC2\EOT\184\a\b\CAN\n\
    \)\n\
    \\EOT\EOT\DLE\STX\NUL\DC2\EOT\186\a\EOT\DC4\SUB\ESC The id of the transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DLE\STX\NUL\EOT\DC2\ACK\186\a\EOT\184\a\SUB\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\ENQ\DC2\EOT\186\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\SOH\DC2\EOT\186\a\v\SI\n\
    \\r\n\
    \\ENQ\EOT\DLE\STX\NUL\ETX\DC2\EOT\186\a\DC2\DC3\n\
    \\f\n\
    \\STX\EOT\DC1\DC2\ACK\189\a\NUL\225\a\SOH\n\
    \\v\n\
    \\ETX\EOT\DC1\SOH\DC2\EOT\189\a\b\CAN\n\
    \,\n\
    \\EOT\EOT\DC1\STX\NUL\DC2\EOT\191\a\EOT\DC4\SUB\RS The address to send coins to\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\NUL\EOT\DC2\ACK\191\a\EOT\189\a\SUB\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\ENQ\DC2\EOT\191\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\SOH\DC2\EOT\191\a\v\SI\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\NUL\ETX\DC2\EOT\191\a\DC2\DC3\n\
    \.\n\
    \\EOT\EOT\DC1\STX\SOH\DC2\EOT\194\a\EOT\NAK\SUB  The amount in satoshis to send\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\SOH\EOT\DC2\ACK\194\a\EOT\191\a\DC4\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\SOH\ENQ\DC2\EOT\194\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\SOH\SOH\DC2\EOT\194\a\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\SOH\ETX\DC2\EOT\194\a\DC3\DC4\n\
    \Z\n\
    \\EOT\EOT\DC1\STX\STX\DC2\EOT\198\a\EOT\SUB\SUBL The target number of blocks that this transaction should be confirmed\n\
    \ by.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\STX\EOT\DC2\ACK\198\a\EOT\194\a\NAK\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\STX\ENQ\DC2\EOT\198\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\STX\SOH\DC2\EOT\198\a\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\STX\ETX\DC2\EOT\198\a\CAN\EM\n\
    \f\n\
    \\EOT\EOT\DC1\STX\ETX\DC2\EOT\202\a\EOT\GS\SUBX A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\ETX\EOT\DC2\ACK\202\a\EOT\198\a\SUB\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ETX\ENQ\DC2\EOT\202\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ETX\SOH\DC2\EOT\202\a\v\CAN\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ETX\ETX\DC2\EOT\202\a\ESC\FS\n\
    \\134\SOH\n\
    \\EOT\EOT\DC1\STX\EOT\DC2\EOT\207\a\EOT/\SUBx Deprecated, use sat_per_vbyte.\n\
    \ A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\EOT\EOT\DC2\ACK\207\a\EOT\202\a\GS\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\EOT\ENQ\DC2\EOT\207\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\EOT\SOH\DC2\EOT\207\a\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\EOT\ETX\DC2\EOT\207\a\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\EOT\b\DC2\EOT\207\a\ESC.\n\
    \\SO\n\
    \\ACK\EOT\DC1\STX\EOT\b\ETX\DC2\EOT\207\a\FS-\n\
    \\169\SOH\n\
    \\EOT\EOT\DC1\STX\ENQ\DC2\EOT\214\a\EOT\SYN\SUB\154\SOH\n\
    \If set, then the amount field will be ignored, and lnd will attempt to\n\
    \send all the coins under control of the internal wallet to the specified\n\
    \address.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\ENQ\EOT\DC2\ACK\214\a\EOT\207\a/\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ENQ\ENQ\DC2\EOT\214\a\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ENQ\SOH\DC2\EOT\214\a\t\DC1\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ENQ\ETX\DC2\EOT\214\a\DC4\NAK\n\
    \Q\n\
    \\EOT\EOT\DC1\STX\ACK\DC2\EOT\217\a\EOT\NAK\SUBC An optional label for the transaction, limited to 500 characters.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\ACK\EOT\DC2\ACK\217\a\EOT\214\a\SYN\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ACK\ENQ\DC2\EOT\217\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ACK\SOH\DC2\EOT\217\a\v\DLE\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\ACK\ETX\DC2\EOT\217\a\DC3\DC4\n\
    \t\n\
    \\EOT\EOT\DC1\STX\a\DC2\EOT\221\a\EOT\CAN\SUBf The minimum number of confirmations each one of your outputs used for\n\
    \ the transaction must satisfy.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\a\EOT\DC2\ACK\221\a\EOT\217\a\NAK\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\a\ENQ\DC2\EOT\221\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\a\SOH\DC2\EOT\221\a\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\a\ETX\DC2\EOT\221\a\SYN\ETB\n\
    \Y\n\
    \\EOT\EOT\DC1\STX\b\DC2\EOT\224\a\EOT\US\SUBK Whether unconfirmed outputs should be used as inputs for the transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC1\STX\b\EOT\DC2\ACK\224\a\EOT\221\a\CAN\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\b\ENQ\DC2\EOT\224\a\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\b\SOH\DC2\EOT\224\a\t\SUB\n\
    \\r\n\
    \\ENQ\EOT\DC1\STX\b\ETX\DC2\EOT\224\a\GS\RS\n\
    \\f\n\
    \\STX\EOT\DC2\DC2\ACK\226\a\NUL\229\a\SOH\n\
    \\v\n\
    \\ETX\EOT\DC2\SOH\DC2\EOT\226\a\b\EM\n\
    \5\n\
    \\EOT\EOT\DC2\STX\NUL\DC2\EOT\228\a\EOT\DC4\SUB' The transaction ID of the transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC2\STX\NUL\EOT\DC2\ACK\228\a\EOT\226\a\ESC\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\ENQ\DC2\EOT\228\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\SOH\DC2\EOT\228\a\v\SI\n\
    \\r\n\
    \\ENQ\EOT\DC2\STX\NUL\ETX\DC2\EOT\228\a\DC2\DC3\n\
    \\f\n\
    \\STX\EOT\DC3\DC2\ACK\231\a\NUL\240\a\SOH\n\
    \\v\n\
    \\ETX\EOT\DC3\SOH\DC2\EOT\231\a\b\SUB\n\
    \C\n\
    \\EOT\EOT\DC3\STX\NUL\DC2\EOT\233\a\EOT\CAN\SUB5 The minimum number of confirmations to be included.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC3\STX\NUL\EOT\DC2\ACK\233\a\EOT\231\a\FS\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\ENQ\DC2\EOT\233\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\SOH\DC2\EOT\233\a\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\NUL\ETX\DC2\EOT\233\a\SYN\ETB\n\
    \C\n\
    \\EOT\EOT\DC3\STX\SOH\DC2\EOT\236\a\EOT\CAN\SUB5 The maximum number of confirmations to be included.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC3\STX\SOH\EOT\DC2\ACK\236\a\EOT\233\a\CAN\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\ENQ\DC2\EOT\236\a\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\SOH\DC2\EOT\236\a\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\SOH\ETX\DC2\EOT\236\a\SYN\ETB\n\
    \S\n\
    \\EOT\EOT\DC3\STX\STX\DC2\EOT\239\a\EOT\ETB\SUBE An optional filter to only include outputs belonging to an account.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\DC3\STX\STX\EOT\DC2\ACK\239\a\EOT\236\a\CAN\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\ENQ\DC2\EOT\239\a\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\SOH\DC2\EOT\239\a\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\DC3\STX\STX\ETX\DC2\EOT\239\a\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\DC4\DC2\ACK\241\a\NUL\244\a\SOH\n\
    \\v\n\
    \\ETX\EOT\DC4\SOH\DC2\EOT\241\a\b\ESC\n\
    \\US\n\
    \\EOT\EOT\DC4\STX\NUL\DC2\EOT\243\a\EOT\FS\SUB\DC1 A list of utxos\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\EOT\DC2\EOT\243\a\EOT\f\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\ACK\DC2\EOT\243\a\r\DC1\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\SOH\DC2\EOT\243\a\DC2\ETB\n\
    \\r\n\
    \\ENQ\EOT\DC4\STX\NUL\ETX\DC2\EOT\243\a\SUB\ESC\n\
    \\182\SOH\n\
    \\STX\ENQ\NUL\DC2\ACK\252\a\NUL\129\b\SOH\SUB\167\SOH\n\
    \`AddressType` has to be one of:\n\
    \\n\
    \- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n\
    \- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)\n\
    \\n\
    \\v\n\
    \\ETX\ENQ\NUL\SOH\DC2\EOT\252\a\ENQ\DLE\n\
    \\f\n\
    \\EOT\ENQ\NUL\STX\NUL\DC2\EOT\253\a\EOT\FS\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\EOT\253\a\EOT\ETB\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\EOT\253\a\SUB\ESC\n\
    \\f\n\
    \\EOT\ENQ\NUL\STX\SOH\DC2\EOT\254\a\EOT\ESC\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\EOT\254\a\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\EOT\254\a\EM\SUB\n\
    \\f\n\
    \\EOT\ENQ\NUL\STX\STX\DC2\EOT\255\a\EOT#\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\EOT\255\a\EOT\RS\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\STX\STX\DC2\EOT\255\a!\"\n\
    \\f\n\
    \\EOT\ENQ\NUL\STX\ETX\DC2\EOT\128\b\EOT\"\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\EOT\128\b\EOT\GS\n\
    \\r\n\
    \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\EOT\128\b !\n\
    \\f\n\
    \\STX\EOT\NAK\DC2\ACK\131\b\NUL\140\b\SOH\n\
    \\v\n\
    \\ETX\EOT\NAK\SOH\DC2\EOT\131\b\b\EM\n\
    \0\n\
    \\EOT\EOT\NAK\STX\NUL\DC2\EOT\133\b\EOT\EM\SUB\" The type of address to generate.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NAK\STX\NUL\EOT\DC2\ACK\133\b\EOT\131\b\ESC\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\NUL\ACK\DC2\EOT\133\b\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\NUL\SOH\DC2\EOT\133\b\DLE\DC4\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\NUL\ETX\DC2\EOT\133\b\ETB\CAN\n\
    \t\n\
    \\EOT\EOT\NAK\STX\SOH\DC2\EOT\139\b\EOT\ETB\SUBf\n\
    \The name of the account to generate a new address for. If empty, the\n\
    \default wallet account is used.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\NAK\STX\SOH\EOT\DC2\ACK\139\b\EOT\133\b\EM\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\SOH\ENQ\DC2\EOT\139\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\SOH\SOH\DC2\EOT\139\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\NAK\STX\SOH\ETX\DC2\EOT\139\b\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\SYN\DC2\ACK\141\b\NUL\144\b\SOH\n\
    \\v\n\
    \\ETX\EOT\SYN\SOH\DC2\EOT\141\b\b\SUB\n\
    \2\n\
    \\EOT\EOT\SYN\STX\NUL\DC2\EOT\143\b\EOT\ETB\SUB$ The newly generated wallet address\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SYN\STX\NUL\EOT\DC2\ACK\143\b\EOT\141\b\FS\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\ENQ\DC2\EOT\143\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\SOH\DC2\EOT\143\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\SYN\STX\NUL\ETX\DC2\EOT\143\b\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\ETB\DC2\ACK\146\b\NUL\152\b\SOH\n\
    \\v\n\
    \\ETX\EOT\ETB\SOH\DC2\EOT\146\b\b\SUB\n\
    \`\n\
    \\EOT\EOT\ETB\STX\NUL\DC2\EOT\151\b\EOT\DC2\SUBR\n\
    \The message to be signed. When using REST, this field must be encoded as\n\
    \base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ETB\STX\NUL\EOT\DC2\ACK\151\b\EOT\146\b\FS\n\
    \\r\n\
    \\ENQ\EOT\ETB\STX\NUL\ENQ\DC2\EOT\151\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\ETB\STX\NUL\SOH\DC2\EOT\151\b\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT\ETB\STX\NUL\ETX\DC2\EOT\151\b\DLE\DC1\n\
    \\f\n\
    \\STX\EOT\CAN\DC2\ACK\153\b\NUL\156\b\SOH\n\
    \\v\n\
    \\ETX\EOT\CAN\SOH\DC2\EOT\153\b\b\ESC\n\
    \3\n\
    \\EOT\EOT\CAN\STX\NUL\DC2\EOT\155\b\EOT\EM\SUB% The signature for the given message\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\CAN\STX\NUL\EOT\DC2\ACK\155\b\EOT\153\b\GS\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\ENQ\DC2\EOT\155\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\SOH\DC2\EOT\155\b\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\CAN\STX\NUL\ETX\DC2\EOT\155\b\ETB\CAN\n\
    \\f\n\
    \\STX\EOT\EM\DC2\ACK\158\b\NUL\167\b\SOH\n\
    \\v\n\
    \\ETX\EOT\EM\SOH\DC2\EOT\158\b\b\FS\n\
    \~\n\
    \\EOT\EOT\EM\STX\NUL\DC2\EOT\163\b\EOT\DC2\SUBp\n\
    \The message over which the signature is to be verified. When using REST,\n\
    \this field must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\EM\STX\NUL\EOT\DC2\ACK\163\b\EOT\158\b\RS\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\NUL\ENQ\DC2\EOT\163\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\NUL\SOH\DC2\EOT\163\b\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\NUL\ETX\DC2\EOT\163\b\DLE\DC1\n\
    \C\n\
    \\EOT\EOT\EM\STX\SOH\DC2\EOT\166\b\EOT\EM\SUB5 The signature to be verified over the given message\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\EM\STX\SOH\EOT\DC2\ACK\166\b\EOT\163\b\DC2\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\SOH\ENQ\DC2\EOT\166\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\SOH\SOH\DC2\EOT\166\b\v\DC4\n\
    \\r\n\
    \\ENQ\EOT\EM\STX\SOH\ETX\DC2\EOT\166\b\ETB\CAN\n\
    \\f\n\
    \\STX\EOT\SUB\DC2\ACK\168\b\NUL\174\b\SOH\n\
    \\v\n\
    \\ETX\EOT\SUB\SOH\DC2\EOT\168\b\b\GS\n\
    \F\n\
    \\EOT\EOT\SUB\STX\NUL\DC2\EOT\170\b\EOT\DC3\SUB8 Whether the signature was valid over the given message\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SUB\STX\NUL\EOT\DC2\ACK\170\b\EOT\168\b\US\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\ENQ\DC2\EOT\170\b\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\SOH\DC2\EOT\170\b\t\SO\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\NUL\ETX\DC2\EOT\170\b\DC1\DC2\n\
    \7\n\
    \\EOT\EOT\SUB\STX\SOH\DC2\EOT\173\b\EOT\SYN\SUB) The pubkey recovered from the signature\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\SUB\STX\SOH\EOT\DC2\ACK\173\b\EOT\170\b\DC3\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\ENQ\DC2\EOT\173\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\SOH\DC2\EOT\173\b\v\DC1\n\
    \\r\n\
    \\ENQ\EOT\SUB\STX\SOH\ETX\DC2\EOT\173\b\DC4\NAK\n\
    \\f\n\
    \\STX\EOT\ESC\DC2\ACK\176\b\NUL\189\b\SOH\n\
    \\v\n\
    \\ETX\EOT\ESC\SOH\DC2\EOT\176\b\b\SUB\n\
    \L\n\
    \\EOT\EOT\ESC\STX\NUL\DC2\EOT\178\b\EOT\RS\SUB> Lightning address of the peer, in the format `<pubkey>@host`\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ESC\STX\NUL\EOT\DC2\ACK\178\b\EOT\176\b\FS\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\ACK\DC2\EOT\178\b\EOT\DC4\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\SOH\DC2\EOT\178\b\NAK\EM\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\NUL\ETX\DC2\EOT\178\b\FS\GS\n\
    \\133\SOH\n\
    \\EOT\EOT\ESC\STX\SOH\DC2\EOT\182\b\EOT\DC2\SUBw If set, the daemon will attempt to persistently connect to the target\n\
    \ peer. Otherwise, the call will be synchronous. \n\
    \\SI\n\
    \\ENQ\EOT\ESC\STX\SOH\EOT\DC2\ACK\182\b\EOT\178\b\RS\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\ENQ\DC2\EOT\182\b\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\SOH\DC2\EOT\182\b\t\r\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\SOH\ETX\DC2\EOT\182\b\DLE\DC1\n\
    \k\n\
    \\EOT\EOT\ESC\STX\STX\DC2\EOT\188\b\EOT\ETB\SUB]\n\
    \The connection timeout value (in seconds) for this request. It won't affect\n\
    \other requests.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\ESC\STX\STX\EOT\DC2\ACK\188\b\EOT\182\b\DC2\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\STX\ENQ\DC2\EOT\188\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\STX\SOH\DC2\EOT\188\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\ESC\STX\STX\ETX\DC2\EOT\188\b\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\FS\DC2\ACK\190\b\NUL\191\b\SOH\n\
    \\v\n\
    \\ETX\EOT\FS\SOH\DC2\EOT\190\b\b\ESC\n\
    \\f\n\
    \\STX\EOT\GS\DC2\ACK\193\b\NUL\196\b\SOH\n\
    \\v\n\
    \\ETX\EOT\GS\SOH\DC2\EOT\193\b\b\GS\n\
    \9\n\
    \\EOT\EOT\GS\STX\NUL\DC2\EOT\195\b\EOT\ETB\SUB+ The pubkey of the node to disconnect from\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\GS\STX\NUL\EOT\DC2\ACK\195\b\EOT\193\b\US\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\ENQ\DC2\EOT\195\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\SOH\DC2\EOT\195\b\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\GS\STX\NUL\ETX\DC2\EOT\195\b\NAK\SYN\n\
    \\f\n\
    \\STX\EOT\RS\DC2\ACK\197\b\NUL\198\b\SOH\n\
    \\v\n\
    \\ETX\EOT\RS\SOH\DC2\EOT\197\b\b\RS\n\
    \\f\n\
    \\STX\EOT\US\DC2\ACK\200\b\NUL\220\b\SOH\n\
    \\v\n\
    \\ETX\EOT\US\SOH\DC2\EOT\200\b\b\f\n\
    \\f\n\
    \\EOT\EOT\US\STX\NUL\DC2\EOT\201\b\EOT\SYN\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\NUL\EOT\DC2\ACK\201\b\EOT\200\b\SO\n\
    \\r\n\
    \\ENQ\EOT\US\STX\NUL\ENQ\DC2\EOT\201\b\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\US\STX\NUL\SOH\DC2\EOT\201\b\t\DC1\n\
    \\r\n\
    \\ENQ\EOT\US\STX\NUL\ETX\DC2\EOT\201\b\DC4\NAK\n\
    \\f\n\
    \\EOT\EOT\US\STX\SOH\DC2\EOT\202\b\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\SOH\EOT\DC2\ACK\202\b\EOT\201\b\SYN\n\
    \\r\n\
    \\ENQ\EOT\US\STX\SOH\ENQ\DC2\EOT\202\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\US\STX\SOH\SOH\DC2\EOT\202\b\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT\US\STX\SOH\ETX\DC2\EOT\202\b\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT\US\STX\STX\DC2\EOT\203\b\EOT\CAN\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\STX\EOT\DC2\ACK\203\b\EOT\202\b\NAK\n\
    \\r\n\
    \\ENQ\EOT\US\STX\STX\ENQ\DC2\EOT\203\b\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\US\STX\STX\SOH\DC2\EOT\203\b\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT\US\STX\STX\ETX\DC2\EOT\203\b\SYN\ETB\n\
    \\f\n\
    \\EOT\EOT\US\STX\ETX\DC2\EOT\204\b\EOT!\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\ETX\EOT\DC2\ACK\204\b\EOT\203\b\CAN\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ETX\ENQ\DC2\EOT\204\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ETX\SOH\DC2\EOT\204\b\v\FS\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ETX\ETX\DC2\EOT\204\b\US \n\
    \:\n\
    \\EOT\EOT\US\STX\EOT\DC2\EOT\207\b\EOT\SUB\SUB, Index identifying the htlc on the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\EOT\EOT\DC2\ACK\207\b\EOT\204\b!\n\
    \\r\n\
    \\ENQ\EOT\US\STX\EOT\ENQ\DC2\EOT\207\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\US\STX\EOT\SOH\DC2\EOT\207\b\v\NAK\n\
    \\r\n\
    \\ENQ\EOT\US\STX\EOT\ETX\DC2\EOT\207\b\CAN\EM\n\
    \\204\ETX\n\
    \\EOT\EOT\US\STX\ENQ\DC2\EOT\216\b\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\
    \\SI\n\
    \\ENQ\EOT\US\STX\ENQ\EOT\DC2\ACK\216\b\EOT\207\b\SUB\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ENQ\ENQ\DC2\EOT\216\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ENQ\SOH\DC2\EOT\216\b\v\GS\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ENQ\ETX\DC2\EOT\216\b !\n\
    \E\n\
    \\EOT\EOT\US\STX\ACK\DC2\EOT\219\b\EOT%\SUB7 Index identifying the htlc on the forwarding channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\US\STX\ACK\EOT\DC2\ACK\219\b\EOT\216\b\"\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ACK\ENQ\DC2\EOT\219\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\US\STX\ACK\SOH\DC2\EOT\219\b\v \n\
    \\r\n\
    \\ENQ\EOT\US\STX\ACK\ETX\DC2\EOT\219\b#$\n\
    \\f\n\
    \\STX\ENQ\SOH\DC2\ACK\222\b\NUL\248\b\SOH\n\
    \\v\n\
    \\ETX\ENQ\SOH\SOH\DC2\EOT\222\b\ENQ\DC3\n\
    \[\n\
    \\EOT\ENQ\SOH\STX\NUL\DC2\EOT\227\b\EOT\SI\SUBM\n\
    \A channel using the legacy commitment format having tweaked to_remote\n\
    \keys.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\EOT\227\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\EOT\227\b\r\SO\n\
    \\246\SOH\n\
    \\EOT\ENQ\SOH\STX\SOH\DC2\EOT\235\b\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\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\EOT\235\b\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\EOT\235\b\CAN\EM\n\
    \\173\SOH\n\
    \\EOT\ENQ\SOH\STX\STX\DC2\EOT\242\b\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\SOH\STX\STX\SOH\DC2\EOT\242\b\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\STX\STX\DC2\EOT\242\b\SO\SI\n\
    \M\n\
    \\EOT\ENQ\SOH\STX\ETX\DC2\EOT\247\b\EOT\"\SUB?\n\
    \Returned when the commitment type isn't known or unavailable.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\ETX\SOH\DC2\EOT\247\b\EOT\ESC\n\
    \\r\n\
    \\ENQ\ENQ\SOH\STX\ETX\STX\DC2\EOT\247\b\RS!\n\
    \\f\n\
    \\STX\EOT \DC2\ACK\250\b\NUL\144\t\SOH\n\
    \\v\n\
    \\ETX\EOT \SOH\DC2\EOT\250\b\b\SUB\n\
    \\166\SOH\n\
    \\EOT\EOT \STX\NUL\DC2\EOT\255\b\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\
    \\SI\n\
    \\ENQ\EOT \STX\NUL\EOT\DC2\ACK\255\b\EOT\250\b\FS\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\ENQ\DC2\EOT\255\b\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\SOH\DC2\EOT\255\b\v\DC4\n\
    \\r\n\
    \\ENQ\EOT \STX\NUL\ETX\DC2\EOT\255\b\ETB\CAN\n\
    \U\n\
    \\EOT\EOT \STX\SOH\DC2\EOT\130\t\EOT \SUBG The minimum satoshis this node is required to reserve in its balance.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT \STX\SOH\EOT\DC2\ACK\130\t\EOT\255\b\EM\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\ENQ\DC2\EOT\130\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\SOH\DC2\EOT\130\t\v\ESC\n\
    \\r\n\
    \\ENQ\EOT \STX\SOH\ETX\DC2\EOT\130\t\RS\US\n\
    \N\n\
    \\EOT\EOT \STX\STX\DC2\EOT\133\t\EOT\RS\SUB@ The dust limit (in satoshis) of the initiator's commitment tx.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT \STX\STX\EOT\DC2\ACK\133\t\EOT\130\t \n\
    \\r\n\
    \\ENQ\EOT \STX\STX\ENQ\DC2\EOT\133\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\STX\SOH\DC2\EOT\133\t\v\EM\n\
    \\r\n\
    \\ENQ\EOT \STX\STX\ETX\DC2\EOT\133\t\FS\GS\n\
    \b\n\
    \\EOT\EOT \STX\ETX\DC2\EOT\137\t\EOT$\SUBT The maximum amount of coins in millisatoshis that can be pending in this\n\
    \ channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT \STX\ETX\EOT\DC2\ACK\137\t\EOT\133\t\RS\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\ENQ\DC2\EOT\137\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\SOH\DC2\EOT\137\t\v\US\n\
    \\r\n\
    \\ENQ\EOT \STX\ETX\ETX\DC2\EOT\137\t\"#\n\
    \R\n\
    \\EOT\EOT \STX\EOT\DC2\EOT\140\t\EOT\GS\SUBD The smallest HTLC in millisatoshis that the initiator will accept.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT \STX\EOT\EOT\DC2\ACK\140\t\EOT\137\t$\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\ENQ\DC2\EOT\140\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\SOH\DC2\EOT\140\t\v\CAN\n\
    \\r\n\
    \\ENQ\EOT \STX\EOT\ETX\DC2\EOT\140\t\ESC\FS\n\
    \S\n\
    \\EOT\EOT \STX\ENQ\DC2\EOT\143\t\EOT\"\SUBE The total number of incoming HTLC's that the initiator will accept.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT \STX\ENQ\EOT\DC2\ACK\143\t\EOT\140\t\GS\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\ENQ\DC2\EOT\143\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\SOH\DC2\EOT\143\t\v\GS\n\
    \\r\n\
    \\ENQ\EOT \STX\ENQ\ETX\DC2\EOT\143\t !\n\
    \\f\n\
    \\STX\EOT!\DC2\ACK\146\t\NUL\169\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT!\SOH\DC2\EOT\146\t\b\SI\n\
    \5\n\
    \\EOT\EOT!\STX\NUL\DC2\EOT\148\t\EOT\DC4\SUB' Whether this channel is active or not\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\NUL\EOT\DC2\ACK\148\t\EOT\146\t\DC1\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\ENQ\DC2\EOT\148\t\EOT\b\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\SOH\DC2\EOT\148\t\t\SI\n\
    \\r\n\
    \\ENQ\EOT!\STX\NUL\ETX\DC2\EOT\148\t\DC2\DC3\n\
    \6\n\
    \\EOT\EOT!\STX\SOH\DC2\EOT\151\t\EOT\GS\SUB( The identity pubkey of the remote node\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\SOH\EOT\DC2\ACK\151\t\EOT\148\t\DC4\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\ENQ\DC2\EOT\151\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\SOH\DC2\EOT\151\t\v\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\SOH\ETX\DC2\EOT\151\t\ESC\FS\n\
    \\179\SOH\n\
    \\EOT\EOT!\STX\STX\DC2\EOT\158\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\STX\EOT\DC2\ACK\158\t\EOT\151\t\GS\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\ENQ\DC2\EOT\158\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\SOH\DC2\EOT\158\t\v\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\STX\ETX\DC2\EOT\158\t\ESC\FS\n\
    \\193\SOH\n\
    \\EOT\EOT!\STX\ETX\DC2\EOT\165\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\ETX\EOT\DC2\ACK\165\t\EOT\158\t\GS\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\ENQ\DC2\EOT\165\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\SOH\DC2\EOT\165\t\v\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\ETX\DC2\EOT\165\t\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETX\b\DC2\EOT\165\t\ETB+\n\
    \\SO\n\
    \\ACK\EOT!\STX\ETX\b\ACK\DC2\EOT\165\t\CAN*\n\
    \>\n\
    \\EOT\EOT!\STX\EOT\DC2\EOT\168\t\EOT\ETB\SUB0 The total amount of funds held in this channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\EOT\EOT\DC2\ACK\168\t\EOT\165\t,\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\ENQ\DC2\EOT\168\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\SOH\DC2\EOT\168\t\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\EOT\ETX\DC2\EOT\168\t\NAK\SYN\n\
    \;\n\
    \\EOT\EOT!\STX\ENQ\DC2\EOT\171\t\EOT\FS\SUB- This node's current balance in this channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\ENQ\EOT\DC2\ACK\171\t\EOT\168\t\ETB\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\ENQ\DC2\EOT\171\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\SOH\DC2\EOT\171\t\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT!\STX\ENQ\ETX\DC2\EOT\171\t\SUB\ESC\n\
    \B\n\
    \\EOT\EOT!\STX\ACK\DC2\EOT\174\t\EOT\GS\SUB4 The counterparty's current balance in this channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\ACK\EOT\DC2\ACK\174\t\EOT\171\t\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\ENQ\DC2\EOT\174\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\SOH\DC2\EOT\174\t\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\ACK\ETX\DC2\EOT\174\t\ESC\FS\n\
    \\172\STX\n\
    \\EOT\EOT!\STX\a\DC2\EOT\182\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\a\EOT\DC2\ACK\182\t\EOT\174\t\GS\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\ENQ\DC2\EOT\182\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\SOH\DC2\EOT\182\t\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT!\STX\a\ETX\DC2\EOT\182\t\ETB\CAN\n\
    \8\n\
    \\EOT\EOT!\STX\b\DC2\EOT\185\t\EOT\FS\SUB* The weight of the commitment transaction\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\b\EOT\DC2\ACK\185\t\EOT\182\t\EM\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\ENQ\DC2\EOT\185\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\SOH\DC2\EOT\185\t\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT!\STX\b\ETX\DC2\EOT\185\t\SUB\ESC\n\
    \\225\SOH\n\
    \\EOT\EOT!\STX\t\DC2\EOT\192\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\t\EOT\DC2\ACK\192\t\EOT\185\t\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\ENQ\DC2\EOT\192\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\SOH\DC2\EOT\192\t\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT!\STX\t\ETX\DC2\EOT\192\t\ETB\EM\n\
    \5\n\
    \\EOT\EOT!\STX\n\
    \\DC2\EOT\195\t\EOT!\SUB' The unsettled balance in this channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\n\
    \\EOT\DC2\ACK\195\t\EOT\192\t\SUB\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\ENQ\DC2\EOT\195\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\SOH\DC2\EOT\195\t\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT!\STX\n\
    \\ETX\DC2\EOT\195\t\RS \n\
    \L\n\
    \\EOT\EOT!\STX\v\DC2\EOT\200\t\EOT#\SUB>\n\
    \The total number of satoshis we've sent within this channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\v\EOT\DC2\ACK\200\t\EOT\195\t!\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\ENQ\DC2\EOT\200\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\SOH\DC2\EOT\200\t\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT!\STX\v\ETX\DC2\EOT\200\t \"\n\
    \P\n\
    \\EOT\EOT!\STX\f\DC2\EOT\205\t\EOT'\SUBB\n\
    \The total number of satoshis we've received within this channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\f\EOT\DC2\ACK\205\t\EOT\200\t#\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\ENQ\DC2\EOT\205\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\SOH\DC2\EOT\205\t\n\
    \!\n\
    \\r\n\
    \\ENQ\EOT!\STX\f\ETX\DC2\EOT\205\t$&\n\
    \J\n\
    \\EOT\EOT!\STX\r\DC2\EOT\210\t\EOT\FS\SUB<\n\
    \The total number of updates conducted within this channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\r\EOT\DC2\ACK\210\t\EOT\205\t'\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\ENQ\DC2\EOT\210\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\SOH\DC2\EOT\210\t\v\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\r\ETX\DC2\EOT\210\t\EM\ESC\n\
    \Y\n\
    \\EOT\EOT!\STX\SO\DC2\EOT\215\t\EOT%\SUBK\n\
    \The list of active, uncleared HTLCs currently pending within the channel.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\EOT\DC2\EOT\215\t\EOT\f\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\ACK\DC2\EOT\215\t\r\DC1\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\SOH\DC2\EOT\215\t\DC2\US\n\
    \\r\n\
    \\ENQ\EOT!\STX\SO\ETX\DC2\EOT\215\t\"$\n\
    \\178\SOH\n\
    \\EOT\EOT!\STX\SI\DC2\EOT\222\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\SI\EOT\DC2\ACK\222\t\EOT\215\t%\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\ENQ\DC2\EOT\222\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\SOH\DC2\EOT\222\t\v\DC4\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\ETX\DC2\EOT\222\t\ETB\EM\n\
    \\r\n\
    \\ENQ\EOT!\STX\SI\b\DC2\EOT\222\t\SUB-\n\
    \\SO\n\
    \\ACK\EOT!\STX\SI\b\ETX\DC2\EOT\222\t\ESC,\n\
    \I\n\
    \\EOT\EOT!\STX\DLE\DC2\EOT\225\t\EOT\SYN\SUB; Whether this channel is advertised to the network or not.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\DLE\EOT\DC2\ACK\225\t\EOT\222\t.\n\
    \\r\n\
    \\ENQ\EOT!\STX\DLE\ENQ\DC2\EOT\225\t\EOT\b\n\
    \\r\n\
    \\ENQ\EOT!\STX\DLE\SOH\DC2\EOT\225\t\t\DLE\n\
    \\r\n\
    \\ENQ\EOT!\STX\DLE\ETX\DC2\EOT\225\t\DC3\NAK\n\
    \B\n\
    \\EOT\EOT!\STX\DC1\DC2\EOT\228\t\EOT\CAN\SUB4 True if we were the ones that created the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\DC1\EOT\DC2\ACK\228\t\EOT\225\t\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC1\ENQ\DC2\EOT\228\t\EOT\b\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC1\SOH\DC2\EOT\228\t\t\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC1\ETX\DC2\EOT\228\t\NAK\ETB\n\
    \H\n\
    \\EOT\EOT!\STX\DC2\DC2\EOT\231\t\EOT\"\SUB: A set of flags showing the current state of the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\DC2\EOT\DC2\ACK\231\t\EOT\228\t\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC2\ENQ\DC2\EOT\231\t\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC2\SOH\DC2\EOT\231\t\v\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC2\ETX\DC2\EOT\231\t\US!\n\
    \b\n\
    \\EOT\EOT!\STX\DC3\DC2\EOT\235\t\EOT:\SUBT Deprecated. The minimum satoshis this node is required to reserve in its\n\
    \ balance.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\DC3\EOT\DC2\ACK\235\t\EOT\231\t\"\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC3\ENQ\DC2\EOT\235\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC3\SOH\DC2\EOT\235\t\n\
    \ \n\
    \\r\n\
    \\ENQ\EOT!\STX\DC3\ETX\DC2\EOT\235\t#%\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC3\b\DC2\EOT\235\t&9\n\
    \\SO\n\
    \\ACK\EOT!\STX\DC3\b\ETX\DC2\EOT\235\t'8\n\
    \f\n\
    \\EOT\EOT!\STX\DC4\DC2\EOT\241\t\EOT;\SUBX\n\
    \Deprecated. The minimum satoshis the other node is required to reserve in\n\
    \its balance.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\DC4\EOT\DC2\ACK\241\t\EOT\235\t:\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC4\ENQ\DC2\EOT\241\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC4\SOH\DC2\EOT\241\t\n\
    \!\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC4\ETX\DC2\EOT\241\t$&\n\
    \\r\n\
    \\ENQ\EOT!\STX\DC4\b\DC2\EOT\241\t':\n\
    \\SO\n\
    \\ACK\EOT!\STX\DC4\b\ETX\DC2\EOT\241\t(9\n\
    \0\n\
    \\EOT\EOT!\STX\NAK\DC2\EOT\244\t\EOT4\SUB\" Deprecated. Use commitment_type.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\NAK\EOT\DC2\ACK\244\t\EOT\241\t;\n\
    \\r\n\
    \\ENQ\EOT!\STX\NAK\ENQ\DC2\EOT\244\t\EOT\b\n\
    \\r\n\
    \\ENQ\EOT!\STX\NAK\SOH\DC2\EOT\244\t\t\SUB\n\
    \\r\n\
    \\ENQ\EOT!\STX\NAK\ETX\DC2\EOT\244\t\GS\US\n\
    \\r\n\
    \\ENQ\EOT!\STX\NAK\b\DC2\EOT\244\t 3\n\
    \\SO\n\
    \\ACK\EOT!\STX\NAK\b\ETX\DC2\EOT\244\t!2\n\
    \9\n\
    \\EOT\EOT!\STX\SYN\DC2\EOT\247\t\EOT(\SUB+ The commitment type used by this channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\SYN\EOT\DC2\ACK\247\t\EOT\244\t4\n\
    \\r\n\
    \\ENQ\EOT!\STX\SYN\ACK\DC2\EOT\247\t\EOT\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\SYN\SOH\DC2\EOT\247\t\DC3\"\n\
    \\r\n\
    \\ENQ\EOT!\STX\SYN\ETX\DC2\EOT\247\t%'\n\
    \\216\SOH\n\
    \\EOT\EOT!\STX\ETB\DC2\EOT\254\t\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\
    \\SI\n\
    \\ENQ\EOT!\STX\ETB\EOT\DC2\ACK\254\t\EOT\247\t(\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETB\ENQ\DC2\EOT\254\t\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETB\SOH\DC2\EOT\254\t\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT!\STX\ETB\ETX\DC2\EOT\254\t\NAK\ETB\n\
    \\172\SOH\n\
    \\EOT\EOT!\STX\CAN\DC2\EOT\133\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT!\STX\CAN\EOT\DC2\ACK\133\n\
    \\EOT\254\t\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\CAN\ENQ\DC2\EOT\133\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT!\STX\CAN\SOH\DC2\EOT\133\n\
    \\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOT!\STX\CAN\ETX\DC2\EOT\133\n\
    \\DC3\NAK\n\
    \\247\STX\n\
    \\EOT\EOT!\STX\EM\DC2\EOT\142\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT!\STX\EM\EOT\DC2\ACK\142\n\
    \\EOT\133\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\EM\ENQ\DC2\EOT\142\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\EM\SOH\DC2\EOT\142\n\
    \\v\CAN\n\
    \\r\n\
    \\ENQ\EOT!\STX\EM\ETX\DC2\EOT\142\n\
    \\ESC\GS\n\
    \\206\STX\n\
    \\EOT\EOT!\STX\SUB\DC2\EOT\151\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT!\STX\SUB\EOT\DC2\ACK\151\n\
    \\EOT\142\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOT!\STX\SUB\ENQ\DC2\EOT\151\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\SUB\SOH\DC2\EOT\151\n\
    \\v\SUB\n\
    \\r\n\
    \\ENQ\EOT!\STX\SUB\ETX\DC2\EOT\151\n\
    \\GS\US\n\
    \\243\ETX\n\
    \\EOT\EOT!\STX\ESC\DC2\EOT\162\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT!\STX\ESC\EOT\DC2\ACK\162\n\
    \\EOT\151\n\
    \ \n\
    \\r\n\
    \\ENQ\EOT!\STX\ESC\ENQ\DC2\EOT\162\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT!\STX\ESC\SOH\DC2\EOT\162\n\
    \\v\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\ESC\ETX\DC2\EOT\162\n\
    \\EM\ESC\n\
    \4\n\
    \\EOT\EOT!\STX\FS\DC2\EOT\165\n\
    \\EOT.\SUB& List constraints for the local node.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\FS\EOT\DC2\ACK\165\n\
    \\EOT\162\n\
    \\FS\n\
    \\r\n\
    \\ENQ\EOT!\STX\FS\ACK\DC2\EOT\165\n\
    \\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\FS\SOH\DC2\EOT\165\n\
    \\ETB(\n\
    \\r\n\
    \\ENQ\EOT!\STX\FS\ETX\DC2\EOT\165\n\
    \+-\n\
    \5\n\
    \\EOT\EOT!\STX\GS\DC2\EOT\168\n\
    \\EOT/\SUB' List constraints for the remote node.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT!\STX\GS\EOT\DC2\ACK\168\n\
    \\EOT\165\n\
    \.\n\
    \\r\n\
    \\ENQ\EOT!\STX\GS\ACK\DC2\EOT\168\n\
    \\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOT!\STX\GS\SOH\DC2\EOT\168\n\
    \\ETB)\n\
    \\r\n\
    \\ENQ\EOT!\STX\GS\ETX\DC2\EOT\168\n\
    \,.\n\
    \\f\n\
    \\STX\EOT\"\DC2\ACK\171\n\
    \\NUL\182\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT\"\SOH\DC2\EOT\171\n\
    \\b\ESC\n\
    \\f\n\
    \\EOT\EOT\"\STX\NUL\DC2\EOT\172\n\
    \\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT\"\STX\NUL\EOT\DC2\ACK\172\n\
    \\EOT\171\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\ENQ\DC2\EOT\172\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\SOH\DC2\EOT\172\n\
    \\t\DC4\n\
    \\r\n\
    \\ENQ\EOT\"\STX\NUL\ETX\DC2\EOT\172\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT\"\STX\SOH\DC2\EOT\173\n\
    \\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT\"\STX\SOH\EOT\DC2\ACK\173\n\
    \\EOT\172\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\ENQ\DC2\EOT\173\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\SOH\DC2\EOT\173\n\
    \\t\SYN\n\
    \\r\n\
    \\ENQ\EOT\"\STX\SOH\ETX\DC2\EOT\173\n\
    \\EM\SUB\n\
    \\f\n\
    \\EOT\EOT\"\STX\STX\DC2\EOT\174\n\
    \\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT\"\STX\STX\EOT\DC2\ACK\174\n\
    \\EOT\173\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOT\"\STX\STX\ENQ\DC2\EOT\174\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\"\STX\STX\SOH\DC2\EOT\174\n\
    \\t\DC4\n\
    \\r\n\
    \\ENQ\EOT\"\STX\STX\ETX\DC2\EOT\174\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT\"\STX\ETX\DC2\EOT\175\n\
    \\EOT\SUB\n\
    \\SI\n\
    \\ENQ\EOT\"\STX\ETX\EOT\DC2\ACK\175\n\
    \\EOT\174\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT\"\STX\ETX\ENQ\DC2\EOT\175\n\
    \\EOT\b\n\
    \\r\n\
    \\ENQ\EOT\"\STX\ETX\SOH\DC2\EOT\175\n\
    \\t\NAK\n\
    \\r\n\
    \\ENQ\EOT\"\STX\ETX\ETX\DC2\EOT\175\n\
    \\CAN\EM\n\
    \\DEL\n\
    \\EOT\EOT\"\STX\EOT\DC2\EOT\181\n\
    \\EOT\DC3\SUBq\n\
    \Filters the response for channels with a target peer's pubkey. If peer is\n\
    \empty, all channels will be returned.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT\"\STX\EOT\EOT\DC2\ACK\181\n\
    \\EOT\175\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT\"\STX\EOT\ENQ\DC2\EOT\181\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT\"\STX\EOT\SOH\DC2\EOT\181\n\
    \\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT\"\STX\EOT\ETX\DC2\EOT\181\n\
    \\DC1\DC2\n\
    \\f\n\
    \\STX\EOT#\DC2\ACK\183\n\
    \\NUL\186\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT#\SOH\DC2\EOT\183\n\
    \\b\FS\n\
    \+\n\
    \\EOT\EOT#\STX\NUL\DC2\EOT\185\n\
    \\EOT#\SUB\GS The list of active channels\n\
    \\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\EOT\DC2\EOT\185\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\ACK\DC2\EOT\185\n\
    \\r\DC4\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\SOH\DC2\EOT\185\n\
    \\NAK\GS\n\
    \\r\n\
    \\ENQ\EOT#\STX\NUL\ETX\DC2\EOT\185\n\
    \ \"\n\
    \\f\n\
    \\STX\ENQ\STX\DC2\ACK\188\n\
    \\NUL\193\n\
    \\SOH\n\
    \\v\n\
    \\ETX\ENQ\STX\SOH\DC2\EOT\188\n\
    \\ENQ\SO\n\
    \\f\n\
    \\EOT\ENQ\STX\STX\NUL\DC2\EOT\189\n\
    \\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\EOT\189\n\
    \\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\NUL\STX\DC2\EOT\189\n\
    \\CAN\EM\n\
    \\f\n\
    \\EOT\ENQ\STX\STX\SOH\DC2\EOT\190\n\
    \\EOT\CAN\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\EOT\190\n\
    \\EOT\DC3\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\SOH\STX\DC2\EOT\190\n\
    \\SYN\ETB\n\
    \\f\n\
    \\EOT\ENQ\STX\STX\STX\DC2\EOT\191\n\
    \\EOT\EM\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\STX\SOH\DC2\EOT\191\n\
    \\EOT\DC4\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\STX\STX\DC2\EOT\191\n\
    \\ETB\CAN\n\
    \\f\n\
    \\EOT\ENQ\STX\STX\ETX\DC2\EOT\192\n\
    \\EOT\ETB\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\192\n\
    \\EOT\DC2\n\
    \\r\n\
    \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\192\n\
    \\NAK\SYN\n\
    \\f\n\
    \\STX\EOT$\DC2\ACK\195\n\
    \\NUL\252\n\
    \\SOH\n\
    \\v\n\
    \\ETX\EOT$\SOH\DC2\EOT\195\n\
    \\b\ESC\n\
    \E\n\
    \\EOT\EOT$\STX\NUL\DC2\EOT\197\n\
    \\EOT\GS\SUB7 The outpoint (txid:index) of the funding transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\NUL\EOT\DC2\ACK\197\n\
    \\EOT\195\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\ENQ\DC2\EOT\197\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\SOH\DC2\EOT\197\n\
    \\v\CAN\n\
    \\r\n\
    \\ENQ\EOT$\STX\NUL\ETX\DC2\EOT\197\n\
    \\ESC\FS\n\
    \7\n\
    \\EOT\EOT$\STX\SOH\DC2\EOT\200\n\
    \\EOT,\SUB)  The unique channel ID for the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\SOH\EOT\DC2\ACK\200\n\
    \\EOT\197\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\ENQ\DC2\EOT\200\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\SOH\DC2\EOT\200\n\
    \\v\DC2\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\ETX\DC2\EOT\200\n\
    \\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOT$\STX\SOH\b\DC2\EOT\200\n\
    \\ETB+\n\
    \\SO\n\
    \\ACK\EOT$\STX\SOH\b\ACK\DC2\EOT\200\n\
    \\CAN*\n\
    \O\n\
    \\EOT\EOT$\STX\STX\DC2\EOT\203\n\
    \\EOT\SUB\SUBA The hash of the genesis block that this channel resides within.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\STX\EOT\DC2\ACK\203\n\
    \\EOT\200\n\
    \,\n\
    \\r\n\
    \\ENQ\EOT$\STX\STX\ENQ\DC2\EOT\203\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\STX\SOH\DC2\EOT\203\n\
    \\v\NAK\n\
    \\r\n\
    \\ENQ\EOT$\STX\STX\ETX\DC2\EOT\203\n\
    \\CAN\EM\n\
    \Q\n\
    \\EOT\EOT$\STX\ETX\DC2\EOT\206\n\
    \\EOT\US\SUBC The txid of the transaction which ultimately closed this channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\ETX\EOT\DC2\ACK\206\n\
    \\EOT\203\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOT$\STX\ETX\ENQ\DC2\EOT\206\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\ETX\SOH\DC2\EOT\206\n\
    \\v\SUB\n\
    \\r\n\
    \\ENQ\EOT$\STX\ETX\ETX\DC2\EOT\206\n\
    \\GS\RS\n\
    \R\n\
    \\EOT\EOT$\STX\EOT\DC2\EOT\209\n\
    \\EOT\GS\SUBD Public key of the remote peer that we formerly had a channel with.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\EOT\EOT\DC2\ACK\209\n\
    \\EOT\206\n\
    \\US\n\
    \\r\n\
    \\ENQ\EOT$\STX\EOT\ENQ\DC2\EOT\209\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\EOT\SOH\DC2\EOT\209\n\
    \\v\CAN\n\
    \\r\n\
    \\ENQ\EOT$\STX\EOT\ETX\DC2\EOT\209\n\
    \\ESC\FS\n\
    \.\n\
    \\EOT\EOT$\STX\ENQ\DC2\EOT\212\n\
    \\EOT\ETB\SUB  Total capacity of the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\ENQ\EOT\DC2\ACK\212\n\
    \\EOT\209\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT$\STX\ENQ\ENQ\DC2\EOT\212\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT$\STX\ENQ\SOH\DC2\EOT\212\n\
    \\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT$\STX\ENQ\ETX\DC2\EOT\212\n\
    \\NAK\SYN\n\
    \B\n\
    \\EOT\EOT$\STX\ACK\DC2\EOT\215\n\
    \\EOT\FS\SUB4 Height at which the funding transaction was spent.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\ACK\EOT\DC2\ACK\215\n\
    \\EOT\212\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT$\STX\ACK\ENQ\DC2\EOT\215\n\
    \\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT$\STX\ACK\SOH\DC2\EOT\215\n\
    \\v\ETB\n\
    \\r\n\
    \\ENQ\EOT$\STX\ACK\ETX\DC2\EOT\215\n\
    \\SUB\ESC\n\
    \>\n\
    \\EOT\EOT$\STX\a\DC2\EOT\218\n\
    \\EOT\RS\SUB0 Settled balance at the time of channel closure\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\a\EOT\DC2\ACK\218\n\
    \\EOT\215\n\
    \\FS\n\
    \\r\n\
    \\ENQ\EOT$\STX\a\ENQ\DC2\EOT\218\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT$\STX\a\SOH\DC2\EOT\218\n\
    \\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT$\STX\a\ETX\DC2\EOT\218\n\
    \\FS\GS\n\
    \U\n\
    \\EOT\EOT$\STX\b\DC2\EOT\221\n\
    \\EOT\"\SUBG The sum of all the time-locked outputs at the time of channel closure\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\b\EOT\DC2\ACK\221\n\
    \\EOT\218\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOT$\STX\b\ENQ\DC2\EOT\221\n\
    \\EOT\t\n\
    \\r\n\
    \\ENQ\EOT$\STX\b\SOH\DC2\EOT\221\n\
    \\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT$\STX\b\ETX\DC2\EOT\221\n\
    \ !\n\
    \\SO\n\
    \\EOT\EOT$\EOT\NUL\DC2\ACK\223\n\
    \\EOT\230\n\
    \\ENQ\n\
    \\r\n\
    \\ENQ\EOT$\EOT\NUL\SOH\DC2\EOT\223\n\
    \\t\DC4\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\NUL\DC2\EOT\224\n\
    \\b\RS\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\NUL\SOH\DC2\EOT\224\n\
    \\b\EM\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\NUL\STX\DC2\EOT\224\n\
    \\FS\GS\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\SOH\DC2\EOT\225\n\
    \\b\RS\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\SOH\SOH\DC2\EOT\225\n\
    \\b\EM\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\SOH\STX\DC2\EOT\225\n\
    \\FS\GS\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\STX\DC2\EOT\226\n\
    \\b\US\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\STX\SOH\DC2\EOT\226\n\
    \\b\SUB\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\STX\STX\DC2\EOT\226\n\
    \\GS\RS\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\ETX\DC2\EOT\227\n\
    \\b\EM\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\ETX\SOH\DC2\EOT\227\n\
    \\b\DC4\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\ETX\STX\DC2\EOT\227\n\
    \\ETB\CAN\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\EOT\DC2\EOT\228\n\
    \\b\GS\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\EOT\SOH\DC2\EOT\228\n\
    \\b\CAN\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\EOT\STX\DC2\EOT\228\n\
    \\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT$\EOT\NUL\STX\ENQ\DC2\EOT\229\n\
    \\b\SYN\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\ENQ\SOH\DC2\EOT\229\n\
    \\b\DC1\n\
    \\SI\n\
    \\a\EOT$\EOT\NUL\STX\ENQ\STX\DC2\EOT\229\n\
    \\DC4\NAK\n\
    \6\n\
    \\EOT\EOT$\STX\t\DC2\EOT\233\n\
    \\EOT \SUB( Details on how the channel was closed.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT$\STX\t\EOT\DC2\ACK\233\n\
    \\EOT\230\n\
    \\ENQ\n\
    \\r\n\
    \\ENQ\EOT$\STX\t\ACK\DC2\EOT\233\n\
    \\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT$\STX\t\SOH\DC2\EOT\233\n\
    \\DLE\SUB\n\
    \\r\n\
    \\ENQ\EOT$\STX\t\ETX\DC2\EOT\233\n\
    \\GS\US\n\
    \\208\SOH\n\
    \\EOT\EOT$\STX\n\
    \\DC2\EOT\240\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT$\STX\n\
    \\EOT\DC2\ACK\240\n\
    \\EOT\233\n\
    \ \n\
    \\r\n\
    \\ENQ\EOT$\STX\n\
    \\ACK\DC2\EOT\240\n\
    \\EOT\r\n\
    \\r\n\
    \\ENQ\EOT$\STX\n\
    \\SOH\DC2\EOT\240\n\
    \\SO\FS\n\
    \\r\n\
    \\ENQ\EOT$\STX\n\
    \\ETX\DC2\EOT\240\n\
    \\US!\n\
    \\132\ETX\n\
    \\EOT\EOT$\STX\v\DC2\EOT\249\n\
    \\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\
    \\SI\n\
    \\ENQ\EOT$\STX\v\EOT\DC2\ACK\249\n\
    \\EOT\240\n\
    \\"\n\
    \\r\n\
    \\ENQ\EOT$\STX\v\ACK\DC2\EOT\249\n\
    \\EOT\r\n\
    \\r\n\
    \\ENQ\EOT$\STX\v\SOH\DC2\EOT\249\n\
    \\SO\GS\n\
    \\r\n\
    \\ENQ\EOT$\STX\v\ETX\DC2\EOT\249\n\
    \ \"\n\
    \\f\n\
    \\EOT\EOT$\STX\f\DC2\EOT\251\n\
    \\EOT)\n\
    \\r\n\
    \\ENQ\EOT$\STX\f\EOT\DC2\EOT\251\n\
    \\EOT\f\n\
    \\r\n\
    \\ENQ\EOT$\STX\f\ACK\DC2\EOT\251\n\
    \\r\ETB\n\
    \\r\n\
    \\ENQ\EOT$\STX\f\SOH\DC2\EOT\251\n\
    \\CAN#\n\
    \\r\n\
    \\ENQ\EOT$\STX\f\ETX\DC2\EOT\251\n\
    \&(\n\
    \\f\n\
    \\STX\ENQ\ETX\DC2\ACK\254\n\
    \\NUL\148\v\SOH\n\
    \\v\n\
    \\ETX\ENQ\ETX\SOH\DC2\EOT\254\n\
    \\ENQ\DC3\n\
    \\f\n\
    \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\255\n\
    \\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\255\n\
    \\EOT\DLE\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\255\n\
    \\DC3\DC4\n\
    \-\n\
    \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\130\v\EOT\SI\SUB\US We resolved an anchor output.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\130\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\130\v\r\SO\n\
    \\189\SOH\n\
    \\EOT\ENQ\ETX\STX\STX\DC2\EOT\137\v\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\137\v\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\137\v\DC4\NAK\n\
    \\191\SOH\n\
    \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\144\v\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\144\v\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\144\v\DC4\NAK\n\
    \T\n\
    \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\147\v\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\147\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\147\v\r\SO\n\
    \\f\n\
    \\STX\ENQ\EOT\DC2\ACK\150\v\NUL\177\v\SOH\n\
    \\v\n\
    \\ETX\ENQ\EOT\SOH\DC2\EOT\150\v\ENQ\SYN\n\
    \ \n\
    \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\152\v\EOT\CAN\SUB\DC2 Outcome unknown.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\152\v\EOT\DC3\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\152\v\SYN\ETB\n\
    \/\n\
    \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\155\v\EOT\DLE\SUB! An output was claimed on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\155\v\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\155\v\SO\SI\n\
    \6\n\
    \\EOT\ENQ\EOT\STX\STX\DC2\EOT\158\v\EOT\DC2\SUB( An output was left unclaimed on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\158\v\EOT\r\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\158\v\DLE\DC1\n\
    \\232\SOH\n\
    \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\166\v\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\166\v\EOT\r\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\166\v\DLE\DC1\n\
    \\197\SOH\n\
    \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\173\v\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\173\v\EOT\SI\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\173\v\DC2\DC3\n\
    \.\n\
    \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\176\v\EOT\DLE\SUB  A htlc was timed out on chain.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\176\v\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\176\v\SO\SI\n\
    \\f\n\
    \\STX\EOT%\DC2\ACK\179\v\NUL\195\v\SOH\n\
    \\v\n\
    \\ETX\EOT%\SOH\DC2\EOT\179\v\b\DC2\n\
    \4\n\
    \\EOT\EOT%\STX\NUL\DC2\EOT\181\v\EOT'\SUB& The type of output we are resolving.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT%\STX\NUL\EOT\DC2\ACK\181\v\EOT\179\v\DC4\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\ACK\DC2\EOT\181\v\EOT\DC2\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\SOH\DC2\EOT\181\v\DC3\"\n\
    \\r\n\
    \\ENQ\EOT%\STX\NUL\ETX\DC2\EOT\181\v%&\n\
    \N\n\
    \\EOT\EOT%\STX\SOH\DC2\EOT\184\v\EOT\"\SUB@ The outcome of our on chain action that resolved the outpoint.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT%\STX\SOH\EOT\DC2\ACK\184\v\EOT\181\v'\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\ACK\DC2\EOT\184\v\EOT\NAK\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\SOH\DC2\EOT\184\v\SYN\GS\n\
    \\r\n\
    \\ENQ\EOT%\STX\SOH\ETX\DC2\EOT\184\v !\n\
    \>\n\
    \\EOT\EOT%\STX\STX\DC2\EOT\187\v\EOT\SUB\SUB0 The outpoint that was spent by the resolution.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT%\STX\STX\EOT\DC2\ACK\187\v\EOT\184\v\"\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\ACK\DC2\EOT\187\v\EOT\f\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\SOH\DC2\EOT\187\v\r\NAK\n\
    \\r\n\
    \\ENQ\EOT%\STX\STX\ETX\DC2\EOT\187\v\CAN\EM\n\
    \>\n\
    \\EOT\EOT%\STX\ETX\DC2\EOT\190\v\EOT\SUB\SUB0 The amount that was claimed by the resolution.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT%\STX\ETX\EOT\DC2\ACK\190\v\EOT\187\v\SUB\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\ENQ\DC2\EOT\190\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\SOH\DC2\EOT\190\v\v\NAK\n\
    \\r\n\
    \\ENQ\EOT%\STX\ETX\ETX\DC2\EOT\190\v\CAN\EM\n\
    \_\n\
    \\EOT\EOT%\STX\EOT\DC2\EOT\194\v\EOT\SUB\SUBQ The hex-encoded transaction ID of the sweep transaction that spent the\n\
    \ output.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT%\STX\EOT\EOT\DC2\ACK\194\v\EOT\190\v\SUB\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\ENQ\DC2\EOT\194\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\SOH\DC2\EOT\194\v\v\NAK\n\
    \\r\n\
    \\ENQ\EOT%\STX\EOT\ETX\DC2\EOT\194\v\CAN\EM\n\
    \\f\n\
    \\STX\EOT&\DC2\ACK\197\v\NUL\204\v\SOH\n\
    \\v\n\
    \\ETX\EOT&\SOH\DC2\EOT\197\v\b\GS\n\
    \\f\n\
    \\EOT\EOT&\STX\NUL\DC2\EOT\198\v\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT&\STX\NUL\EOT\DC2\ACK\198\v\EOT\197\v\US\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\ENQ\DC2\EOT\198\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\SOH\DC2\EOT\198\v\t\DC4\n\
    \\r\n\
    \\ENQ\EOT&\STX\NUL\ETX\DC2\EOT\198\v\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT&\STX\SOH\DC2\EOT\199\v\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT&\STX\SOH\EOT\DC2\ACK\199\v\EOT\198\v\EM\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\ENQ\DC2\EOT\199\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\SOH\DC2\EOT\199\v\t\DC4\n\
    \\r\n\
    \\ENQ\EOT&\STX\SOH\ETX\DC2\EOT\199\v\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT&\STX\STX\DC2\EOT\200\v\EOT\SUB\n\
    \\SI\n\
    \\ENQ\EOT&\STX\STX\EOT\DC2\ACK\200\v\EOT\199\v\EM\n\
    \\r\n\
    \\ENQ\EOT&\STX\STX\ENQ\DC2\EOT\200\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\STX\SOH\DC2\EOT\200\v\t\NAK\n\
    \\r\n\
    \\ENQ\EOT&\STX\STX\ETX\DC2\EOT\200\v\CAN\EM\n\
    \\f\n\
    \\EOT\EOT&\STX\ETX\DC2\EOT\201\v\EOT\DC4\n\
    \\SI\n\
    \\ENQ\EOT&\STX\ETX\EOT\DC2\ACK\201\v\EOT\200\v\SUB\n\
    \\r\n\
    \\ENQ\EOT&\STX\ETX\ENQ\DC2\EOT\201\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\ETX\SOH\DC2\EOT\201\v\t\SI\n\
    \\r\n\
    \\ENQ\EOT&\STX\ETX\ETX\DC2\EOT\201\v\DC2\DC3\n\
    \\f\n\
    \\EOT\EOT&\STX\EOT\DC2\EOT\202\v\EOT\RS\n\
    \\SI\n\
    \\ENQ\EOT&\STX\EOT\EOT\DC2\ACK\202\v\EOT\201\v\DC4\n\
    \\r\n\
    \\ENQ\EOT&\STX\EOT\ENQ\DC2\EOT\202\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\EOT\SOH\DC2\EOT\202\v\t\EM\n\
    \\r\n\
    \\ENQ\EOT&\STX\EOT\ETX\DC2\EOT\202\v\FS\GS\n\
    \\f\n\
    \\EOT\EOT&\STX\ENQ\DC2\EOT\203\v\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT&\STX\ENQ\EOT\DC2\ACK\203\v\EOT\202\v\RS\n\
    \\r\n\
    \\ENQ\EOT&\STX\ENQ\ENQ\DC2\EOT\203\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT&\STX\ENQ\SOH\DC2\EOT\203\v\t\DC2\n\
    \\r\n\
    \\ENQ\EOT&\STX\ENQ\ETX\DC2\EOT\203\v\NAK\SYN\n\
    \\f\n\
    \\STX\EOT'\DC2\ACK\206\v\NUL\208\v\SOH\n\
    \\v\n\
    \\ETX\EOT'\SOH\DC2\EOT\206\v\b\RS\n\
    \\f\n\
    \\EOT\EOT'\STX\NUL\DC2\EOT\207\v\EOT.\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\EOT\DC2\EOT\207\v\EOT\f\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\ACK\DC2\EOT\207\v\r \n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\SOH\DC2\EOT\207\v!)\n\
    \\r\n\
    \\ENQ\EOT'\STX\NUL\ETX\DC2\EOT\207\v,-\n\
    \\f\n\
    \\STX\EOT(\DC2\ACK\210\v\NUL\157\f\SOH\n\
    \\v\n\
    \\ETX\EOT(\SOH\DC2\EOT\210\v\b\f\n\
    \/\n\
    \\EOT\EOT(\STX\NUL\DC2\EOT\212\v\EOT\ETB\SUB! The identity pubkey of the peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\NUL\EOT\DC2\ACK\212\v\EOT\210\v\SO\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\ENQ\DC2\EOT\212\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\SOH\DC2\EOT\212\v\v\DC2\n\
    \\r\n\
    \\ENQ\EOT(\STX\NUL\ETX\DC2\EOT\212\v\NAK\SYN\n\
    \A\n\
    \\EOT\EOT(\STX\SOH\DC2\EOT\215\v\EOT\ETB\SUB3 Network address of the peer; eg `127.0.0.1:10011`\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\SOH\EOT\DC2\ACK\215\v\EOT\212\v\ETB\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\ENQ\DC2\EOT\215\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\SOH\DC2\EOT\215\v\v\DC2\n\
    \\r\n\
    \\ENQ\EOT(\STX\SOH\ETX\DC2\EOT\215\v\NAK\SYN\n\
    \6\n\
    \\EOT\EOT(\STX\STX\DC2\EOT\218\v\EOT\SUB\SUB( Bytes of data transmitted to this peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\STX\EOT\DC2\ACK\218\v\EOT\215\v\ETB\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\ENQ\DC2\EOT\218\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\SOH\DC2\EOT\218\v\v\NAK\n\
    \\r\n\
    \\ENQ\EOT(\STX\STX\ETX\DC2\EOT\218\v\CAN\EM\n\
    \8\n\
    \\EOT\EOT(\STX\ETX\DC2\EOT\221\v\EOT\SUB\SUB* Bytes of data transmitted from this peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\ETX\EOT\DC2\ACK\221\v\EOT\218\v\SUB\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\ENQ\DC2\EOT\221\v\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\SOH\DC2\EOT\221\v\v\NAK\n\
    \\r\n\
    \\ENQ\EOT(\STX\ETX\ETX\DC2\EOT\221\v\CAN\EM\n\
    \*\n\
    \\EOT\EOT(\STX\EOT\DC2\EOT\224\v\EOT\ETB\SUB\FS Satoshis sent to this peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\EOT\EOT\DC2\ACK\224\v\EOT\221\v\SUB\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\ENQ\DC2\EOT\224\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\SOH\DC2\EOT\224\v\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT(\STX\EOT\ETX\DC2\EOT\224\v\NAK\SYN\n\
    \0\n\
    \\EOT\EOT(\STX\ENQ\DC2\EOT\227\v\EOT\ETB\SUB\" Satoshis received from this peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\ENQ\EOT\DC2\ACK\227\v\EOT\224\v\ETB\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\ENQ\DC2\EOT\227\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\SOH\DC2\EOT\227\v\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT(\STX\ENQ\ETX\DC2\EOT\227\v\NAK\SYN\n\
    \N\n\
    \\EOT\EOT(\STX\ACK\DC2\EOT\230\v\EOT\NAK\SUB@ A channel is inbound if the counterparty initiated the channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\ACK\EOT\DC2\ACK\230\v\EOT\227\v\ETB\n\
    \\r\n\
    \\ENQ\EOT(\STX\ACK\ENQ\DC2\EOT\230\v\EOT\b\n\
    \\r\n\
    \\ENQ\EOT(\STX\ACK\SOH\DC2\EOT\230\v\t\DLE\n\
    \\r\n\
    \\ENQ\EOT(\STX\ACK\ETX\DC2\EOT\230\v\DC3\DC4\n\
    \&\n\
    \\EOT\EOT(\STX\a\DC2\EOT\233\v\EOT\CAN\SUB\CAN Ping time to this peer\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\a\EOT\DC2\ACK\233\v\EOT\230\v\NAK\n\
    \\r\n\
    \\ENQ\EOT(\STX\a\ENQ\DC2\EOT\233\v\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\a\SOH\DC2\EOT\233\v\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT(\STX\a\ETX\DC2\EOT\233\v\SYN\ETB\n\
    \\SO\n\
    \\EOT\EOT(\EOT\NUL\DC2\ACK\235\v\EOT\255\v\ENQ\n\
    \\r\n\
    \\ENQ\EOT(\EOT\NUL\SOH\DC2\EOT\235\v\t\DC1\n\
    \P\n\
    \\ACK\EOT(\EOT\NUL\STX\NUL\DC2\EOT\239\v\b\EM\SUB@\n\
    \Denotes that we cannot determine the peer's current sync type.\n\
    \\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\NUL\SOH\DC2\EOT\239\v\b\DC4\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\NUL\STX\DC2\EOT\239\v\ETB\CAN\n\
    \Y\n\
    \\ACK\EOT(\EOT\NUL\STX\SOH\DC2\EOT\244\v\b\CAN\SUBI\n\
    \Denotes that we are actively receiving new graph updates from the peer.\n\
    \\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\SOH\SOH\DC2\EOT\244\v\b\DC3\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\SOH\STX\DC2\EOT\244\v\SYN\ETB\n\
    \T\n\
    \\ACK\EOT(\EOT\NUL\STX\STX\DC2\EOT\249\v\b\EM\SUBD\n\
    \Denotes that we are not receiving new graph updates from the peer.\n\
    \\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\STX\SOH\DC2\EOT\249\v\b\DC4\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\STX\STX\DC2\EOT\249\v\ETB\CAN\n\
    \G\n\
    \\ACK\EOT(\EOT\NUL\STX\ETX\DC2\EOT\254\v\b\CAN\SUB7\n\
    \Denotes that this peer is pinned into an active sync.\n\
    \\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\ETX\SOH\DC2\EOT\254\v\b\DC3\n\
    \\SI\n\
    \\a\EOT(\EOT\NUL\STX\ETX\STX\DC2\EOT\254\v\SYN\ETB\n\
    \L\n\
    \\EOT\EOT(\STX\b\DC2\EOT\130\f\EOT\FS\SUB> The type of sync we are currently performing with this peer.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\b\EOT\DC2\ACK\130\f\EOT\255\v\ENQ\n\
    \\r\n\
    \\ENQ\EOT(\STX\b\ACK\DC2\EOT\130\f\EOT\f\n\
    \\r\n\
    \\ENQ\EOT(\STX\b\SOH\DC2\EOT\130\f\r\SYN\n\
    \\r\n\
    \\ENQ\EOT(\STX\b\ETX\DC2\EOT\130\f\EM\ESC\n\
    \M\n\
    \\EOT\EOT(\STX\t\DC2\EOT\133\f\EOT'\SUB? Features advertised by the remote peer in their init message.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\t\EOT\DC2\ACK\133\f\EOT\130\f\FS\n\
    \\r\n\
    \\ENQ\EOT(\STX\t\ACK\DC2\EOT\133\f\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT(\STX\t\SOH\DC2\EOT\133\f\EM!\n\
    \\r\n\
    \\ENQ\EOT(\STX\t\ETX\DC2\EOT\133\f$&\n\
    \\217\STX\n\
    \\EOT\EOT(\STX\n\
    \\DC2\EOT\142\f\EOT*\SUB\202\STX\n\
    \The latest errors received from our peer with timestamps, limited to the 10\n\
    \most recent errors. These errors are tracked across peer connections, but\n\
    \are not persisted across lnd restarts. Note that these errors are only\n\
    \stored for peers that we have channels open with, to prevent peers from\n\
    \spamming us with errors at no cost.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT(\STX\n\
    \\EOT\DC2\EOT\142\f\EOT\f\n\
    \\r\n\
    \\ENQ\EOT(\STX\n\
    \\ACK\DC2\EOT\142\f\r\GS\n\
    \\r\n\
    \\ENQ\EOT(\STX\n\
    \\SOH\DC2\EOT\142\f\RS$\n\
    \\r\n\
    \\ENQ\EOT(\STX\n\
    \\ETX\DC2\EOT\142\f')\n\
    \\140\STX\n\
    \\EOT\EOT(\STX\v\DC2\EOT\150\f\EOT\SUB\SUB\253\SOH\n\
    \The number of times we have recorded this peer going offline or coming\n\
    \online, recorded across restarts. Note that this value is decreased over\n\
    \time if the peer has not recently flapped, so that we can forgive peers\n\
    \with historically high flap counts.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\v\EOT\DC2\ACK\150\f\EOT\142\f*\n\
    \\r\n\
    \\ENQ\EOT(\STX\v\ENQ\DC2\EOT\150\f\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\v\SOH\DC2\EOT\150\f\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT(\STX\v\ETX\DC2\EOT\150\f\ETB\EM\n\
    \\143\SOH\n\
    \\EOT\EOT(\STX\f\DC2\EOT\156\f\EOT\FS\SUB\128\SOH\n\
    \The timestamp of the last flap we observed for this peer. If this value is\n\
    \zero, we have not observed any flaps for this peer.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT(\STX\f\EOT\DC2\ACK\156\f\EOT\150\f\SUB\n\
    \\r\n\
    \\ENQ\EOT(\STX\f\ENQ\DC2\EOT\156\f\EOT\t\n\
    \\r\n\
    \\ENQ\EOT(\STX\f\SOH\DC2\EOT\156\f\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT(\STX\f\ETX\DC2\EOT\156\f\EM\ESC\n\
    \\f\n\
    \\STX\EOT)\DC2\ACK\159\f\NUL\165\f\SOH\n\
    \\v\n\
    \\ETX\EOT)\SOH\DC2\EOT\159\f\b\CAN\n\
    \F\n\
    \\EOT\EOT)\STX\NUL\DC2\EOT\161\f\EOT\EM\SUB8 The unix timestamp in seconds when the error occurred.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT)\STX\NUL\EOT\DC2\ACK\161\f\EOT\159\f\SUB\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\ENQ\DC2\EOT\161\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\SOH\DC2\EOT\161\f\v\DC4\n\
    \\r\n\
    \\ENQ\EOT)\STX\NUL\ETX\DC2\EOT\161\f\ETB\CAN\n\
    \H\n\
    \\EOT\EOT)\STX\SOH\DC2\EOT\164\f\EOT\NAK\SUB: The string representation of the error sent by our peer.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT)\STX\SOH\EOT\DC2\ACK\164\f\EOT\161\f\EM\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\ENQ\DC2\EOT\164\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\SOH\DC2\EOT\164\f\v\DLE\n\
    \\r\n\
    \\ENQ\EOT)\STX\SOH\ETX\DC2\EOT\164\f\DC3\DC4\n\
    \\f\n\
    \\STX\EOT*\DC2\ACK\167\f\NUL\174\f\SOH\n\
    \\v\n\
    \\ETX\EOT*\SOH\DC2\EOT\167\f\b\CAN\n\
    \\173\SOH\n\
    \\EOT\EOT*\STX\NUL\DC2\EOT\173\f\EOT\SUB\SUB\158\SOH\n\
    \If true, only the last error that our peer sent us will be returned with\n\
    \the peer's information, rather than the full set of historic errors we have\n\
    \stored.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT*\STX\NUL\EOT\DC2\ACK\173\f\EOT\167\f\SUB\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\ENQ\DC2\EOT\173\f\EOT\b\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\SOH\DC2\EOT\173\f\t\NAK\n\
    \\r\n\
    \\ENQ\EOT*\STX\NUL\ETX\DC2\EOT\173\f\CAN\EM\n\
    \\f\n\
    \\STX\EOT+\DC2\ACK\175\f\NUL\178\f\SOH\n\
    \\v\n\
    \\ETX\EOT+\SOH\DC2\EOT\175\f\b\EM\n\
    \5\n\
    \\EOT\EOT+\STX\NUL\DC2\EOT\177\f\EOT\FS\SUB' The list of currently connected peers\n\
    \\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\EOT\DC2\EOT\177\f\EOT\f\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\ACK\DC2\EOT\177\f\r\DC1\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\SOH\DC2\EOT\177\f\DC2\ETB\n\
    \\r\n\
    \\ENQ\EOT+\STX\NUL\ETX\DC2\EOT\177\f\SUB\ESC\n\
    \\f\n\
    \\STX\EOT,\DC2\ACK\180\f\NUL\181\f\SOH\n\
    \\v\n\
    \\ETX\EOT,\SOH\DC2\EOT\180\f\b\GS\n\
    \\f\n\
    \\STX\EOT-\DC2\ACK\183\f\NUL\193\f\SOH\n\
    \\v\n\
    \\ETX\EOT-\SOH\DC2\EOT\183\f\b\DC1\n\
    \0\n\
    \\EOT\EOT-\STX\NUL\DC2\EOT\185\f\EOT\ETB\SUB\" The identity pubkey of the peer.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT-\STX\NUL\EOT\DC2\ACK\185\f\EOT\183\f\DC3\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\ENQ\DC2\EOT\185\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\SOH\DC2\EOT\185\f\v\DC2\n\
    \\r\n\
    \\ENQ\EOT-\STX\NUL\ETX\DC2\EOT\185\f\NAK\SYN\n\
    \\SO\n\
    \\EOT\EOT-\EOT\NUL\DC2\ACK\187\f\EOT\190\f\ENQ\n\
    \\r\n\
    \\ENQ\EOT-\EOT\NUL\SOH\DC2\EOT\187\f\t\DC2\n\
    \\SO\n\
    \\ACK\EOT-\EOT\NUL\STX\NUL\DC2\EOT\188\f\b\CAN\n\
    \\SI\n\
    \\a\EOT-\EOT\NUL\STX\NUL\SOH\DC2\EOT\188\f\b\DC3\n\
    \\SI\n\
    \\a\EOT-\EOT\NUL\STX\NUL\STX\DC2\EOT\188\f\SYN\ETB\n\
    \\SO\n\
    \\ACK\EOT-\EOT\NUL\STX\SOH\DC2\EOT\189\f\b\EM\n\
    \\SI\n\
    \\a\EOT-\EOT\NUL\STX\SOH\SOH\DC2\EOT\189\f\b\DC4\n\
    \\SI\n\
    \\a\EOT-\EOT\NUL\STX\SOH\STX\DC2\EOT\189\f\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT-\STX\SOH\DC2\EOT\192\f\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT-\STX\SOH\EOT\DC2\ACK\192\f\EOT\190\f\ENQ\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\ACK\DC2\EOT\192\f\EOT\r\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\SOH\DC2\EOT\192\f\SO\DC2\n\
    \\r\n\
    \\ENQ\EOT-\STX\SOH\ETX\DC2\EOT\192\f\NAK\SYN\n\
    \\f\n\
    \\STX\EOT.\DC2\ACK\195\f\NUL\196\f\SOH\n\
    \\v\n\
    \\ETX\EOT.\SOH\DC2\EOT\195\f\b\SYN\n\
    \\f\n\
    \\STX\EOT/\DC2\ACK\197\f\NUL\131\r\SOH\n\
    \\v\n\
    \\ETX\EOT/\SOH\DC2\EOT\197\f\b\ETB\n\
    \I\n\
    \\EOT\EOT/\STX\NUL\DC2\EOT\199\f\EOT\CAN\SUB; The version of the LND software that the node is running.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\NUL\EOT\DC2\ACK\199\f\EOT\197\f\EM\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\ENQ\DC2\EOT\199\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\SOH\DC2\EOT\199\f\v\DC2\n\
    \\r\n\
    \\ENQ\EOT/\STX\NUL\ETX\DC2\EOT\199\f\NAK\ETB\n\
    \F\n\
    \\EOT\EOT/\STX\SOH\DC2\EOT\202\f\EOT\FS\SUB8 The SHA1 commit hash that the daemon is compiled with.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\SOH\EOT\DC2\ACK\202\f\EOT\199\f\CAN\n\
    \\r\n\
    \\ENQ\EOT/\STX\SOH\ENQ\DC2\EOT\202\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\SOH\SOH\DC2\EOT\202\f\v\SYN\n\
    \\r\n\
    \\ENQ\EOT/\STX\SOH\ETX\DC2\EOT\202\f\EM\ESC\n\
    \8\n\
    \\EOT\EOT/\STX\STX\DC2\EOT\205\f\EOT\US\SUB* The identity pubkey of the current node.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\STX\EOT\DC2\ACK\205\f\EOT\202\f\FS\n\
    \\r\n\
    \\ENQ\EOT/\STX\STX\ENQ\DC2\EOT\205\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\STX\SOH\DC2\EOT\205\f\v\SUB\n\
    \\r\n\
    \\ENQ\EOT/\STX\STX\ETX\DC2\EOT\205\f\GS\RS\n\
    \H\n\
    \\EOT\EOT/\STX\ETX\DC2\EOT\208\f\EOT\NAK\SUB: If applicable, the alias of the current node, e.g. \"bob\"\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\ETX\EOT\DC2\ACK\208\f\EOT\205\f\US\n\
    \\r\n\
    \\ENQ\EOT/\STX\ETX\ENQ\DC2\EOT\208\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\ETX\SOH\DC2\EOT\208\f\v\DLE\n\
    \\r\n\
    \\ENQ\EOT/\STX\ETX\ETX\DC2\EOT\208\f\DC3\DC4\n\
    \@\n\
    \\EOT\EOT/\STX\EOT\DC2\EOT\211\f\EOT\SYN\SUB2 The color of the current node in hex code format\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\EOT\EOT\DC2\ACK\211\f\EOT\208\f\NAK\n\
    \\r\n\
    \\ENQ\EOT/\STX\EOT\ENQ\DC2\EOT\211\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\EOT\SOH\DC2\EOT\211\f\v\DLE\n\
    \\r\n\
    \\ENQ\EOT/\STX\EOT\ETX\DC2\EOT\211\f\DC3\NAK\n\
    \*\n\
    \\EOT\EOT/\STX\ENQ\DC2\EOT\214\f\EOT$\SUB\FS Number of pending channels\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\ENQ\EOT\DC2\ACK\214\f\EOT\211\f\SYN\n\
    \\r\n\
    \\ENQ\EOT/\STX\ENQ\ENQ\DC2\EOT\214\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\ENQ\SOH\DC2\EOT\214\f\v\US\n\
    \\r\n\
    \\ENQ\EOT/\STX\ENQ\ETX\DC2\EOT\214\f\"#\n\
    \)\n\
    \\EOT\EOT/\STX\ACK\DC2\EOT\217\f\EOT#\SUB\ESC Number of active channels\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\ACK\EOT\DC2\ACK\217\f\EOT\214\f$\n\
    \\r\n\
    \\ENQ\EOT/\STX\ACK\ENQ\DC2\EOT\217\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\ACK\SOH\DC2\EOT\217\f\v\RS\n\
    \\r\n\
    \\ENQ\EOT/\STX\ACK\ETX\DC2\EOT\217\f!\"\n\
    \+\n\
    \\EOT\EOT/\STX\a\DC2\EOT\220\f\EOT&\SUB\GS Number of inactive channels\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\a\EOT\DC2\ACK\220\f\EOT\217\f#\n\
    \\r\n\
    \\ENQ\EOT/\STX\a\ENQ\DC2\EOT\220\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\a\SOH\DC2\EOT\220\f\v \n\
    \\r\n\
    \\ENQ\EOT/\STX\a\ETX\DC2\EOT\220\f#%\n\
    \\US\n\
    \\EOT\EOT/\STX\b\DC2\EOT\223\f\EOT\EM\SUB\DC1 Number of peers\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\b\EOT\DC2\ACK\223\f\EOT\220\f&\n\
    \\r\n\
    \\ENQ\EOT/\STX\b\ENQ\DC2\EOT\223\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\b\SOH\DC2\EOT\223\f\v\DC4\n\
    \\r\n\
    \\ENQ\EOT/\STX\b\ETX\DC2\EOT\223\f\ETB\CAN\n\
    \G\n\
    \\EOT\EOT/\STX\t\DC2\EOT\226\f\EOT\FS\SUB9 The node's current view of the height of the best block\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\t\EOT\DC2\ACK\226\f\EOT\223\f\EM\n\
    \\r\n\
    \\ENQ\EOT/\STX\t\ENQ\DC2\EOT\226\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\t\SOH\DC2\EOT\226\f\v\ETB\n\
    \\r\n\
    \\ENQ\EOT/\STX\t\ETX\DC2\EOT\226\f\SUB\ESC\n\
    \E\n\
    \\EOT\EOT/\STX\n\
    \\DC2\EOT\229\f\EOT\SUB\SUB7 The node's current view of the hash of the best block\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\n\
    \\EOT\DC2\ACK\229\f\EOT\226\f\FS\n\
    \\r\n\
    \\ENQ\EOT/\STX\n\
    \\ENQ\DC2\EOT\229\f\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\n\
    \\SOH\DC2\EOT\229\f\v\NAK\n\
    \\r\n\
    \\ENQ\EOT/\STX\n\
    \\ETX\DC2\EOT\229\f\CAN\EM\n\
    \?\n\
    \\EOT\EOT/\STX\v\DC2\EOT\232\f\EOT%\SUB1 Timestamp of the block best known to the wallet\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\v\EOT\DC2\ACK\232\f\EOT\229\f\SUB\n\
    \\r\n\
    \\ENQ\EOT/\STX\v\ENQ\DC2\EOT\232\f\EOT\t\n\
    \\r\n\
    \\ENQ\EOT/\STX\v\SOH\DC2\EOT\232\f\n\
    \\US\n\
    \\r\n\
    \\ENQ\EOT/\STX\v\ETX\DC2\EOT\232\f\"$\n\
    \E\n\
    \\EOT\EOT/\STX\f\DC2\EOT\235\f\EOT\GS\SUB7 Whether the wallet's view is synced to the main chain\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\f\EOT\DC2\ACK\235\f\EOT\232\f%\n\
    \\r\n\
    \\ENQ\EOT/\STX\f\ENQ\DC2\EOT\235\f\EOT\b\n\
    \\r\n\
    \\ENQ\EOT/\STX\f\SOH\DC2\EOT\235\f\t\CAN\n\
    \\r\n\
    \\ENQ\EOT/\STX\f\ETX\DC2\EOT\235\f\ESC\FS\n\
    \S\n\
    \\EOT\EOT/\STX\r\DC2\EOT\238\f\EOT\RS\SUBE Whether we consider ourselves synced with the public channel graph.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\r\EOT\DC2\ACK\238\f\EOT\235\f\GS\n\
    \\r\n\
    \\ENQ\EOT/\STX\r\ENQ\DC2\EOT\238\f\EOT\b\n\
    \\r\n\
    \\ENQ\EOT/\STX\r\SOH\DC2\EOT\238\f\t\CAN\n\
    \\r\n\
    \\ENQ\EOT/\STX\r\ETX\DC2\EOT\238\f\ESC\GS\n\
    \\135\SOH\n\
    \\EOT\EOT/\STX\SO\DC2\EOT\244\f\EOT*\SUBy\n\
    \Whether the current node is connected to testnet. This field is\n\
    \deprecated and the network field should be used instead\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\SO\EOT\DC2\ACK\244\f\EOT\238\f\RS\n\
    \\r\n\
    \\ENQ\EOT/\STX\SO\ENQ\DC2\EOT\244\f\EOT\b\n\
    \\r\n\
    \\ENQ\EOT/\STX\SO\SOH\DC2\EOT\244\f\t\DLE\n\
    \\r\n\
    \\ENQ\EOT/\STX\SO\ETX\DC2\EOT\244\f\DC3\NAK\n\
    \\r\n\
    \\ENQ\EOT/\STX\SO\b\DC2\EOT\244\f\SYN)\n\
    \\SO\n\
    \\ACK\EOT/\STX\SO\b\ETX\DC2\EOT\244\f\ETB(\n\
    \\v\n\
    \\ETX\EOT/\t\DC2\EOT\246\f\EOT\DLE\n\
    \\f\n\
    \\EOT\EOT/\t\NUL\DC2\EOT\246\f\r\SI\n\
    \\r\n\
    \\ENQ\EOT/\t\NUL\SOH\DC2\EOT\246\f\r\SI\n\
    \\r\n\
    \\ENQ\EOT/\t\NUL\STX\DC2\EOT\246\f\r\SI\n\
    \@\n\
    \\EOT\EOT/\STX\SI\DC2\EOT\249\f\EOT\US\SUB2 A list of active chains the node is connected to\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\SI\EOT\DC2\EOT\249\f\EOT\f\n\
    \\r\n\
    \\ENQ\EOT/\STX\SI\ACK\DC2\EOT\249\f\r\DC2\n\
    \\r\n\
    \\ENQ\EOT/\STX\SI\SOH\DC2\EOT\249\f\DC3\EM\n\
    \\r\n\
    \\ENQ\EOT/\STX\SI\ETX\DC2\EOT\249\f\FS\RS\n\
    \-\n\
    \\EOT\EOT/\STX\DLE\DC2\EOT\252\f\EOT\RS\SUB\US The URIs of the current node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT/\STX\DLE\EOT\DC2\EOT\252\f\EOT\f\n\
    \\r\n\
    \\ENQ\EOT/\STX\DLE\ENQ\DC2\EOT\252\f\r\DC3\n\
    \\r\n\
    \\ENQ\EOT/\STX\DLE\SOH\DC2\EOT\252\f\DC4\CAN\n\
    \\r\n\
    \\ENQ\EOT/\STX\DLE\ETX\DC2\EOT\252\f\ESC\GS\n\
    \k\n\
    \\EOT\EOT/\STX\DC1\DC2\EOT\130\r\EOT'\SUB]\n\
    \Features that our node has advertised in our init message, node\n\
    \announcements and invoices.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT/\STX\DC1\EOT\DC2\ACK\130\r\EOT\252\f\RS\n\
    \\r\n\
    \\ENQ\EOT/\STX\DC1\ACK\DC2\EOT\130\r\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT/\STX\DC1\SOH\DC2\EOT\130\r\EM!\n\
    \\r\n\
    \\ENQ\EOT/\STX\DC1\ETX\DC2\EOT\130\r$&\n\
    \\f\n\
    \\STX\EOT0\DC2\ACK\133\r\NUL\134\r\SOH\n\
    \\v\n\
    \\ETX\EOT0\SOH\DC2\EOT\133\r\b\RS\n\
    \\f\n\
    \\STX\EOT1\DC2\ACK\135\r\NUL\144\r\SOH\n\
    \\v\n\
    \\ETX\EOT1\SOH\DC2\EOT\135\r\b\US\n\
    \6\n\
    \\EOT\EOT1\STX\NUL\DC2\EOT\137\r\EOT\ESC\SUB( Whether the wallet is in recovery mode\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT1\STX\NUL\EOT\DC2\ACK\137\r\EOT\135\r!\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\ENQ\DC2\EOT\137\r\EOT\b\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\SOH\DC2\EOT\137\r\t\SYN\n\
    \\r\n\
    \\ENQ\EOT1\STX\NUL\ETX\DC2\EOT\137\r\EM\SUB\n\
    \@\n\
    \\EOT\EOT1\STX\SOH\DC2\EOT\140\r\EOT\US\SUB2 Whether the wallet recovery progress is finished\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT1\STX\SOH\EOT\DC2\ACK\140\r\EOT\137\r\ESC\n\
    \\r\n\
    \\ENQ\EOT1\STX\SOH\ENQ\DC2\EOT\140\r\EOT\b\n\
    \\r\n\
    \\ENQ\EOT1\STX\SOH\SOH\DC2\EOT\140\r\t\SUB\n\
    \\r\n\
    \\ENQ\EOT1\STX\SOH\ETX\DC2\EOT\140\r\GS\RS\n\
    \;\n\
    \\EOT\EOT1\STX\STX\DC2\EOT\143\r\EOT\CAN\SUB- The recovery progress, ranging from 0 to 1.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT1\STX\STX\EOT\DC2\ACK\143\r\EOT\140\r\US\n\
    \\r\n\
    \\ENQ\EOT1\STX\STX\ENQ\DC2\EOT\143\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT1\STX\STX\SOH\DC2\EOT\143\r\v\DC3\n\
    \\r\n\
    \\ENQ\EOT1\STX\STX\ETX\DC2\EOT\143\r\SYN\ETB\n\
    \\f\n\
    \\STX\EOT2\DC2\ACK\146\r\NUL\152\r\SOH\n\
    \\v\n\
    \\ETX\EOT2\SOH\DC2\EOT\146\r\b\r\n\
    \D\n\
    \\EOT\EOT2\STX\NUL\DC2\EOT\148\r\EOT\NAK\SUB6 The blockchain the node is on (eg bitcoin, litecoin)\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT2\STX\NUL\EOT\DC2\ACK\148\r\EOT\146\r\SI\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\ENQ\DC2\EOT\148\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\SOH\DC2\EOT\148\r\v\DLE\n\
    \\r\n\
    \\ENQ\EOT2\STX\NUL\ETX\DC2\EOT\148\r\DC3\DC4\n\
    \I\n\
    \\EOT\EOT2\STX\SOH\DC2\EOT\151\r\EOT\ETB\SUB; The network the node is on (eg regtest, testnet, mainnet)\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT2\STX\SOH\EOT\DC2\ACK\151\r\EOT\148\r\NAK\n\
    \\r\n\
    \\ENQ\EOT2\STX\SOH\ENQ\DC2\EOT\151\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT2\STX\SOH\SOH\DC2\EOT\151\r\v\DC2\n\
    \\r\n\
    \\ENQ\EOT2\STX\SOH\ETX\DC2\EOT\151\r\NAK\SYN\n\
    \\f\n\
    \\STX\EOT3\DC2\ACK\154\r\NUL\159\r\SOH\n\
    \\v\n\
    \\ETX\EOT3\SOH\DC2\EOT\154\r\b\SUB\n\
    \\f\n\
    \\EOT\EOT3\STX\NUL\DC2\EOT\155\r\EOT\CAN\n\
    \\SI\n\
    \\ENQ\EOT3\STX\NUL\EOT\DC2\ACK\155\r\EOT\154\r\FS\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\ENQ\DC2\EOT\155\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\SOH\DC2\EOT\155\r\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT3\STX\NUL\ETX\DC2\EOT\155\r\SYN\ETB\n\
    \\f\n\
    \\EOT\EOT3\STX\SOH\DC2\EOT\156\r\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT3\STX\SOH\EOT\DC2\ACK\156\r\EOT\155\r\CAN\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\ENQ\DC2\EOT\156\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\SOH\DC2\EOT\156\r\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT3\STX\SOH\ETX\DC2\EOT\156\r\EM\SUB\n\
    \\f\n\
    \\EOT\EOT3\STX\STX\DC2\EOT\158\r\EOT\RS\n\
    \\SI\n\
    \\ENQ\EOT3\STX\STX\EOT\DC2\ACK\158\r\EOT\156\r\ESC\n\
    \\r\n\
    \\ENQ\EOT3\STX\STX\ENQ\DC2\EOT\158\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT3\STX\STX\SOH\DC2\EOT\158\r\v\EM\n\
    \\r\n\
    \\ENQ\EOT3\STX\STX\ETX\DC2\EOT\158\r\FS\GS\n\
    \\f\n\
    \\STX\EOT4\DC2\ACK\161\r\NUL\163\r\SOH\n\
    \\v\n\
    \\ETX\EOT4\SOH\DC2\EOT\161\r\b\EM\n\
    \\f\n\
    \\EOT\EOT4\STX\NUL\DC2\EOT\162\r\EOT#\n\
    \\SI\n\
    \\ENQ\EOT4\STX\NUL\EOT\DC2\ACK\162\r\EOT\161\r\ESC\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\ACK\DC2\EOT\162\r\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\SOH\DC2\EOT\162\r\DC1\RS\n\
    \\r\n\
    \\ENQ\EOT4\STX\NUL\ETX\DC2\EOT\162\r!\"\n\
    \\f\n\
    \\STX\EOT5\DC2\ACK\165\r\NUL\169\r\SOH\n\
    \\v\n\
    \\ETX\EOT5\SOH\DC2\EOT\165\r\b\SUB\n\
    \\f\n\
    \\EOT\EOT5\STX\NUL\DC2\EOT\166\r\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT5\STX\NUL\EOT\DC2\ACK\166\r\EOT\165\r\FS\n\
    \\r\n\
    \\ENQ\EOT5\STX\NUL\ENQ\DC2\EOT\166\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT5\STX\NUL\SOH\DC2\EOT\166\r\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT5\STX\NUL\ETX\DC2\EOT\166\r\EM\SUB\n\
    \\f\n\
    \\EOT\EOT5\STX\SOH\DC2\EOT\168\r\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOT5\STX\SOH\EOT\DC2\ACK\168\r\EOT\166\r\ESC\n\
    \\r\n\
    \\ENQ\EOT5\STX\SOH\ENQ\DC2\EOT\168\r\EOT\b\n\
    \\r\n\
    \\ENQ\EOT5\STX\SOH\SOH\DC2\EOT\168\r\t\DLE\n\
    \\r\n\
    \\ENQ\EOT5\STX\SOH\ETX\DC2\EOT\168\r\DC3\DC4\n\
    \\f\n\
    \\STX\EOT6\DC2\ACK\171\r\NUL\203\r\SOH\n\
    \\v\n\
    \\ETX\EOT6\SOH\DC2\EOT\171\r\b\ESC\n\
    \\179\SOH\n\
    \\EOT\EOT6\STX\NUL\DC2\EOT\177\r\EOT#\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\
    \\SI\n\
    \\ENQ\EOT6\STX\NUL\EOT\DC2\ACK\177\r\EOT\171\r\GS\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\ACK\DC2\EOT\177\r\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\SOH\DC2\EOT\177\r\DC1\RS\n\
    \\r\n\
    \\ENQ\EOT6\STX\NUL\ETX\DC2\EOT\177\r!\"\n\
    \\144\SOH\n\
    \\EOT\EOT6\STX\SOH\DC2\EOT\181\r\EOT\DC3\SUB\129\SOH If true, then the channel will be closed forcibly. This means the\n\
    \ current commitment transaction will be signed and broadcast.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT6\STX\SOH\EOT\DC2\ACK\181\r\EOT\177\r#\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\ENQ\DC2\EOT\181\r\EOT\b\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\SOH\DC2\EOT\181\r\t\SO\n\
    \\r\n\
    \\ENQ\EOT6\STX\SOH\ETX\DC2\EOT\181\r\DC1\DC2\n\
    \a\n\
    \\EOT\EOT6\STX\STX\DC2\EOT\185\r\EOT\SUB\SUBS The target number of blocks that the closure transaction should be\n\
    \ confirmed by.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT6\STX\STX\EOT\DC2\ACK\185\r\EOT\181\r\DC3\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\ENQ\DC2\EOT\185\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\SOH\DC2\EOT\185\r\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT6\STX\STX\ETX\DC2\EOT\185\r\CAN\EM\n\
    \\143\SOH\n\
    \\EOT\EOT6\STX\ETX\DC2\EOT\190\r\EOT/\SUB\128\SOH Deprecated, use sat_per_vbyte.\n\
    \ A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ closure transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT6\STX\ETX\EOT\DC2\ACK\190\r\EOT\185\r\SUB\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\ENQ\DC2\EOT\190\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\SOH\DC2\EOT\190\r\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\ETX\DC2\EOT\190\r\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT6\STX\ETX\b\DC2\EOT\190\r\ESC.\n\
    \\SO\n\
    \\ACK\EOT6\STX\ETX\b\ETX\DC2\EOT\190\r\FS-\n\
    \\140\STX\n\
    \\EOT\EOT6\STX\EOT\DC2\EOT\198\r\EOT \SUB\253\SOH\n\
    \An optional address to send funds to in the case of a cooperative close.\n\
    \If the channel was opened with an upfront shutdown script and this field\n\
    \is set, the request to close will fail because the channel must pay out\n\
    \to the upfront shutdown addresss.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT6\STX\EOT\EOT\DC2\ACK\198\r\EOT\190\r/\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\ENQ\DC2\EOT\198\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\SOH\DC2\EOT\198\r\v\ESC\n\
    \\r\n\
    \\ENQ\EOT6\STX\EOT\ETX\DC2\EOT\198\r\RS\US\n\
    \n\n\
    \\EOT\EOT6\STX\ENQ\DC2\EOT\202\r\EOT\GS\SUB` A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ closure transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT6\STX\ENQ\EOT\DC2\ACK\202\r\EOT\198\r \n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\ENQ\DC2\EOT\202\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\SOH\DC2\EOT\202\r\v\CAN\n\
    \\r\n\
    \\ENQ\EOT6\STX\ENQ\ETX\DC2\EOT\202\r\ESC\FS\n\
    \\f\n\
    \\STX\EOT7\DC2\ACK\205\r\NUL\210\r\SOH\n\
    \\v\n\
    \\ETX\EOT7\SOH\DC2\EOT\205\r\b\EM\n\
    \\SO\n\
    \\EOT\EOT7\b\NUL\DC2\ACK\206\r\EOT\209\r\ENQ\n\
    \\r\n\
    \\ENQ\EOT7\b\NUL\SOH\DC2\EOT\206\r\n\
    \\DLE\n\
    \\f\n\
    \\EOT\EOT7\STX\NUL\DC2\EOT\207\r\b(\n\
    \\r\n\
    \\ENQ\EOT7\STX\NUL\ACK\DC2\EOT\207\r\b\NAK\n\
    \\r\n\
    \\ENQ\EOT7\STX\NUL\SOH\DC2\EOT\207\r\SYN#\n\
    \\r\n\
    \\ENQ\EOT7\STX\NUL\ETX\DC2\EOT\207\r&'\n\
    \\f\n\
    \\EOT\EOT7\STX\SOH\DC2\EOT\208\r\b*\n\
    \\r\n\
    \\ENQ\EOT7\STX\SOH\ACK\DC2\EOT\208\r\b\SUB\n\
    \\r\n\
    \\ENQ\EOT7\STX\SOH\SOH\DC2\EOT\208\r\ESC%\n\
    \\r\n\
    \\ENQ\EOT7\STX\SOH\ETX\DC2\EOT\208\r()\n\
    \\f\n\
    \\STX\EOT8\DC2\ACK\212\r\NUL\215\r\SOH\n\
    \\v\n\
    \\ETX\EOT8\SOH\DC2\EOT\212\r\b\NAK\n\
    \\f\n\
    \\EOT\EOT8\STX\NUL\DC2\EOT\213\r\EOT\DC3\n\
    \\SI\n\
    \\ENQ\EOT8\STX\NUL\EOT\DC2\ACK\213\r\EOT\212\r\ETB\n\
    \\r\n\
    \\ENQ\EOT8\STX\NUL\ENQ\DC2\EOT\213\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT8\STX\NUL\SOH\DC2\EOT\213\r\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT8\STX\NUL\ETX\DC2\EOT\213\r\DC1\DC2\n\
    \\f\n\
    \\EOT\EOT8\STX\SOH\DC2\EOT\214\r\EOT\FS\n\
    \\SI\n\
    \\ENQ\EOT8\STX\SOH\EOT\DC2\ACK\214\r\EOT\213\r\DC3\n\
    \\r\n\
    \\ENQ\EOT8\STX\SOH\ENQ\DC2\EOT\214\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT8\STX\SOH\SOH\DC2\EOT\214\r\v\ETB\n\
    \\r\n\
    \\ENQ\EOT8\STX\SOH\ETX\DC2\EOT\214\r\SUB\ESC\n\
    \\f\n\
    \\STX\EOT9\DC2\ACK\217\r\NUL\237\r\SOH\n\
    \\v\n\
    \\ETX\EOT9\SOH\DC2\EOT\217\r\b\ESC\n\
    \\138\SOH\n\
    \\EOT\EOT9\STX\NUL\DC2\EOT\222\r\EOT\US\SUB|\n\
    \The P2WSH address of the channel funding multisig address that the below\n\
    \specified amount in satoshis needs to be sent to.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT9\STX\NUL\EOT\DC2\ACK\222\r\EOT\217\r\GS\n\
    \\r\n\
    \\ENQ\EOT9\STX\NUL\ENQ\DC2\EOT\222\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT9\STX\NUL\SOH\DC2\EOT\222\r\v\SUB\n\
    \\r\n\
    \\ENQ\EOT9\STX\NUL\ETX\DC2\EOT\222\r\GS\RS\n\
    \t\n\
    \\EOT\EOT9\STX\SOH\DC2\EOT\228\r\EOT\GS\SUBf\n\
    \The exact amount in satoshis that needs to be sent to the above address to\n\
    \fund the pending channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT9\STX\SOH\EOT\DC2\ACK\228\r\EOT\222\r\US\n\
    \\r\n\
    \\ENQ\EOT9\STX\SOH\ENQ\DC2\EOT\228\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT9\STX\SOH\SOH\DC2\EOT\228\r\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOT9\STX\SOH\ETX\DC2\EOT\228\r\ESC\FS\n\
    \\252\SOH\n\
    \\EOT\EOT9\STX\STX\DC2\EOT\236\r\EOT\DC3\SUB\237\SOH\n\
    \A raw PSBT that contains the pending channel output. If a base PSBT was\n\
    \provided in the PsbtShim, this is the base PSBT with one additional output.\n\
    \If no base PSBT was specified, this is an otherwise empty PSBT with exactly\n\
    \one output.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT9\STX\STX\EOT\DC2\ACK\236\r\EOT\228\r\GS\n\
    \\r\n\
    \\ENQ\EOT9\STX\STX\ENQ\DC2\EOT\236\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT9\STX\STX\SOH\DC2\EOT\236\r\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOT9\STX\STX\ETX\DC2\EOT\236\r\DC1\DC2\n\
    \\f\n\
    \\STX\EOT:\DC2\ACK\239\r\NUL\202\SO\SOH\n\
    \\v\n\
    \\ETX\EOT:\SOH\DC2\EOT\239\r\b\SUB\n\
    \n\n\
    \\EOT\EOT:\STX\NUL\DC2\EOT\242\r\EOT\GS\SUB` A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ funding transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\NUL\EOT\DC2\ACK\242\r\EOT\239\r\FS\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\ENQ\DC2\EOT\242\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\SOH\DC2\EOT\242\r\v\CAN\n\
    \\r\n\
    \\ENQ\EOT:\STX\NUL\ETX\DC2\EOT\242\r\ESC\FS\n\
    \u\n\
    \\EOT\EOT:\STX\SOH\DC2\EOT\248\r\EOT\SUB\SUBg\n\
    \The pubkey of the node to open a channel with. When using REST, this field\n\
    \must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\SOH\EOT\DC2\ACK\248\r\EOT\242\r\GS\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\ENQ\DC2\EOT\248\r\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\SOH\DC2\EOT\248\r\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT:\STX\SOH\ETX\DC2\EOT\248\r\CAN\EM\n\
    \\154\SOH\n\
    \\EOT\EOT:\STX\STX\DC2\EOT\254\r\EOT6\SUB\139\SOH\n\
    \The hex encoded pubkey of the node to open a channel with. Deprecated now\n\
    \that the REST gateway supports base64 encoding of bytes fields.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\STX\EOT\DC2\ACK\254\r\EOT\248\r\SUB\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\ENQ\DC2\EOT\254\r\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\SOH\DC2\EOT\254\r\v\GS\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\ETX\DC2\EOT\254\r !\n\
    \\r\n\
    \\ENQ\EOT:\STX\STX\b\DC2\EOT\254\r\"5\n\
    \\SO\n\
    \\ACK\EOT:\STX\STX\b\ETX\DC2\EOT\254\r#4\n\
    \N\n\
    \\EOT\EOT:\STX\ETX\DC2\EOT\129\SO\EOT#\SUB@ The number of satoshis the wallet should commit to the channel\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\ETX\EOT\DC2\ACK\129\SO\EOT\254\r6\n\
    \\r\n\
    \\ENQ\EOT:\STX\ETX\ENQ\DC2\EOT\129\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\ETX\SOH\DC2\EOT\129\SO\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOT:\STX\ETX\ETX\DC2\EOT\129\SO!\"\n\
    \j\n\
    \\EOT\EOT:\STX\EOT\DC2\EOT\133\SO\EOT\ETB\SUB\\ The number of satoshis to push to the remote side as part of the initial\n\
    \ commitment state\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\EOT\EOT\DC2\ACK\133\SO\EOT\129\SO#\n\
    \\r\n\
    \\ENQ\EOT:\STX\EOT\ENQ\DC2\EOT\133\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\EOT\SOH\DC2\EOT\133\SO\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT:\STX\EOT\ETX\DC2\EOT\133\SO\NAK\SYN\n\
    \a\n\
    \\EOT\EOT:\STX\ENQ\DC2\EOT\137\SO\EOT\SUB\SUBS The target number of blocks that the funding transaction should be\n\
    \ confirmed by.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\ENQ\EOT\DC2\ACK\137\SO\EOT\133\SO\ETB\n\
    \\r\n\
    \\ENQ\EOT:\STX\ENQ\ENQ\DC2\EOT\137\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\ENQ\SOH\DC2\EOT\137\SO\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOT:\STX\ENQ\ETX\DC2\EOT\137\SO\CAN\EM\n\
    \\143\SOH\n\
    \\EOT\EOT:\STX\ACK\DC2\EOT\142\SO\EOT/\SUB\128\SOH Deprecated, use sat_per_vbyte.\n\
    \ A manual fee rate set in sat/vbyte that should be used when crafting the\n\
    \ funding transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\ACK\EOT\DC2\ACK\142\SO\EOT\137\SO\SUB\n\
    \\r\n\
    \\ENQ\EOT:\STX\ACK\ENQ\DC2\EOT\142\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\ACK\SOH\DC2\EOT\142\SO\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOT:\STX\ACK\ETX\DC2\EOT\142\SO\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT:\STX\ACK\b\DC2\EOT\142\SO\ESC.\n\
    \\SO\n\
    \\ACK\EOT:\STX\ACK\b\ETX\DC2\EOT\142\SO\FS-\n\
    \^\n\
    \\EOT\EOT:\STX\a\DC2\EOT\146\SO\EOT\NAK\SUBP Whether this channel should be private, not announced to the greater\n\
    \ network.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\a\EOT\DC2\ACK\146\SO\EOT\142\SO/\n\
    \\r\n\
    \\ENQ\EOT:\STX\a\ENQ\DC2\EOT\146\SO\EOT\b\n\
    \\r\n\
    \\ENQ\EOT:\STX\a\SOH\DC2\EOT\146\SO\t\DLE\n\
    \\r\n\
    \\ENQ\EOT:\STX\a\ETX\DC2\EOT\146\SO\DC3\DC4\n\
    \e\n\
    \\EOT\EOT:\STX\b\DC2\EOT\150\SO\EOT\FS\SUBW The minimum value in millisatoshi we will require for incoming HTLCs on\n\
    \ the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\b\EOT\DC2\ACK\150\SO\EOT\146\SO\NAK\n\
    \\r\n\
    \\ENQ\EOT:\STX\b\ENQ\DC2\EOT\150\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\b\SOH\DC2\EOT\150\SO\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT:\STX\b\ETX\DC2\EOT\150\SO\SUB\ESC\n\
    \\153\SOH\n\
    \\EOT\EOT:\STX\t\DC2\EOT\154\SO\EOT!\SUB\138\SOH The delay we require on the remote's commitment transaction. If this is\n\
    \ not set, it will be scaled automatically with the channel size.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\t\EOT\DC2\ACK\154\SO\EOT\150\SO\FS\n\
    \\r\n\
    \\ENQ\EOT:\STX\t\ENQ\DC2\EOT\154\SO\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\t\SOH\DC2\EOT\154\SO\v\ESC\n\
    \\r\n\
    \\ENQ\EOT:\STX\t\ETX\DC2\EOT\154\SO\RS \n\
    \|\n\
    \\EOT\EOT:\STX\n\
    \\DC2\EOT\158\SO\EOT\EM\SUBn The minimum number of confirmations each one of your outputs used for\n\
    \ the funding transaction must satisfy.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\n\
    \\EOT\DC2\ACK\158\SO\EOT\154\SO!\n\
    \\r\n\
    \\ENQ\EOT:\STX\n\
    \\ENQ\DC2\EOT\158\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT:\STX\n\
    \\SOH\DC2\EOT\158\SO\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT:\STX\n\
    \\ETX\DC2\EOT\158\SO\SYN\CAN\n\
    \b\n\
    \\EOT\EOT:\STX\v\DC2\EOT\162\SO\EOT \SUBT Whether unconfirmed outputs should be used as inputs for the funding\n\
    \ transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\v\EOT\DC2\ACK\162\SO\EOT\158\SO\EM\n\
    \\r\n\
    \\ENQ\EOT:\STX\v\ENQ\DC2\EOT\162\SO\EOT\b\n\
    \\r\n\
    \\ENQ\EOT:\STX\v\SOH\DC2\EOT\162\SO\t\SUB\n\
    \\r\n\
    \\ENQ\EOT:\STX\v\ETX\DC2\EOT\162\SO\GS\US\n\
    \\197\ETX\n\
    \\EOT\EOT:\STX\f\DC2\EOT\174\SO\EOT\RS\SUB\182\ETX\n\
    \Close address is an optional address which specifies the address to which\n\
    \funds should be paid out to upon cooperative close. This field may only be\n\
    \set if the peer supports the option upfront feature bit (call listpeers\n\
    \to check). The remote peer will only accept cooperative closes to this\n\
    \address if it is set.\n\
    \\n\
    \Note: If this value is set on channel creation, you will *not* be able to\n\
    \cooperatively close out to a different address.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\f\EOT\DC2\ACK\174\SO\EOT\162\SO \n\
    \\r\n\
    \\ENQ\EOT:\STX\f\ENQ\DC2\EOT\174\SO\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\f\SOH\DC2\EOT\174\SO\v\CAN\n\
    \\r\n\
    \\ENQ\EOT:\STX\f\ETX\DC2\EOT\174\SO\ESC\GS\n\
    \\236\STX\n\
    \\EOT\EOT:\STX\r\DC2\EOT\183\SO\EOT\"\SUB\221\STX\n\
    \Funding shims are an optional argument that allow the caller to intercept\n\
    \certain funding functionality. For example, a shim can be provided to use a\n\
    \particular key for the commitment key (ideally cold) rather than use one\n\
    \that is generated by the wallet as normal, or signal that signing will be\n\
    \carried out in an interactive manner (PSBT based).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\r\EOT\DC2\ACK\183\SO\EOT\174\SO\RS\n\
    \\r\n\
    \\ENQ\EOT:\STX\r\ACK\DC2\EOT\183\SO\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT:\STX\r\SOH\DC2\EOT\183\SO\DLE\FS\n\
    \\r\n\
    \\ENQ\EOT:\STX\r\ETX\DC2\EOT\183\SO\US!\n\
    \\136\SOH\n\
    \\EOT\EOT:\STX\SO\DC2\EOT\189\SO\EOT0\SUBz\n\
    \The maximum amount of coins in millisatoshi that can be pending within\n\
    \the channel. It only applies to the remote party.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\SO\EOT\DC2\ACK\189\SO\EOT\183\SO\"\n\
    \\r\n\
    \\ENQ\EOT:\STX\SO\ENQ\DC2\EOT\189\SO\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\SO\SOH\DC2\EOT\189\SO\v*\n\
    \\r\n\
    \\ENQ\EOT:\STX\SO\ETX\DC2\EOT\189\SO-/\n\
    \{\n\
    \\EOT\EOT:\STX\SI\DC2\EOT\195\SO\EOT!\SUBm\n\
    \The maximum number of concurrent HTLCs we will allow the remote party to add\n\
    \to the commitment transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\SI\EOT\DC2\ACK\195\SO\EOT\189\SO0\n\
    \\r\n\
    \\ENQ\EOT:\STX\SI\ENQ\DC2\EOT\195\SO\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\SI\SOH\DC2\EOT\195\SO\v\ESC\n\
    \\r\n\
    \\ENQ\EOT:\STX\SI\ETX\DC2\EOT\195\SO\RS \n\
    \h\n\
    \\EOT\EOT:\STX\DLE\DC2\EOT\201\SO\EOT\RS\SUBZ\n\
    \Max local csv is the maximum csv delay we will allow for our own commitment\n\
    \transaction.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT:\STX\DLE\EOT\DC2\ACK\201\SO\EOT\195\SO!\n\
    \\r\n\
    \\ENQ\EOT:\STX\DLE\ENQ\DC2\EOT\201\SO\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT:\STX\DLE\SOH\DC2\EOT\201\SO\v\CAN\n\
    \\r\n\
    \\ENQ\EOT:\STX\DLE\ETX\DC2\EOT\201\SO\ESC\GS\n\
    \\f\n\
    \\STX\EOT;\DC2\ACK\203\SO\NUL\229\SO\SOH\n\
    \\v\n\
    \\ETX\EOT;\SOH\DC2\EOT\203\SO\b\CAN\n\
    \\SO\n\
    \\EOT\EOT;\b\NUL\DC2\ACK\204\SO\EOT\222\SO\ENQ\n\
    \\r\n\
    \\ENQ\EOT;\b\NUL\SOH\DC2\EOT\204\SO\n\
    \\DLE\n\
    \g\n\
    \\EOT\EOT;\STX\NUL\DC2\EOT\209\SO\b'\SUBY\n\
    \Signals that the channel is now fully negotiated and the funding\n\
    \transaction published.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\ACK\DC2\EOT\209\SO\b\NAK\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\SOH\DC2\EOT\209\SO\SYN\"\n\
    \\r\n\
    \\ENQ\EOT;\STX\NUL\ETX\DC2\EOT\209\SO%&\n\
    \\141\SOH\n\
    \\EOT\EOT;\STX\SOH\DC2\EOT\215\SO\b(\SUB\DEL\n\
    \Signals that the channel's funding transaction has now reached the\n\
    \required number of confirmations on chain and can be used.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\ACK\DC2\EOT\215\SO\b\EM\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\SOH\DC2\EOT\215\SO\SUB#\n\
    \\r\n\
    \\ENQ\EOT;\STX\SOH\ETX\DC2\EOT\215\SO&'\n\
    \\149\SOH\n\
    \\EOT\EOT;\STX\STX\DC2\EOT\221\SO\b*\SUB\134\SOH\n\
    \Signals that the funding process has been suspended and the construction\n\
    \of a PSBT that funds the channel PK script is now required.\n\
    \\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\ACK\DC2\EOT\221\SO\b\ESC\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\SOH\DC2\EOT\221\SO\FS%\n\
    \\r\n\
    \\ENQ\EOT;\STX\STX\ETX\DC2\EOT\221\SO()\n\
    \\156\SOH\n\
    \\EOT\EOT;\STX\ETX\DC2\EOT\228\SO\EOT\RS\SUB\141\SOH\n\
    \The pending channel ID of the created channel. This value may be used to\n\
    \further the funding flow manually via the FundingStateStep method.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT;\STX\ETX\EOT\DC2\ACK\228\SO\EOT\222\SO\ENQ\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\ENQ\DC2\EOT\228\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\SOH\DC2\EOT\228\SO\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT;\STX\ETX\ETX\DC2\EOT\228\SO\FS\GS\n\
    \\f\n\
    \\STX\EOT<\DC2\ACK\231\SO\NUL\237\SO\SOH\n\
    \\v\n\
    \\ETX\EOT<\SOH\DC2\EOT\231\SO\b\DC2\n\
    \3\n\
    \\EOT\EOT<\STX\NUL\DC2\EOT\233\SO\EOT\EM\SUB% The family of key being identified.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT<\STX\NUL\EOT\DC2\ACK\233\SO\EOT\231\SO\DC4\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\ENQ\DC2\EOT\233\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\SOH\DC2\EOT\233\SO\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT<\STX\NUL\ETX\DC2\EOT\233\SO\ETB\CAN\n\
    \>\n\
    \\EOT\EOT<\STX\SOH\DC2\EOT\236\SO\EOT\CAN\SUB0 The precise index of the key being identified.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT<\STX\SOH\EOT\DC2\ACK\236\SO\EOT\233\SO\EM\n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\ENQ\DC2\EOT\236\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\SOH\DC2\EOT\236\SO\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT<\STX\SOH\ETX\DC2\EOT\236\SO\SYN\ETB\n\
    \\f\n\
    \\STX\EOT=\DC2\ACK\239\SO\NUL\249\SO\SOH\n\
    \\v\n\
    \\ETX\EOT=\SOH\DC2\EOT\239\SO\b\NAK\n\
    \:\n\
    \\EOT\EOT=\STX\NUL\DC2\EOT\243\SO\EOT\FS\SUB,\n\
    \The raw bytes of the key being identified.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT=\STX\NUL\EOT\DC2\ACK\243\SO\EOT\239\SO\ETB\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\ENQ\DC2\EOT\243\SO\EOT\t\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\SOH\DC2\EOT\243\SO\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT=\STX\NUL\ETX\DC2\EOT\243\SO\SUB\ESC\n\
    \M\n\
    \\EOT\EOT=\STX\SOH\DC2\EOT\248\SO\EOT\ESC\SUB?\n\
    \The key locator that identifies which key to use for signing.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT=\STX\SOH\EOT\DC2\ACK\248\SO\EOT\243\SO\FS\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\ACK\DC2\EOT\248\SO\EOT\SO\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\SOH\DC2\EOT\248\SO\SI\SYN\n\
    \\r\n\
    \\ENQ\EOT=\STX\SOH\ETX\DC2\EOT\248\SO\EM\SUB\n\
    \\f\n\
    \\STX\EOT>\DC2\ACK\251\SO\NUL\155\SI\SOH\n\
    \\v\n\
    \\ETX\EOT>\SOH\DC2\EOT\251\SO\b\NAK\n\
    \l\n\
    \\EOT\EOT>\STX\NUL\DC2\EOT\128\SI\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\
    \\SI\n\
    \\ENQ\EOT>\STX\NUL\EOT\DC2\ACK\128\SI\EOT\251\SO\ETB\n\
    \\r\n\
    \\ENQ\EOT>\STX\NUL\ENQ\DC2\EOT\128\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOT>\STX\NUL\SOH\DC2\EOT\128\SI\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOT>\STX\NUL\ETX\DC2\EOT\128\SI\DLE\DC1\n\
    \X\n\
    \\EOT\EOT>\STX\SOH\DC2\EOT\131\SI\EOT \SUBJ The target channel point to refrence in created commitment transactions.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT>\STX\SOH\EOT\DC2\ACK\131\SI\EOT\128\SI\DC2\n\
    \\r\n\
    \\ENQ\EOT>\STX\SOH\ACK\DC2\EOT\131\SI\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT>\STX\SOH\SOH\DC2\EOT\131\SI\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOT>\STX\SOH\ETX\DC2\EOT\131\SI\RS\US\n\
    \H\n\
    \\EOT\EOT>\STX\STX\DC2\EOT\134\SI\EOT \SUB: Our local key to use when creating the multi-sig output.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT>\STX\STX\EOT\DC2\ACK\134\SI\EOT\131\SI \n\
    \\r\n\
    \\ENQ\EOT>\STX\STX\ACK\DC2\EOT\134\SI\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT>\STX\STX\SOH\DC2\EOT\134\SI\DC2\ESC\n\
    \\r\n\
    \\ENQ\EOT>\STX\STX\ETX\DC2\EOT\134\SI\RS\US\n\
    \V\n\
    \\EOT\EOT>\STX\ETX\DC2\EOT\137\SI\EOT\EM\SUBH The key of the remote party to use when creating the multi-sig output.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT>\STX\ETX\EOT\DC2\ACK\137\SI\EOT\134\SI \n\
    \\r\n\
    \\ENQ\EOT>\STX\ETX\ENQ\DC2\EOT\137\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOT>\STX\ETX\SOH\DC2\EOT\137\SI\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOT>\STX\ETX\ETX\DC2\EOT\137\SI\ETB\CAN\n\
    \\250\SOH\n\
    \\EOT\EOT>\STX\EOT\DC2\EOT\145\SI\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\
    \\SI\n\
    \\ENQ\EOT>\STX\EOT\EOT\DC2\ACK\145\SI\EOT\137\SI\EM\n\
    \\r\n\
    \\ENQ\EOT>\STX\EOT\ENQ\DC2\EOT\145\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOT>\STX\EOT\SOH\DC2\EOT\145\SI\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT>\STX\EOT\ETX\DC2\EOT\145\SI\FS\GS\n\
    \\252\STX\n\
    \\EOT\EOT>\STX\ENQ\DC2\EOT\154\SI\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\
    \\SI\n\
    \\ENQ\EOT>\STX\ENQ\EOT\DC2\ACK\154\SI\EOT\145\SI\RS\n\
    \\r\n\
    \\ENQ\EOT>\STX\ENQ\ENQ\DC2\EOT\154\SI\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT>\STX\ENQ\SOH\DC2\EOT\154\SI\v\SYN\n\
    \\r\n\
    \\ENQ\EOT>\STX\ENQ\ETX\DC2\EOT\154\SI\EM\SUB\n\
    \\f\n\
    \\STX\EOT?\DC2\ACK\157\SI\NUL\180\SI\SOH\n\
    \\v\n\
    \\ETX\EOT?\SOH\DC2\EOT\157\SI\b\DLE\n\
    \\217\SOH\n\
    \\EOT\EOT?\STX\NUL\DC2\EOT\163\SI\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\
    \\SI\n\
    \\ENQ\EOT?\STX\NUL\EOT\DC2\ACK\163\SI\EOT\157\SI\DC2\n\
    \\r\n\
    \\ENQ\EOT?\STX\NUL\ENQ\DC2\EOT\163\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOT?\STX\NUL\SOH\DC2\EOT\163\SI\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOT?\STX\NUL\ETX\DC2\EOT\163\SI\FS\GS\n\
    \\137\SOH\n\
    \\EOT\EOT?\STX\SOH\DC2\EOT\169\SI\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\
    \\SI\n\
    \\ENQ\EOT?\STX\SOH\EOT\DC2\ACK\169\SI\EOT\163\SI\RS\n\
    \\r\n\
    \\ENQ\EOT?\STX\SOH\ENQ\DC2\EOT\169\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOT?\STX\SOH\SOH\DC2\EOT\169\SI\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOT?\STX\SOH\ETX\DC2\EOT\169\SI\SYN\ETB\n\
    \\197\ETX\n\
    \\EOT\EOT?\STX\STX\DC2\EOT\179\SI\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\
    \\SI\n\
    \\ENQ\EOT?\STX\STX\EOT\DC2\ACK\179\SI\EOT\169\SI\CAN\n\
    \\r\n\
    \\ENQ\EOT?\STX\STX\ENQ\DC2\EOT\179\SI\EOT\b\n\
    \\r\n\
    \\ENQ\EOT?\STX\STX\SOH\DC2\EOT\179\SI\t\DC3\n\
    \\r\n\
    \\ENQ\EOT?\STX\STX\ETX\DC2\EOT\179\SI\SYN\ETB\n\
    \\f\n\
    \\STX\EOT@\DC2\ACK\182\SI\NUL\196\SI\SOH\n\
    \\v\n\
    \\ETX\EOT@\SOH\DC2\EOT\182\SI\b\DC3\n\
    \\SO\n\
    \\EOT\EOT@\b\NUL\DC2\ACK\183\SI\EOT\195\SI\ENQ\n\
    \\r\n\
    \\ENQ\EOT@\b\NUL\SOH\DC2\EOT\183\SI\n\
    \\SO\n\
    \\149\SOH\n\
    \\EOT\EOT@\STX\NUL\DC2\EOT\188\SI\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@\STX\NUL\ACK\DC2\EOT\188\SI\b\NAK\n\
    \\r\n\
    \\ENQ\EOT@\STX\NUL\SOH\DC2\EOT\188\SI\SYN%\n\
    \\r\n\
    \\ENQ\EOT@\STX\NUL\ETX\DC2\EOT\188\SI()\n\
    \a\n\
    \\EOT\EOT@\STX\SOH\DC2\EOT\194\SI\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@\STX\SOH\ACK\DC2\EOT\194\SI\b\DLE\n\
    \\r\n\
    \\ENQ\EOT@\STX\SOH\SOH\DC2\EOT\194\SI\DC1\SUB\n\
    \\r\n\
    \\ENQ\EOT@\STX\SOH\ETX\DC2\EOT\194\SI\GS\RS\n\
    \\f\n\
    \\STX\EOTA\DC2\ACK\198\SI\NUL\201\SI\SOH\n\
    \\v\n\
    \\ETX\EOTA\SOH\DC2\EOT\198\SI\b\EM\n\
    \U\n\
    \\EOT\EOTA\STX\NUL\DC2\EOT\200\SI\EOT\RS\SUBG The pending channel ID of the channel to cancel the funding shim for.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTA\STX\NUL\EOT\DC2\ACK\200\SI\EOT\198\SI\ESC\n\
    \\r\n\
    \\ENQ\EOTA\STX\NUL\ENQ\DC2\EOT\200\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTA\STX\NUL\SOH\DC2\EOT\200\SI\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTA\STX\NUL\ETX\DC2\EOT\200\SI\FS\GS\n\
    \\f\n\
    \\STX\EOTB\DC2\ACK\203\SI\NUL\213\SI\SOH\n\
    \\v\n\
    \\ETX\EOTB\SOH\DC2\EOT\203\SI\b\EM\n\
    \\170\SOH\n\
    \\EOT\EOTB\STX\NUL\DC2\EOT\209\SI\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\
    \\SI\n\
    \\ENQ\EOTB\STX\NUL\EOT\DC2\ACK\209\SI\EOT\203\SI\ESC\n\
    \\r\n\
    \\ENQ\EOTB\STX\NUL\ENQ\DC2\EOT\209\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTB\STX\NUL\SOH\DC2\EOT\209\SI\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOTB\STX\NUL\ETX\DC2\EOT\209\SI\CAN\EM\n\
    \J\n\
    \\EOT\EOTB\STX\SOH\DC2\EOT\212\SI\EOT\RS\SUB< The pending channel ID of the channel to get the PSBT for.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTB\STX\SOH\EOT\DC2\ACK\212\SI\EOT\209\SI\SUB\n\
    \\r\n\
    \\ENQ\EOTB\STX\SOH\ENQ\DC2\EOT\212\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTB\STX\SOH\SOH\DC2\EOT\212\SI\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTB\STX\SOH\ETX\DC2\EOT\212\SI\FS\GS\n\
    \\f\n\
    \\STX\EOTC\DC2\ACK\215\SI\NUL\232\SI\SOH\n\
    \\v\n\
    \\ETX\EOTC\SOH\DC2\EOT\215\SI\b\ESC\n\
    \\227\SOH\n\
    \\EOT\EOTC\STX\NUL\DC2\EOT\221\SI\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\
    \\SI\n\
    \\ENQ\EOTC\STX\NUL\EOT\DC2\ACK\221\SI\EOT\215\SI\GS\n\
    \\r\n\
    \\ENQ\EOTC\STX\NUL\ENQ\DC2\EOT\221\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTC\STX\NUL\SOH\DC2\EOT\221\SI\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOTC\STX\NUL\ETX\DC2\EOT\221\SI\CAN\EM\n\
    \J\n\
    \\EOT\EOTC\STX\SOH\DC2\EOT\224\SI\EOT\RS\SUB< The pending channel ID of the channel to get the PSBT for.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTC\STX\SOH\EOT\DC2\ACK\224\SI\EOT\221\SI\SUB\n\
    \\r\n\
    \\ENQ\EOTC\STX\SOH\ENQ\DC2\EOT\224\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTC\STX\SOH\SOH\DC2\EOT\224\SI\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTC\STX\SOH\ETX\DC2\EOT\224\SI\FS\GS\n\
    \\193\SOH\n\
    \\EOT\EOTC\STX\STX\DC2\EOT\231\SI\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\
    \\SI\n\
    \\ENQ\EOTC\STX\STX\EOT\DC2\ACK\231\SI\EOT\224\SI\RS\n\
    \\r\n\
    \\ENQ\EOTC\STX\STX\ENQ\DC2\EOT\231\SI\EOT\t\n\
    \\r\n\
    \\ENQ\EOTC\STX\STX\SOH\DC2\EOT\231\SI\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTC\STX\STX\ETX\DC2\EOT\231\SI\EM\SUB\n\
    \\f\n\
    \\STX\EOTD\DC2\ACK\234\SI\NUL\133\DLE\SOH\n\
    \\v\n\
    \\ETX\EOTD\SOH\DC2\EOT\234\SI\b\FS\n\
    \\SO\n\
    \\EOT\EOTD\b\NUL\DC2\ACK\235\SI\EOT\132\DLE\ENQ\n\
    \\r\n\
    \\ENQ\EOTD\b\NUL\SOH\DC2\EOT\235\SI\n\
    \\DC1\n\
    \\194\SOH\n\
    \\EOT\EOTD\STX\NUL\DC2\EOT\241\SI\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\EOTD\STX\NUL\ACK\DC2\EOT\241\SI\b\DC3\n\
    \\r\n\
    \\ENQ\EOTD\STX\NUL\SOH\DC2\EOT\241\SI\DC4!\n\
    \\r\n\
    \\ENQ\EOTD\STX\NUL\ETX\DC2\EOT\241\SI$%\n\
    \C\n\
    \\EOT\EOTD\STX\SOH\DC2\EOT\244\SI\b*\SUB5 Used to cancel an existing registered funding shim.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTD\STX\SOH\ACK\DC2\EOT\244\SI\b\EM\n\
    \\r\n\
    \\ENQ\EOTD\STX\SOH\SOH\DC2\EOT\244\SI\SUB%\n\
    \\r\n\
    \\ENQ\EOTD\STX\SOH\ETX\DC2\EOT\244\SI()\n\
    \\181\SOH\n\
    \\EOT\EOTD\STX\STX\DC2\EOT\251\SI\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\EOTD\STX\STX\ACK\DC2\EOT\251\SI\b\EM\n\
    \\r\n\
    \\ENQ\EOTD\STX\STX\SOH\DC2\EOT\251\SI\SUB%\n\
    \\r\n\
    \\ENQ\EOTD\STX\STX\ETX\DC2\EOT\251\SI()\n\
    \\238\SOH\n\
    \\EOT\EOTD\STX\ETX\DC2\EOT\131\DLE\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\EOTD\STX\ETX\ACK\DC2\EOT\131\DLE\b\ESC\n\
    \\r\n\
    \\ENQ\EOTD\STX\ETX\SOH\DC2\EOT\131\DLE\FS)\n\
    \\r\n\
    \\ENQ\EOTD\STX\ETX\ETX\DC2\EOT\131\DLE,-\n\
    \\f\n\
    \\STX\EOTE\DC2\ACK\135\DLE\NUL\136\DLE\SOH\n\
    \\v\n\
    \\ETX\EOTE\SOH\DC2\EOT\135\DLE\b\FS\n\
    \\f\n\
    \\STX\EOTF\DC2\ACK\138\DLE\NUL\160\DLE\SOH\n\
    \\v\n\
    \\ETX\EOTF\SOH\DC2\EOT\138\DLE\b\DC3\n\
    \G\n\
    \\EOT\EOTF\STX\NUL\DC2\EOT\140\DLE\EOT\SYN\SUB9 The direction within the channel that the htlc was sent\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTF\STX\NUL\EOT\DC2\ACK\140\DLE\EOT\138\DLE\NAK\n\
    \\r\n\
    \\ENQ\EOTF\STX\NUL\ENQ\DC2\EOT\140\DLE\EOT\b\n\
    \\r\n\
    \\ENQ\EOTF\STX\NUL\SOH\DC2\EOT\140\DLE\t\DC1\n\
    \\r\n\
    \\ENQ\EOTF\STX\NUL\ETX\DC2\EOT\140\DLE\DC4\NAK\n\
    \+\n\
    \\EOT\EOTF\STX\SOH\DC2\EOT\143\DLE\EOT\NAK\SUB\GS The total value of the htlc\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTF\STX\SOH\EOT\DC2\ACK\143\DLE\EOT\140\DLE\SYN\n\
    \\r\n\
    \\ENQ\EOTF\STX\SOH\ENQ\DC2\EOT\143\DLE\EOT\t\n\
    \\r\n\
    \\ENQ\EOTF\STX\SOH\SOH\DC2\EOT\143\DLE\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTF\STX\SOH\ETX\DC2\EOT\143\DLE\DC3\DC4\n\
    \F\n\
    \\EOT\EOTF\STX\STX\DC2\EOT\146\DLE\EOT\CAN\SUB8 The final output to be swept back to the user's wallet\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTF\STX\STX\EOT\DC2\ACK\146\DLE\EOT\143\DLE\NAK\n\
    \\r\n\
    \\ENQ\EOTF\STX\STX\ENQ\DC2\EOT\146\DLE\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTF\STX\STX\SOH\DC2\EOT\146\DLE\v\DC3\n\
    \\r\n\
    \\ENQ\EOTF\STX\STX\ETX\DC2\EOT\146\DLE\SYN\ETB\n\
    \M\n\
    \\EOT\EOTF\STX\ETX\DC2\EOT\149\DLE\EOT\US\SUB? The next block height at which we can spend the current stage\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTF\STX\ETX\EOT\DC2\ACK\149\DLE\EOT\146\DLE\CAN\n\
    \\r\n\
    \\ENQ\EOTF\STX\ETX\ENQ\DC2\EOT\149\DLE\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTF\STX\ETX\SOH\DC2\EOT\149\DLE\v\SUB\n\
    \\r\n\
    \\ENQ\EOTF\STX\ETX\ETX\DC2\EOT\149\DLE\GS\RS\n\
    \\161\SOH\n\
    \\EOT\EOTF\STX\EOT\DC2\EOT\156\DLE\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\
    \\SI\n\
    \\ENQ\EOTF\STX\EOT\EOT\DC2\ACK\156\DLE\EOT\149\DLE\US\n\
    \\r\n\
    \\ENQ\EOTF\STX\EOT\ENQ\DC2\EOT\156\DLE\EOT\t\n\
    \\r\n\
    \\ENQ\EOTF\STX\EOT\SOH\DC2\EOT\156\DLE\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOTF\STX\EOT\ETX\DC2\EOT\156\DLE !\n\
    \V\n\
    \\EOT\EOTF\STX\ENQ\DC2\EOT\159\DLE\EOT\NAK\SUBH Indicates whether the htlc is in its first or second stage of recovery\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTF\STX\ENQ\EOT\DC2\ACK\159\DLE\EOT\156\DLE\"\n\
    \\r\n\
    \\ENQ\EOTF\STX\ENQ\ENQ\DC2\EOT\159\DLE\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTF\STX\ENQ\SOH\DC2\EOT\159\DLE\v\DLE\n\
    \\r\n\
    \\ENQ\EOTF\STX\ENQ\ETX\DC2\EOT\159\DLE\DC3\DC4\n\
    \\f\n\
    \\STX\EOTG\DC2\ACK\162\DLE\NUL\163\DLE\SOH\n\
    \\v\n\
    \\ETX\EOTG\SOH\DC2\EOT\162\DLE\b\RS\n\
    \\f\n\
    \\STX\EOTH\DC2\ACK\164\DLE\NUL\193\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTH\SOH\DC2\EOT\164\DLE\b\US\n\
    \\SO\n\
    \\EOT\EOTH\ETX\NUL\DC2\ACK\165\DLE\EOT\189\DLE\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\NUL\SOH\DC2\EOT\165\DLE\f\SUB\n\
    \\SO\n\
    \\ACK\EOTH\ETX\NUL\STX\NUL\DC2\EOT\166\DLE\b#\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\NUL\EOT\DC2\ACK\166\DLE\b\165\DLE\FS\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\NUL\ENQ\DC2\EOT\166\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\NUL\SOH\DC2\EOT\166\DLE\SI\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\NUL\ETX\DC2\EOT\166\DLE!\"\n\
    \\SO\n\
    \\ACK\EOTH\ETX\NUL\STX\SOH\DC2\EOT\167\DLE\b!\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\SOH\EOT\DC2\ACK\167\DLE\b\166\DLE#\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\SOH\ENQ\DC2\EOT\167\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\SOH\SOH\DC2\EOT\167\DLE\SI\FS\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\SOH\ETX\DC2\EOT\167\DLE\US \n\
    \\SO\n\
    \\ACK\EOTH\ETX\NUL\STX\STX\DC2\EOT\169\DLE\b\ESC\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\STX\EOT\DC2\ACK\169\DLE\b\167\DLE!\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\STX\ENQ\DC2\EOT\169\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\STX\SOH\DC2\EOT\169\DLE\SO\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\STX\ETX\DC2\EOT\169\DLE\EM\SUB\n\
    \\SO\n\
    \\ACK\EOTH\ETX\NUL\STX\ETX\DC2\EOT\171\DLE\b \n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\ETX\EOT\DC2\ACK\171\DLE\b\169\DLE\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ETX\ENQ\DC2\EOT\171\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ETX\SOH\DC2\EOT\171\DLE\SO\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ETX\ETX\DC2\EOT\171\DLE\RS\US\n\
    \\SO\n\
    \\ACK\EOTH\ETX\NUL\STX\EOT\DC2\EOT\172\DLE\b!\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\EOT\EOT\DC2\ACK\172\DLE\b\171\DLE \n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\EOT\ENQ\DC2\EOT\172\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\EOT\SOH\DC2\EOT\172\DLE\SO\FS\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\EOT\ETX\DC2\EOT\172\DLE\US \n\
    \X\n\
    \\ACK\EOTH\ETX\NUL\STX\ENQ\DC2\EOT\176\DLE\b)\SUBH The minimum satoshis this node is required to reserve in its\n\
    \ balance.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\ENQ\EOT\DC2\ACK\176\DLE\b\172\DLE!\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ENQ\ENQ\DC2\EOT\176\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ENQ\SOH\DC2\EOT\176\DLE\SO$\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ENQ\ETX\DC2\EOT\176\DLE'(\n\
    \\\\n\
    \\ACK\EOTH\ETX\NUL\STX\ACK\DC2\EOT\182\DLE\b*\SUBL\n\
    \The minimum satoshis the other node is required to reserve in its\n\
    \balance.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\ACK\EOT\DC2\ACK\182\DLE\b\176\DLE)\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ACK\ENQ\DC2\EOT\182\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ACK\SOH\DC2\EOT\182\DLE\SO%\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\ACK\ETX\DC2\EOT\182\DLE()\n\
    \?\n\
    \\ACK\EOTH\ETX\NUL\STX\a\DC2\EOT\185\DLE\b \SUB/ The party that initiated opening the channel.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\a\EOT\DC2\ACK\185\DLE\b\182\DLE*\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\a\ACK\DC2\EOT\185\DLE\b\DC1\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\a\SOH\DC2\EOT\185\DLE\DC2\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\a\ETX\DC2\EOT\185\DLE\RS\US\n\
    \;\n\
    \\ACK\EOTH\ETX\NUL\STX\b\DC2\EOT\188\DLE\b+\SUB+ The commitment type used by this channel.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\NUL\STX\b\EOT\DC2\ACK\188\DLE\b\185\DLE \n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\b\ACK\DC2\EOT\188\DLE\b\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\b\SOH\DC2\EOT\188\DLE\ETB&\n\
    \\SI\n\
    \\a\EOTH\ETX\NUL\STX\b\ETX\DC2\EOT\188\DLE)*\n\
    \\SO\n\
    \\EOT\EOTH\ETX\SOH\DC2\ACK\191\DLE\EOT\216\DLE\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\SOH\SOH\DC2\EOT\191\DLE\f\RS\n\
    \%\n\
    \\ACK\EOTH\ETX\SOH\STX\NUL\DC2\EOT\193\DLE\b#\SUB\NAK The pending channel\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\SOH\STX\NUL\EOT\DC2\ACK\193\DLE\b\191\DLE \n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\NUL\ACK\DC2\EOT\193\DLE\b\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\NUL\SOH\DC2\EOT\193\DLE\ETB\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\NUL\ETX\DC2\EOT\193\DLE!\"\n\
    \D\n\
    \\ACK\EOTH\ETX\SOH\STX\SOH\DC2\EOT\196\DLE\b'\SUB4 The height at which this channel will be confirmed\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\SOH\STX\SOH\EOT\DC2\ACK\196\DLE\b\193\DLE#\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\SOH\ENQ\DC2\EOT\196\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\SOH\SOH\DC2\EOT\196\DLE\SI\"\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\SOH\ETX\DC2\EOT\196\DLE%&\n\
    \\174\STX\n\
    \\ACK\EOTH\ETX\SOH\STX\STX\DC2\EOT\205\DLE\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\
    \\DC1\n\
    \\a\EOTH\ETX\SOH\STX\STX\EOT\DC2\ACK\205\DLE\b\196\DLE'\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\STX\ENQ\DC2\EOT\205\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\STX\SOH\DC2\EOT\205\DLE\SO\CAN\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\STX\ETX\DC2\EOT\205\DLE\ESC\FS\n\
    \:\n\
    \\ACK\EOTH\ETX\SOH\STX\ETX\DC2\EOT\208\DLE\b \SUB* The weight of the commitment transaction\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\SOH\STX\ETX\EOT\DC2\ACK\208\DLE\b\205\DLE\GS\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\ETX\ENQ\DC2\EOT\208\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\ETX\SOH\DC2\EOT\208\DLE\SO\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\ETX\ETX\DC2\EOT\208\DLE\RS\US\n\
    \\227\SOH\n\
    \\ACK\EOTH\ETX\SOH\STX\EOT\DC2\EOT\215\DLE\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\
    \\DC1\n\
    \\a\EOTH\ETX\SOH\STX\EOT\EOT\DC2\ACK\215\DLE\b\208\DLE \n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\EOT\ENQ\DC2\EOT\215\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\EOT\SOH\DC2\EOT\215\DLE\SO\CAN\n\
    \\SI\n\
    \\a\EOTH\ETX\SOH\STX\EOT\ETX\DC2\EOT\215\DLE\ESC\FS\n\
    \\SO\n\
    \\EOT\EOTH\ETX\STX\DC2\ACK\218\DLE\EOT\230\DLE\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\STX\SOH\DC2\EOT\218\DLE\f\US\n\
    \G\n\
    \\ACK\EOTH\ETX\STX\STX\NUL\DC2\EOT\220\DLE\b#\SUB7 The pending channel waiting for closing tx to confirm\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\STX\STX\NUL\EOT\DC2\ACK\220\DLE\b\218\DLE!\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\NUL\ACK\DC2\EOT\220\DLE\b\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\NUL\SOH\DC2\EOT\220\DLE\ETB\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\NUL\ETX\DC2\EOT\220\DLE!\"\n\
    \D\n\
    \\ACK\EOTH\ETX\STX\STX\SOH\DC2\EOT\223\DLE\b \SUB4 The balance in satoshis encumbered in this channel\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\STX\STX\SOH\EOT\DC2\ACK\223\DLE\b\220\DLE#\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\SOH\ENQ\DC2\EOT\223\DLE\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\SOH\SOH\DC2\EOT\223\DLE\SO\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\SOH\ETX\DC2\EOT\223\DLE\RS\US\n\
    \b\n\
    \\ACK\EOTH\ETX\STX\STX\STX\DC2\EOT\229\DLE\b$\SUBR\n\
    \A list of valid commitment transactions. Any of these can confirm at\n\
    \this point.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\STX\STX\STX\EOT\DC2\ACK\229\DLE\b\223\DLE \n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\STX\ACK\DC2\EOT\229\DLE\b\DC3\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\STX\SOH\DC2\EOT\229\DLE\DC4\US\n\
    \\SI\n\
    \\a\EOTH\ETX\STX\STX\STX\ETX\DC2\EOT\229\DLE\"#\n\
    \\SO\n\
    \\EOT\EOTH\ETX\ETX\DC2\ACK\232\DLE\EOT\131\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\ETX\SOH\DC2\EOT\232\DLE\f\ETB\n\
    \A\n\
    \\ACK\EOTH\ETX\ETX\STX\NUL\DC2\EOT\234\DLE\b\RS\SUB1 Hash of the local version of the commitment tx.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\NUL\EOT\DC2\ACK\234\DLE\b\232\DLE\EM\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\NUL\ENQ\DC2\EOT\234\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\NUL\SOH\DC2\EOT\234\DLE\SI\EM\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\NUL\ETX\DC2\EOT\234\DLE\FS\GS\n\
    \B\n\
    \\ACK\EOTH\ETX\ETX\STX\SOH\DC2\EOT\237\DLE\b\US\SUB2 Hash of the remote version of the commitment tx.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\SOH\EOT\DC2\ACK\237\DLE\b\234\DLE\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\SOH\ENQ\DC2\EOT\237\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\SOH\SOH\DC2\EOT\237\DLE\SI\SUB\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\SOH\ETX\DC2\EOT\237\DLE\GS\RS\n\
    \J\n\
    \\ACK\EOTH\ETX\ETX\STX\STX\DC2\EOT\240\DLE\b'\SUB: Hash of the remote pending version of the commitment tx.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\STX\EOT\DC2\ACK\240\DLE\b\237\DLE\US\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\STX\ENQ\DC2\EOT\240\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\STX\SOH\DC2\EOT\240\DLE\SI\"\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\STX\ETX\DC2\EOT\240\DLE%&\n\
    \`\n\
    \\ACK\EOTH\ETX\ETX\STX\ETX\DC2\EOT\246\DLE\b(\SUBP\n\
    \The amount in satoshis calculated to be paid in fees for the local\n\
    \commitment.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\ETX\EOT\DC2\ACK\246\DLE\b\240\DLE'\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ETX\ENQ\DC2\EOT\246\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ETX\SOH\DC2\EOT\246\DLE\SI#\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ETX\ETX\DC2\EOT\246\DLE&'\n\
    \a\n\
    \\ACK\EOTH\ETX\ETX\STX\EOT\DC2\EOT\252\DLE\b)\SUBQ\n\
    \The amount in satoshis calculated to be paid in fees for the remote\n\
    \commitment.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\EOT\EOT\DC2\ACK\252\DLE\b\246\DLE(\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\EOT\ENQ\DC2\EOT\252\DLE\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\EOT\SOH\DC2\EOT\252\DLE\SI$\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\EOT\ETX\DC2\EOT\252\DLE'(\n\
    \i\n\
    \\ACK\EOTH\ETX\ETX\STX\ENQ\DC2\EOT\130\DC1\b1\SUBY\n\
    \The amount in satoshis calculated to be paid in fees for the remote\n\
    \pending commitment.\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ETX\STX\ENQ\EOT\DC2\ACK\130\DC1\b\252\DLE)\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ENQ\ENQ\DC2\EOT\130\DC1\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ENQ\SOH\DC2\EOT\130\DC1\SI,\n\
    \\SI\n\
    \\a\EOTH\ETX\ETX\STX\ENQ\ETX\DC2\EOT\130\DC1/0\n\
    \\SO\n\
    \\EOT\EOTH\ETX\EOT\DC2\ACK\133\DC1\EOT\139\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\EOT\SOH\DC2\EOT\133\DC1\f\EM\n\
    \2\n\
    \\ACK\EOTH\ETX\EOT\STX\NUL\DC2\EOT\135\DC1\b#\SUB\" The pending channel to be closed\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\EOT\STX\NUL\EOT\DC2\ACK\135\DC1\b\133\DC1\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\NUL\ACK\DC2\EOT\135\DC1\b\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\NUL\SOH\DC2\EOT\135\DC1\ETB\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\NUL\ETX\DC2\EOT\135\DC1!\"\n\
    \?\n\
    \\ACK\EOTH\ETX\EOT\STX\SOH\DC2\EOT\138\DC1\b \SUB/ The transaction id of the closing transaction\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\EOT\STX\SOH\EOT\DC2\ACK\138\DC1\b\135\DC1#\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\SOH\ENQ\DC2\EOT\138\DC1\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\SOH\SOH\DC2\EOT\138\DC1\SI\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\EOT\STX\SOH\ETX\DC2\EOT\138\DC1\RS\US\n\
    \\SO\n\
    \\EOT\EOTH\ETX\ENQ\DC2\ACK\141\DC1\EOT\173\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\ETX\ENQ\SOH\DC2\EOT\141\DC1\f\RS\n\
    \8\n\
    \\ACK\EOTH\ETX\ENQ\STX\NUL\DC2\EOT\143\DC1\b#\SUB( The pending channel to be force closed\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\NUL\EOT\DC2\ACK\143\DC1\b\141\DC1 \n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\NUL\ACK\DC2\EOT\143\DC1\b\SYN\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\NUL\SOH\DC2\EOT\143\DC1\ETB\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\NUL\ETX\DC2\EOT\143\DC1!\"\n\
    \?\n\
    \\ACK\EOTH\ETX\ENQ\STX\SOH\DC2\EOT\146\DC1\b \SUB/ The transaction id of the closing transaction\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\SOH\EOT\DC2\ACK\146\DC1\b\143\DC1#\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\SOH\ENQ\DC2\EOT\146\DC1\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\SOH\SOH\DC2\EOT\146\DC1\SI\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\SOH\ETX\DC2\EOT\146\DC1\RS\US\n\
    \L\n\
    \\ACK\EOTH\ETX\ENQ\STX\STX\DC2\EOT\149\DC1\b \SUB< The balance in satoshis encumbered in this pending channel\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\STX\EOT\DC2\ACK\149\DC1\b\146\DC1 \n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\STX\ENQ\DC2\EOT\149\DC1\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\STX\SOH\DC2\EOT\149\DC1\SO\ESC\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\STX\ETX\DC2\EOT\149\DC1\RS\US\n\
    \H\n\
    \\ACK\EOTH\ETX\ENQ\STX\ETX\DC2\EOT\152\DC1\b#\SUB8 The height at which funds can be swept into the wallet\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\ETX\EOT\DC2\ACK\152\DC1\b\149\DC1 \n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ETX\ENQ\DC2\EOT\152\DC1\b\SO\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ETX\SOH\DC2\EOT\152\DC1\SI\RS\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ETX\ETX\DC2\EOT\152\DC1!\"\n\
    \\158\SOH\n\
    \\ACK\EOTH\ETX\ENQ\STX\EOT\DC2\EOT\159\DC1\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\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\EOT\EOT\DC2\ACK\159\DC1\b\152\DC1#\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\EOT\ENQ\DC2\EOT\159\DC1\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\EOT\SOH\DC2\EOT\159\DC1\SO!\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\EOT\ETX\DC2\EOT\159\DC1$%\n\
    \S\n\
    \\ACK\EOTH\ETX\ENQ\STX\ENQ\DC2\EOT\162\DC1\b$\SUBC The total value of funds successfully recovered from this channel\n\
    \\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\ENQ\EOT\DC2\ACK\162\DC1\b\159\DC1&\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ENQ\ENQ\DC2\EOT\162\DC1\b\r\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ENQ\SOH\DC2\EOT\162\DC1\SO\US\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ENQ\ETX\DC2\EOT\162\DC1\"#\n\
    \\SO\n\
    \\ACK\EOTH\ETX\ENQ\STX\ACK\DC2\EOT\164\DC1\b/\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ACK\EOT\DC2\EOT\164\DC1\b\DLE\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ACK\ACK\DC2\EOT\164\DC1\DC1\FS\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ACK\SOH\DC2\EOT\164\DC1\GS*\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\ACK\ETX\DC2\EOT\164\DC1-.\n\
    \\DLE\n\
    \\ACK\EOTH\ETX\ENQ\EOT\NUL\DC2\ACK\166\DC1\b\170\DC1\t\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\EOT\NUL\SOH\DC2\EOT\166\DC1\r\CAN\n\
    \\DLE\n\
    \\b\EOTH\ETX\ENQ\EOT\NUL\STX\NUL\DC2\EOT\167\DC1\f\SYN\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\NUL\SOH\DC2\EOT\167\DC1\f\DC1\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\NUL\STX\DC2\EOT\167\DC1\DC4\NAK\n\
    \\DLE\n\
    \\b\EOTH\ETX\ENQ\EOT\NUL\STX\SOH\DC2\EOT\168\DC1\f\SUB\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\SOH\SOH\DC2\EOT\168\DC1\f\NAK\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\SOH\STX\DC2\EOT\168\DC1\CAN\EM\n\
    \\DLE\n\
    \\b\EOTH\ETX\ENQ\EOT\NUL\STX\STX\DC2\EOT\169\DC1\f\NAK\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\STX\SOH\DC2\EOT\169\DC1\f\DLE\n\
    \\DC1\n\
    \\t\EOTH\ETX\ENQ\EOT\NUL\STX\STX\STX\DC2\EOT\169\DC1\DC3\DC4\n\
    \\SO\n\
    \\ACK\EOTH\ETX\ENQ\STX\a\DC2\EOT\172\DC1\b\US\n\
    \\DC1\n\
    \\a\EOTH\ETX\ENQ\STX\a\EOT\DC2\ACK\172\DC1\b\170\DC1\t\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\a\ACK\DC2\EOT\172\DC1\b\DC3\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\a\SOH\DC2\EOT\172\DC1\DC4\SUB\n\
    \\SI\n\
    \\a\EOTH\ETX\ENQ\STX\a\ETX\DC2\EOT\172\DC1\GS\RS\n\
    \F\n\
    \\EOT\EOTH\STX\NUL\DC2\EOT\176\DC1\EOT\"\SUB8 The balance in satoshis encumbered in pending channels\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTH\STX\NUL\EOT\DC2\ACK\176\DC1\EOT\173\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTH\STX\NUL\ENQ\DC2\EOT\176\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTH\STX\NUL\SOH\DC2\EOT\176\DC1\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOTH\STX\NUL\ETX\DC2\EOT\176\DC1 !\n\
    \(\n\
    \\EOT\EOTH\STX\SOH\DC2\EOT\179\DC1\EOT:\SUB\SUB Channels pending opening\n\
    \\n\
    \\r\n\
    \\ENQ\EOTH\STX\SOH\EOT\DC2\EOT\179\DC1\EOT\f\n\
    \\r\n\
    \\ENQ\EOTH\STX\SOH\ACK\DC2\EOT\179\DC1\r\US\n\
    \\r\n\
    \\ENQ\EOTH\STX\SOH\SOH\DC2\EOT\179\DC1 5\n\
    \\r\n\
    \\ENQ\EOTH\STX\SOH\ETX\DC2\EOT\179\DC189\n\
    \\209\SOH\n\
    \\EOT\EOTH\STX\STX\DC2\EOT\186\DC1\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\EOTH\STX\STX\EOT\DC2\EOT\186\DC1\EOT\f\n\
    \\r\n\
    \\ENQ\EOTH\STX\STX\ACK\DC2\EOT\186\DC1\r\SUB\n\
    \\r\n\
    \\ENQ\EOTH\STX\STX\SOH\DC2\EOT\186\DC1\ESC3\n\
    \\r\n\
    \\ENQ\EOTH\STX\STX\ETX\DC2\EOT\186\DC167\n\
    \\r\n\
    \\ENQ\EOTH\STX\STX\b\DC2\EOT\186\DC18K\n\
    \\SO\n\
    \\ACK\EOTH\STX\STX\b\ETX\DC2\EOT\186\DC19J\n\
    \.\n\
    \\EOT\EOTH\STX\ETX\DC2\EOT\189\DC1\EOTC\SUB  Channels pending force closing\n\
    \\n\
    \\r\n\
    \\ENQ\EOTH\STX\ETX\EOT\DC2\EOT\189\DC1\EOT\f\n\
    \\r\n\
    \\ENQ\EOTH\STX\ETX\ACK\DC2\EOT\189\DC1\r\US\n\
    \\r\n\
    \\ENQ\EOTH\STX\ETX\SOH\DC2\EOT\189\DC1 >\n\
    \\r\n\
    \\ENQ\EOTH\STX\ETX\ETX\DC2\EOT\189\DC1AB\n\
    \:\n\
    \\EOT\EOTH\STX\EOT\DC2\EOT\192\DC1\EOT<\SUB, Channels waiting for closing tx to confirm\n\
    \\n\
    \\r\n\
    \\ENQ\EOTH\STX\EOT\EOT\DC2\EOT\192\DC1\EOT\f\n\
    \\r\n\
    \\ENQ\EOTH\STX\EOT\ACK\DC2\EOT\192\DC1\r \n\
    \\r\n\
    \\ENQ\EOTH\STX\EOT\SOH\DC2\EOT\192\DC1!7\n\
    \\r\n\
    \\ENQ\EOTH\STX\EOT\ETX\DC2\EOT\192\DC1:;\n\
    \\f\n\
    \\STX\EOTI\DC2\ACK\195\DC1\NUL\196\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTI\SOH\DC2\EOT\195\DC1\b \n\
    \\f\n\
    \\STX\EOTJ\DC2\ACK\198\DC1\NUL\216\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTJ\SOH\DC2\EOT\198\DC1\b\SUB\n\
    \\SO\n\
    \\EOT\EOTJ\b\NUL\DC2\ACK\199\DC1\EOT\205\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTJ\b\NUL\SOH\DC2\EOT\199\DC1\n\
    \\DC1\n\
    \\f\n\
    \\EOT\EOTJ\STX\NUL\DC2\EOT\200\DC1\b!\n\
    \\r\n\
    \\ENQ\EOTJ\STX\NUL\ACK\DC2\EOT\200\DC1\b\SI\n\
    \\r\n\
    \\ENQ\EOTJ\STX\NUL\SOH\DC2\EOT\200\DC1\DLE\FS\n\
    \\r\n\
    \\ENQ\EOTJ\STX\NUL\ETX\DC2\EOT\200\DC1\US \n\
    \\f\n\
    \\EOT\EOTJ\STX\SOH\DC2\EOT\201\DC1\b/\n\
    \\r\n\
    \\ENQ\EOTJ\STX\SOH\ACK\DC2\EOT\201\DC1\b\ESC\n\
    \\r\n\
    \\ENQ\EOTJ\STX\SOH\SOH\DC2\EOT\201\DC1\FS*\n\
    \\r\n\
    \\ENQ\EOTJ\STX\SOH\ETX\DC2\EOT\201\DC1-.\n\
    \\f\n\
    \\EOT\EOTJ\STX\STX\DC2\EOT\202\DC1\b(\n\
    \\r\n\
    \\ENQ\EOTJ\STX\STX\ACK\DC2\EOT\202\DC1\b\DC4\n\
    \\r\n\
    \\ENQ\EOTJ\STX\STX\SOH\DC2\EOT\202\DC1\NAK#\n\
    \\r\n\
    \\ENQ\EOTJ\STX\STX\ETX\DC2\EOT\202\DC1&'\n\
    \\f\n\
    \\EOT\EOTJ\STX\ETX\DC2\EOT\203\DC1\b*\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ETX\ACK\DC2\EOT\203\DC1\b\DC4\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ETX\SOH\DC2\EOT\203\DC1\NAK%\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ETX\ETX\DC2\EOT\203\DC1()\n\
    \\f\n\
    \\EOT\EOTJ\STX\EOT\DC2\EOT\204\DC1\b/\n\
    \\r\n\
    \\ENQ\EOTJ\STX\EOT\ACK\DC2\EOT\204\DC1\b\NAK\n\
    \\r\n\
    \\ENQ\EOTJ\STX\EOT\SOH\DC2\EOT\204\DC1\SYN*\n\
    \\r\n\
    \\ENQ\EOTJ\STX\EOT\ETX\DC2\EOT\204\DC1-.\n\
    \\SO\n\
    \\EOT\EOTJ\EOT\NUL\DC2\ACK\207\DC1\EOT\213\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTJ\EOT\NUL\SOH\DC2\EOT\207\DC1\t\DC3\n\
    \\SO\n\
    \\ACK\EOTJ\EOT\NUL\STX\NUL\DC2\EOT\208\DC1\b\EM\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\NUL\SOH\DC2\EOT\208\DC1\b\DC4\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\NUL\STX\DC2\EOT\208\DC1\ETB\CAN\n\
    \\SO\n\
    \\ACK\EOTJ\EOT\NUL\STX\SOH\DC2\EOT\209\DC1\b\ESC\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\SOH\SOH\DC2\EOT\209\DC1\b\SYN\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\SOH\STX\DC2\EOT\209\DC1\EM\SUB\n\
    \\SO\n\
    \\ACK\EOTJ\EOT\NUL\STX\STX\DC2\EOT\210\DC1\b\ESC\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\STX\SOH\DC2\EOT\210\DC1\b\SYN\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\STX\STX\DC2\EOT\210\DC1\EM\SUB\n\
    \\SO\n\
    \\ACK\EOTJ\EOT\NUL\STX\ETX\DC2\EOT\211\DC1\b\GS\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\ETX\SOH\DC2\EOT\211\DC1\b\CAN\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\ETX\STX\DC2\EOT\211\DC1\ESC\FS\n\
    \\SO\n\
    \\ACK\EOTJ\EOT\NUL\STX\EOT\DC2\EOT\212\DC1\b!\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\EOT\SOH\DC2\EOT\212\DC1\b\FS\n\
    \\SI\n\
    \\a\EOTJ\EOT\NUL\STX\EOT\STX\DC2\EOT\212\DC1\US \n\
    \\f\n\
    \\EOT\EOTJ\STX\ENQ\DC2\EOT\215\DC1\EOT\CAN\n\
    \\SI\n\
    \\ENQ\EOTJ\STX\ENQ\EOT\DC2\ACK\215\DC1\EOT\213\DC1\ENQ\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ENQ\ACK\DC2\EOT\215\DC1\EOT\SO\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ENQ\SOH\DC2\EOT\215\DC1\SI\DC3\n\
    \\r\n\
    \\ENQ\EOTJ\STX\ENQ\ETX\DC2\EOT\215\DC1\SYN\ETB\n\
    \\f\n\
    \\STX\EOTK\DC2\ACK\218\DC1\NUL\224\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTK\SOH\DC2\EOT\218\DC1\b\FS\n\
    \O\n\
    \\EOT\EOTK\STX\NUL\DC2\EOT\220\DC1\EOT \SUBA The confirmed balance of the account (with >= 1 confirmations).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTK\STX\NUL\EOT\DC2\ACK\220\DC1\EOT\218\DC1\RS\n\
    \\r\n\
    \\ENQ\EOTK\STX\NUL\ENQ\DC2\EOT\220\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTK\STX\NUL\SOH\DC2\EOT\220\DC1\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOTK\STX\NUL\ETX\DC2\EOT\220\DC1\RS\US\n\
    \N\n\
    \\EOT\EOTK\STX\SOH\DC2\EOT\223\DC1\EOT\"\SUB@ The unconfirmed balance of the account (with 0 confirmations).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTK\STX\SOH\EOT\DC2\ACK\223\DC1\EOT\220\DC1 \n\
    \\r\n\
    \\ENQ\EOTK\STX\SOH\ENQ\DC2\EOT\223\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTK\STX\SOH\SOH\DC2\EOT\223\DC1\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOTK\STX\SOH\ETX\DC2\EOT\223\DC1 !\n\
    \\f\n\
    \\STX\EOTL\DC2\ACK\226\DC1\NUL\227\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTL\SOH\DC2\EOT\226\DC1\b\FS\n\
    \\f\n\
    \\STX\EOTM\DC2\ACK\229\DC1\NUL\241\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTM\SOH\DC2\EOT\229\DC1\b\GS\n\
    \)\n\
    \\EOT\EOTM\STX\NUL\DC2\EOT\231\DC1\EOT\FS\SUB\ESC The balance of the wallet\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTM\STX\NUL\EOT\DC2\ACK\231\DC1\EOT\229\DC1\US\n\
    \\r\n\
    \\ENQ\EOTM\STX\NUL\ENQ\DC2\EOT\231\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTM\STX\NUL\SOH\DC2\EOT\231\DC1\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTM\STX\NUL\ETX\DC2\EOT\231\DC1\SUB\ESC\n\
    \J\n\
    \\EOT\EOTM\STX\SOH\DC2\EOT\234\DC1\EOT \SUB< The confirmed balance of a wallet(with >= 1 confirmations)\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTM\STX\SOH\EOT\DC2\ACK\234\DC1\EOT\231\DC1\FS\n\
    \\r\n\
    \\ENQ\EOTM\STX\SOH\ENQ\DC2\EOT\234\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTM\STX\SOH\SOH\DC2\EOT\234\DC1\n\
    \\ESC\n\
    \\r\n\
    \\ENQ\EOTM\STX\SOH\ETX\DC2\EOT\234\DC1\RS\US\n\
    \I\n\
    \\EOT\EOTM\STX\STX\DC2\EOT\237\DC1\EOT\"\SUB; The unconfirmed balance of a wallet(with 0 confirmations)\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTM\STX\STX\EOT\DC2\ACK\237\DC1\EOT\234\DC1 \n\
    \\r\n\
    \\ENQ\EOTM\STX\STX\ENQ\DC2\EOT\237\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTM\STX\STX\SOH\DC2\EOT\237\DC1\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOTM\STX\STX\ETX\DC2\EOT\237\DC1 !\n\
    \G\n\
    \\EOT\EOTM\STX\ETX\DC2\EOT\240\DC1\EOT:\SUB9 A mapping of each wallet account's name to its balance.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTM\STX\ETX\EOT\DC2\ACK\240\DC1\EOT\237\DC1\"\n\
    \\r\n\
    \\ENQ\EOTM\STX\ETX\ACK\DC2\EOT\240\DC1\EOT%\n\
    \\r\n\
    \\ENQ\EOTM\STX\ETX\SOH\DC2\EOT\240\DC1&5\n\
    \\r\n\
    \\ENQ\EOTM\STX\ETX\ETX\DC2\EOT\240\DC189\n\
    \\f\n\
    \\STX\EOTN\DC2\ACK\243\DC1\NUL\249\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTN\SOH\DC2\EOT\243\DC1\b\SO\n\
    \.\n\
    \\EOT\EOTN\STX\NUL\DC2\EOT\245\DC1\EOT\DC3\SUB  Value denominated in satoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTN\STX\NUL\EOT\DC2\ACK\245\DC1\EOT\243\DC1\DLE\n\
    \\r\n\
    \\ENQ\EOTN\STX\NUL\ENQ\DC2\EOT\245\DC1\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTN\STX\NUL\SOH\DC2\EOT\245\DC1\v\SO\n\
    \\r\n\
    \\ENQ\EOTN\STX\NUL\ETX\DC2\EOT\245\DC1\DC1\DC2\n\
    \4\n\
    \\EOT\EOTN\STX\SOH\DC2\EOT\248\DC1\EOT\DC4\SUB& Value denominated in milli-satoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTN\STX\SOH\EOT\DC2\ACK\248\DC1\EOT\245\DC1\DC3\n\
    \\r\n\
    \\ENQ\EOTN\STX\SOH\ENQ\DC2\EOT\248\DC1\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTN\STX\SOH\SOH\DC2\EOT\248\DC1\v\SI\n\
    \\r\n\
    \\ENQ\EOTN\STX\SOH\ETX\DC2\EOT\248\DC1\DC2\DC3\n\
    \\f\n\
    \\STX\EOTO\DC2\ACK\251\DC1\NUL\252\DC1\SOH\n\
    \\v\n\
    \\ETX\EOTO\SOH\DC2\EOT\251\DC1\b\GS\n\
    \\f\n\
    \\STX\EOTP\DC2\ACK\253\DC1\NUL\149\DC2\SOH\n\
    \\v\n\
    \\ETX\EOTP\SOH\DC2\EOT\253\DC1\b\RS\n\
    \L\n\
    \\EOT\EOTP\STX\NUL\DC2\EOT\255\DC1\EOT*\SUB> Deprecated. Sum of channels balances denominated in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\NUL\EOT\DC2\ACK\255\DC1\EOT\253\DC1 \n\
    \\r\n\
    \\ENQ\EOTP\STX\NUL\ENQ\DC2\EOT\255\DC1\EOT\t\n\
    \\r\n\
    \\ENQ\EOTP\STX\NUL\SOH\DC2\EOT\255\DC1\n\
    \\DC1\n\
    \\r\n\
    \\ENQ\EOTP\STX\NUL\ETX\DC2\EOT\255\DC1\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOTP\STX\NUL\b\DC2\EOT\255\DC1\SYN)\n\
    \\SO\n\
    \\ACK\EOTP\STX\NUL\b\ETX\DC2\EOT\255\DC1\ETB(\n\
    \T\n\
    \\EOT\EOTP\STX\SOH\DC2\EOT\130\DC2\EOT7\SUBF Deprecated. Sum of channels pending balances denominated in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\SOH\EOT\DC2\ACK\130\DC2\EOT\255\DC1*\n\
    \\r\n\
    \\ENQ\EOTP\STX\SOH\ENQ\DC2\EOT\130\DC2\EOT\t\n\
    \\r\n\
    \\ENQ\EOTP\STX\SOH\SOH\DC2\EOT\130\DC2\n\
    \\RS\n\
    \\r\n\
    \\ENQ\EOTP\STX\SOH\ETX\DC2\EOT\130\DC2!\"\n\
    \\r\n\
    \\ENQ\EOTP\STX\SOH\b\DC2\EOT\130\DC2#6\n\
    \\SO\n\
    \\ACK\EOTP\STX\SOH\b\ETX\DC2\EOT\130\DC2$5\n\
    \/\n\
    \\EOT\EOTP\STX\STX\DC2\EOT\133\DC2\EOT\GS\SUB! Sum of channels local balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\STX\EOT\DC2\ACK\133\DC2\EOT\130\DC27\n\
    \\r\n\
    \\ENQ\EOTP\STX\STX\ACK\DC2\EOT\133\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\STX\SOH\DC2\EOT\133\DC2\v\CAN\n\
    \\r\n\
    \\ENQ\EOTP\STX\STX\ETX\DC2\EOT\133\DC2\ESC\FS\n\
    \0\n\
    \\EOT\EOTP\STX\ETX\DC2\EOT\136\DC2\EOT\RS\SUB\" Sum of channels remote balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\ETX\EOT\DC2\ACK\136\DC2\EOT\133\DC2\GS\n\
    \\r\n\
    \\ENQ\EOTP\STX\ETX\ACK\DC2\EOT\136\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\ETX\SOH\DC2\EOT\136\DC2\v\EM\n\
    \\r\n\
    \\ENQ\EOTP\STX\ETX\ETX\DC2\EOT\136\DC2\FS\GS\n\
    \9\n\
    \\EOT\EOTP\STX\EOT\DC2\EOT\139\DC2\EOT'\SUB+ Sum of channels local unsettled balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\EOT\EOT\DC2\ACK\139\DC2\EOT\136\DC2\RS\n\
    \\r\n\
    \\ENQ\EOTP\STX\EOT\ACK\DC2\EOT\139\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\EOT\SOH\DC2\EOT\139\DC2\v\"\n\
    \\r\n\
    \\ENQ\EOTP\STX\EOT\ETX\DC2\EOT\139\DC2%&\n\
    \:\n\
    \\EOT\EOTP\STX\ENQ\DC2\EOT\142\DC2\EOT(\SUB, Sum of channels remote unsettled balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\ENQ\EOT\DC2\ACK\142\DC2\EOT\139\DC2'\n\
    \\r\n\
    \\ENQ\EOTP\STX\ENQ\ACK\DC2\EOT\142\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\ENQ\SOH\DC2\EOT\142\DC2\v#\n\
    \\r\n\
    \\ENQ\EOTP\STX\ENQ\ETX\DC2\EOT\142\DC2&'\n\
    \7\n\
    \\EOT\EOTP\STX\ACK\DC2\EOT\145\DC2\EOT*\SUB) Sum of channels pending local balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\ACK\EOT\DC2\ACK\145\DC2\EOT\142\DC2(\n\
    \\r\n\
    \\ENQ\EOTP\STX\ACK\ACK\DC2\EOT\145\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\ACK\SOH\DC2\EOT\145\DC2\v%\n\
    \\r\n\
    \\ENQ\EOTP\STX\ACK\ETX\DC2\EOT\145\DC2()\n\
    \8\n\
    \\EOT\EOTP\STX\a\DC2\EOT\148\DC2\EOT+\SUB* Sum of channels pending remote balances.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTP\STX\a\EOT\DC2\ACK\148\DC2\EOT\145\DC2*\n\
    \\r\n\
    \\ENQ\EOTP\STX\a\ACK\DC2\EOT\148\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTP\STX\a\SOH\DC2\EOT\148\DC2\v&\n\
    \\r\n\
    \\ENQ\EOTP\STX\a\ETX\DC2\EOT\148\DC2)*\n\
    \\f\n\
    \\STX\EOTQ\DC2\ACK\151\DC2\NUL\129\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTQ\SOH\DC2\EOT\151\DC2\b\SUB\n\
    \N\n\
    \\EOT\EOTQ\STX\NUL\DC2\EOT\153\DC2\EOT\ETB\SUB@ The 33-byte hex-encoded public key for the payment destination\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\NUL\EOT\DC2\ACK\153\DC2\EOT\151\DC2\FS\n\
    \\r\n\
    \\ENQ\EOTQ\STX\NUL\ENQ\DC2\EOT\153\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\NUL\SOH\DC2\EOT\153\DC2\v\DC2\n\
    \\r\n\
    \\ENQ\EOTQ\STX\NUL\ETX\DC2\EOT\153\DC2\NAK\SYN\n\
    \n\n\
    \\EOT\EOTQ\STX\SOH\DC2\EOT\160\DC2\EOT\DC2\SUB`\n\
    \The amount to send expressed in satoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\SOH\EOT\DC2\ACK\160\DC2\EOT\153\DC2\ETB\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SOH\ENQ\DC2\EOT\160\DC2\EOT\t\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SOH\SOH\DC2\EOT\160\DC2\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SOH\ETX\DC2\EOT\160\DC2\DLE\DC1\n\
    \s\n\
    \\EOT\EOTQ\STX\STX\DC2\EOT\167\DC2\EOT\CAN\SUBe\n\
    \The amount to send expressed in millisatoshis.\n\
    \\n\
    \The fields amt and amt_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\STX\EOT\DC2\ACK\167\DC2\EOT\160\DC2\DC2\n\
    \\r\n\
    \\ENQ\EOTQ\STX\STX\ENQ\DC2\EOT\167\DC2\EOT\t\n\
    \\r\n\
    \\ENQ\EOTQ\STX\STX\SOH\DC2\EOT\167\DC2\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTQ\STX\STX\ETX\DC2\EOT\167\DC2\NAK\ETB\n\
    \\v\n\
    \\ETX\EOTQ\t\DC2\EOT\169\DC2\EOT\SI\n\
    \\f\n\
    \\EOT\EOTQ\t\NUL\DC2\EOT\169\DC2\r\SO\n\
    \\r\n\
    \\ENQ\EOTQ\t\NUL\SOH\DC2\EOT\169\DC2\r\SO\n\
    \\r\n\
    \\ENQ\EOTQ\t\NUL\STX\DC2\EOT\169\DC2\r\SO\n\
    \\245\STX\n\
    \\EOT\EOTQ\STX\ETX\DC2\EOT\178\DC2\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\
    \\SI\n\
    \\ENQ\EOTQ\STX\ETX\EOT\DC2\ACK\178\DC2\EOT\169\DC2\SI\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ETX\ENQ\DC2\EOT\178\DC2\EOT\t\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ETX\SOH\DC2\EOT\178\DC2\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ETX\ETX\DC2\EOT\178\DC2\GS\RS\n\
    \\130\STX\n\
    \\EOT\EOTQ\STX\EOT\DC2\EOT\186\DC2\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\
    \\SI\n\
    \\ENQ\EOTQ\STX\EOT\EOT\DC2\ACK\186\DC2\EOT\178\DC2\US\n\
    \\r\n\
    \\ENQ\EOTQ\STX\EOT\ACK\DC2\EOT\186\DC2\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\EOT\SOH\DC2\EOT\186\DC2\r\SYN\n\
    \\r\n\
    \\ENQ\EOTQ\STX\EOT\ETX\DC2\EOT\186\DC2\EM\SUB\n\
    \w\n\
    \\EOT\EOTQ\STX\ENQ\DC2\EOT\192\DC2\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\EOTQ\STX\ENQ\EOT\DC2\EOT\192\DC2\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ENQ\ENQ\DC2\EOT\192\DC2\r\DC2\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ENQ\SOH\DC2\EOT\192\DC2\DC3 \n\
    \\r\n\
    \\ENQ\EOTQ\STX\ENQ\ETX\DC2\EOT\192\DC2#$\n\
    \J\n\
    \\EOT\EOTQ\STX\ACK\DC2\EOT\197\DC2\EOT?\SUB<\n\
    \Deprecated. A list of edges to ignore during path finding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ACK\EOT\DC2\EOT\197\DC2\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ACK\ACK\DC2\EOT\197\DC2\r\CAN\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ACK\SOH\DC2\EOT\197\DC2\EM&\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ACK\ETX\DC2\EOT\197\DC2)*\n\
    \\r\n\
    \\ENQ\EOTQ\STX\ACK\b\DC2\EOT\197\DC2+>\n\
    \\SO\n\
    \\ACK\EOTQ\STX\ACK\b\ETX\DC2\EOT\197\DC2,=\n\
    \j\n\
    \\EOT\EOTQ\STX\a\DC2\EOT\203\DC2\EOT\RS\SUB\\\n\
    \The source node where the request route should originated from. If empty,\n\
    \self is assumed.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\a\EOT\DC2\ACK\203\DC2\EOT\197\DC2?\n\
    \\r\n\
    \\ENQ\EOTQ\STX\a\ENQ\DC2\EOT\203\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\a\SOH\DC2\EOT\203\DC2\v\EM\n\
    \\r\n\
    \\ENQ\EOTQ\STX\a\ETX\DC2\EOT\203\DC2\FS\GS\n\
    \n\n\
    \\EOT\EOTQ\STX\b\DC2\EOT\209\DC2\EOT!\SUB`\n\
    \If set to true, edge probabilities from mission control will be used to get\n\
    \the optimal route.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\b\EOT\DC2\ACK\209\DC2\EOT\203\DC2\RS\n\
    \\r\n\
    \\ENQ\EOTQ\STX\b\ENQ\DC2\EOT\209\DC2\EOT\b\n\
    \\r\n\
    \\ENQ\EOTQ\STX\b\SOH\DC2\EOT\209\DC2\t\FS\n\
    \\r\n\
    \\ENQ\EOTQ\STX\b\ETX\DC2\EOT\209\DC2\US \n\
    \W\n\
    \\EOT\EOTQ\STX\t\DC2\EOT\214\DC2\EOT)\SUBI\n\
    \A list of directed node pairs that will be ignored during path finding.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\t\EOT\DC2\EOT\214\DC2\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\t\ACK\DC2\EOT\214\DC2\r\NAK\n\
    \\r\n\
    \\ENQ\EOTQ\STX\t\SOH\DC2\EOT\214\DC2\SYN#\n\
    \\r\n\
    \\ENQ\EOTQ\STX\t\ETX\DC2\EOT\214\DC2&(\n\
    \\231\SOH\n\
    \\EOT\EOTQ\STX\n\
    \\DC2\EOT\221\DC2\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\
    \\SI\n\
    \\ENQ\EOTQ\STX\n\
    \\EOT\DC2\ACK\221\DC2\EOT\214\DC2)\n\
    \\r\n\
    \\ENQ\EOTQ\STX\n\
    \\ENQ\DC2\EOT\221\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\n\
    \\SOH\DC2\EOT\221\DC2\v\NAK\n\
    \\r\n\
    \\ENQ\EOTQ\STX\n\
    \\ETX\DC2\EOT\221\DC2\CAN\SUB\n\
    \\163\ETX\n\
    \\EOT\EOTQ\STX\v\DC2\EOT\231\DC2\EOT0\SUB\148\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 recrods, and 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\
    \\SI\n\
    \\ENQ\EOTQ\STX\v\EOT\DC2\ACK\231\DC2\EOT\221\DC2\ESC\n\
    \\r\n\
    \\ENQ\EOTQ\STX\v\ACK\DC2\EOT\231\DC2\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOTQ\STX\v\SOH\DC2\EOT\231\DC2\ETB*\n\
    \\r\n\
    \\ENQ\EOTQ\STX\v\ETX\DC2\EOT\231\DC2-/\n\
    \t\n\
    \\EOT\EOTQ\STX\f\DC2\EOT\237\DC2\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\
    \\SI\n\
    \\ENQ\EOTQ\STX\f\EOT\DC2\ACK\237\DC2\EOT\231\DC20\n\
    \\r\n\
    \\ENQ\EOTQ\STX\f\ENQ\DC2\EOT\237\DC2\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\f\SOH\DC2\EOT\237\DC2\v\ESC\n\
    \\r\n\
    \\ENQ\EOTQ\STX\f\ETX\DC2\EOT\237\DC2\RS \n\
    \\r\n\
    \\ENQ\EOTQ\STX\f\b\DC2\EOT\237\DC2!5\n\
    \\SO\n\
    \\ACK\EOTQ\STX\f\b\ACK\DC2\EOT\237\DC2\"4\n\
    \W\n\
    \\EOT\EOTQ\STX\r\DC2\EOT\242\DC2\EOT\US\SUBI\n\
    \The pubkey of the last hop of the route. If empty, any hop may be used.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTQ\STX\r\EOT\DC2\ACK\242\DC2\EOT\237\DC26\n\
    \\r\n\
    \\ENQ\EOTQ\STX\r\ENQ\DC2\EOT\242\DC2\EOT\t\n\
    \\r\n\
    \\ENQ\EOTQ\STX\r\SOH\DC2\EOT\242\DC2\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTQ\STX\r\ETX\DC2\EOT\242\DC2\FS\RS\n\
    \W\n\
    \\EOT\EOTQ\STX\SO\DC2\EOT\247\DC2\EOT.\SUBI\n\
    \Optional route hints to reach the destination through private channels.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SO\EOT\DC2\EOT\247\DC2\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SO\ACK\DC2\EOT\247\DC2\r\FS\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SO\SOH\DC2\EOT\247\DC2\GS(\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SO\ETX\DC2\EOT\247\DC2+-\n\
    \\195\STX\n\
    \\EOT\EOTQ\STX\SI\DC2\EOT\128\DC3\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\EOTQ\STX\SI\EOT\DC2\EOT\128\DC3\EOT\f\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SI\ACK\DC2\EOT\128\DC3\r\GS\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SI\SOH\DC2\EOT\128\DC3\RS+\n\
    \\r\n\
    \\ENQ\EOTQ\STX\SI\ETX\DC2\EOT\128\DC3.0\n\
    \\f\n\
    \\STX\EOTR\DC2\ACK\131\DC3\NUL\143\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTR\SOH\DC2\EOT\131\DC3\b\DLE\n\
    \d\n\
    \\EOT\EOTR\STX\NUL\DC2\EOT\136\DC3\EOT\DC3\SUBV\n\
    \The sending node of the pair. When using REST, this field must be encoded as\n\
    \base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTR\STX\NUL\EOT\DC2\ACK\136\DC3\EOT\131\DC3\DC2\n\
    \\r\n\
    \\ENQ\EOTR\STX\NUL\ENQ\DC2\EOT\136\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTR\STX\NUL\SOH\DC2\EOT\136\DC3\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOTR\STX\NUL\ETX\DC2\EOT\136\DC3\DC1\DC2\n\
    \f\n\
    \\EOT\EOTR\STX\SOH\DC2\EOT\142\DC3\EOT\DC1\SUBX\n\
    \The receiving node of the pair. When using REST, this field must be encoded\n\
    \as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTR\STX\SOH\EOT\DC2\ACK\142\DC3\EOT\136\DC3\DC3\n\
    \\r\n\
    \\ENQ\EOTR\STX\SOH\ENQ\DC2\EOT\142\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTR\STX\SOH\SOH\DC2\EOT\142\DC3\n\
    \\f\n\
    \\r\n\
    \\ENQ\EOTR\STX\SOH\ETX\DC2\EOT\142\DC3\SI\DLE\n\
    \\f\n\
    \\STX\EOTS\DC2\ACK\145\DC3\NUL\156\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTS\SOH\DC2\EOT\145\DC3\b\DC3\n\
    \2\n\
    \\EOT\EOTS\STX\NUL\DC2\EOT\147\DC3\EOT/\SUB$ The short channel id of this edge.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTS\STX\NUL\EOT\DC2\ACK\147\DC3\EOT\145\DC3\NAK\n\
    \\r\n\
    \\ENQ\EOTS\STX\NUL\ENQ\DC2\EOT\147\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTS\STX\NUL\SOH\DC2\EOT\147\DC3\v\NAK\n\
    \\r\n\
    \\ENQ\EOTS\STX\NUL\ETX\DC2\EOT\147\DC3\CAN\EM\n\
    \\r\n\
    \\ENQ\EOTS\STX\NUL\b\DC2\EOT\147\DC3\SUB.\n\
    \\SO\n\
    \\ACK\EOTS\STX\NUL\b\ACK\DC2\EOT\147\DC3\ESC-\n\
    \\149\STX\n\
    \\EOT\EOTS\STX\SOH\DC2\EOT\155\DC3\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\
    \\SI\n\
    \\ENQ\EOTS\STX\SOH\EOT\DC2\ACK\155\DC3\EOT\147\DC3/\n\
    \\r\n\
    \\ENQ\EOTS\STX\SOH\ENQ\DC2\EOT\155\DC3\EOT\b\n\
    \\r\n\
    \\ENQ\EOTS\STX\SOH\SOH\DC2\EOT\155\DC3\t\SUB\n\
    \\r\n\
    \\ENQ\EOTS\STX\SOH\ETX\DC2\EOT\155\DC3\GS\RS\n\
    \\f\n\
    \\STX\EOTT\DC2\ACK\158\DC3\NUL\170\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTT\SOH\DC2\EOT\158\DC3\b\ESC\n\
    \\137\SOH\n\
    \\EOT\EOTT\STX\NUL\DC2\EOT\163\DC3\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\EOTT\STX\NUL\EOT\DC2\EOT\163\DC3\EOT\f\n\
    \\r\n\
    \\ENQ\EOTT\STX\NUL\ACK\DC2\EOT\163\DC3\r\DC2\n\
    \\r\n\
    \\ENQ\EOTT\STX\NUL\SOH\DC2\EOT\163\DC3\DC3\EM\n\
    \\r\n\
    \\ENQ\EOTT\STX\NUL\ETX\DC2\EOT\163\DC3\FS\GS\n\
    \x\n\
    \\EOT\EOTT\STX\SOH\DC2\EOT\169\DC3\EOT\FS\SUBj\n\
    \The success probability of the returned route based on the current mission\n\
    \control state. [EXPERIMENTAL]\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTT\STX\SOH\EOT\DC2\ACK\169\DC3\EOT\163\DC3\RS\n\
    \\r\n\
    \\ENQ\EOTT\STX\SOH\ENQ\DC2\EOT\169\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTT\STX\SOH\SOH\DC2\EOT\169\DC3\v\ETB\n\
    \\r\n\
    \\ENQ\EOTT\STX\SOH\ETX\DC2\EOT\169\DC3\SUB\ESC\n\
    \\f\n\
    \\STX\EOTU\DC2\ACK\172\DC3\NUL\223\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTU\SOH\DC2\EOT\172\DC3\b\v\n\
    \\193\SOH\n\
    \\EOT\EOTU\STX\NUL\DC2\EOT\178\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\NUL\EOT\DC2\ACK\178\DC3\EOT\172\DC3\r\n\
    \\r\n\
    \\ENQ\EOTU\STX\NUL\ENQ\DC2\EOT\178\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTU\STX\NUL\SOH\DC2\EOT\178\DC3\v\DC2\n\
    \\r\n\
    \\ENQ\EOTU\STX\NUL\ETX\DC2\EOT\178\DC3\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTU\STX\NUL\b\DC2\EOT\178\DC3\ETB+\n\
    \\SO\n\
    \\ACK\EOTU\STX\NUL\b\ACK\DC2\EOT\178\DC3\CAN*\n\
    \\f\n\
    \\EOT\EOTU\STX\SOH\DC2\EOT\179\DC3\EOT0\n\
    \\SI\n\
    \\ENQ\EOTU\STX\SOH\EOT\DC2\ACK\179\DC3\EOT\178\DC3,\n\
    \\r\n\
    \\ENQ\EOTU\STX\SOH\ENQ\DC2\EOT\179\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTU\STX\SOH\SOH\DC2\EOT\179\DC3\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTU\STX\SOH\ETX\DC2\EOT\179\DC3\SUB\ESC\n\
    \\r\n\
    \\ENQ\EOTU\STX\SOH\b\DC2\EOT\179\DC3\FS/\n\
    \\SO\n\
    \\ACK\EOTU\STX\SOH\b\ETX\DC2\EOT\179\DC3\GS.\n\
    \\f\n\
    \\EOT\EOTU\STX\STX\DC2\EOT\180\DC3\EOT1\n\
    \\SI\n\
    \\ENQ\EOTU\STX\STX\EOT\DC2\ACK\180\DC3\EOT\179\DC30\n\
    \\r\n\
    \\ENQ\EOTU\STX\STX\ENQ\DC2\EOT\180\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTU\STX\STX\SOH\DC2\EOT\180\DC3\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOTU\STX\STX\ETX\DC2\EOT\180\DC3\ESC\FS\n\
    \\r\n\
    \\ENQ\EOTU\STX\STX\b\DC2\EOT\180\DC3\GS0\n\
    \\SO\n\
    \\ACK\EOTU\STX\STX\b\ETX\DC2\EOT\180\DC3\RS/\n\
    \\f\n\
    \\EOT\EOTU\STX\ETX\DC2\EOT\181\DC3\EOT&\n\
    \\SI\n\
    \\ENQ\EOTU\STX\ETX\EOT\DC2\ACK\181\DC3\EOT\180\DC31\n\
    \\r\n\
    \\ENQ\EOTU\STX\ETX\ENQ\DC2\EOT\181\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTU\STX\ETX\SOH\DC2\EOT\181\DC3\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOTU\STX\ETX\ETX\DC2\EOT\181\DC3\DLE\DC1\n\
    \\r\n\
    \\ENQ\EOTU\STX\ETX\b\DC2\EOT\181\DC3\DC2%\n\
    \\SO\n\
    \\ACK\EOTU\STX\ETX\b\ETX\DC2\EOT\181\DC3\DC3$\n\
    \\f\n\
    \\EOT\EOTU\STX\EOT\DC2\EOT\182\DC3\EOT\SYN\n\
    \\SI\n\
    \\ENQ\EOTU\STX\EOT\EOT\DC2\ACK\182\DC3\EOT\181\DC3&\n\
    \\r\n\
    \\ENQ\EOTU\STX\EOT\ENQ\DC2\EOT\182\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTU\STX\EOT\SOH\DC2\EOT\182\DC3\v\DC1\n\
    \\r\n\
    \\ENQ\EOTU\STX\EOT\ETX\DC2\EOT\182\DC3\DC4\NAK\n\
    \\f\n\
    \\EOT\EOTU\STX\ENQ\DC2\EOT\183\DC3\EOT\"\n\
    \\SI\n\
    \\ENQ\EOTU\STX\ENQ\EOT\DC2\ACK\183\DC3\EOT\182\DC3\SYN\n\
    \\r\n\
    \\ENQ\EOTU\STX\ENQ\ENQ\DC2\EOT\183\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTU\STX\ENQ\SOH\DC2\EOT\183\DC3\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOTU\STX\ENQ\ETX\DC2\EOT\183\DC3 !\n\
    \\f\n\
    \\EOT\EOTU\STX\ACK\DC2\EOT\184\DC3\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOTU\STX\ACK\EOT\DC2\ACK\184\DC3\EOT\183\DC3\"\n\
    \\r\n\
    \\ENQ\EOTU\STX\ACK\ENQ\DC2\EOT\184\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTU\STX\ACK\SOH\DC2\EOT\184\DC3\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTU\STX\ACK\ETX\DC2\EOT\184\DC3\NAK\SYN\n\
    \\155\SOH\n\
    \\EOT\EOTU\STX\a\DC2\EOT\190\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\a\EOT\DC2\ACK\190\DC3\EOT\184\DC3\ETB\n\
    \\r\n\
    \\ENQ\EOTU\STX\a\ENQ\DC2\EOT\190\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTU\STX\a\SOH\DC2\EOT\190\DC3\v\DC2\n\
    \\r\n\
    \\ENQ\EOTU\STX\a\ETX\DC2\EOT\190\DC3\NAK\SYN\n\
    \\230\SOH\n\
    \\EOT\EOTU\STX\b\DC2\EOT\197\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\b\EOT\DC2\ACK\197\DC3\EOT\190\DC3\ETB\n\
    \\r\n\
    \\ENQ\EOTU\STX\b\ENQ\DC2\EOT\197\DC3\EOT\b\n\
    \\r\n\
    \\ENQ\EOTU\STX\b\SOH\DC2\EOT\197\DC3\t\DC4\n\
    \\r\n\
    \\ENQ\EOTU\STX\b\ETX\DC2\EOT\197\DC3\ETB\CAN\n\
    \\154\STX\n\
    \\EOT\EOTU\STX\t\DC2\EOT\205\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\t\EOT\DC2\ACK\205\DC3\EOT\197\DC3\EM\n\
    \\r\n\
    \\ENQ\EOTU\STX\t\ACK\DC2\EOT\205\DC3\EOT\r\n\
    \\r\n\
    \\ENQ\EOTU\STX\t\SOH\DC2\EOT\205\DC3\SO\CAN\n\
    \\r\n\
    \\ENQ\EOTU\STX\t\ETX\DC2\EOT\205\DC3\ESC\GS\n\
    \\142\ETX\n\
    \\EOT\EOTU\STX\n\
    \\DC2\EOT\215\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\n\
    \\EOT\DC2\ACK\215\DC3\EOT\205\DC3\RS\n\
    \\r\n\
    \\ENQ\EOTU\STX\n\
    \\ACK\DC2\EOT\215\DC3\EOT\r\n\
    \\r\n\
    \\ENQ\EOTU\STX\n\
    \\SOH\DC2\EOT\215\DC3\SO\CAN\n\
    \\r\n\
    \\ENQ\EOTU\STX\n\
    \\ETX\DC2\EOT\215\DC3\ESC\GS\n\
    \\210\SOH\n\
    \\EOT\EOTU\STX\v\DC2\EOT\222\DC3\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\
    \\SI\n\
    \\ENQ\EOTU\STX\v\EOT\DC2\ACK\222\DC3\EOT\215\DC3\RS\n\
    \\r\n\
    \\ENQ\EOTU\STX\v\ACK\DC2\EOT\222\DC3\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOTU\STX\v\SOH\DC2\EOT\222\DC3\ETB%\n\
    \\r\n\
    \\ENQ\EOTU\STX\v\ETX\DC2\EOT\222\DC3(*\n\
    \\f\n\
    \\STX\EOTV\DC2\ACK\225\DC3\NUL\241\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTV\SOH\DC2\EOT\225\DC3\b\DC1\n\
    \\168\STX\n\
    \\EOT\EOTV\STX\NUL\DC2\EOT\232\DC3\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\
    \\SI\n\
    \\ENQ\EOTV\STX\NUL\EOT\DC2\ACK\232\DC3\EOT\225\DC3\DC3\n\
    \\r\n\
    \\ENQ\EOTV\STX\NUL\ENQ\DC2\EOT\232\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTV\STX\NUL\SOH\DC2\EOT\232\DC3\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTV\STX\NUL\ETX\DC2\EOT\232\DC3\EM\ESC\n\
    \\147\STX\n\
    \\EOT\EOTV\STX\SOH\DC2\EOT\240\DC3\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\
    \\SI\n\
    \\ENQ\EOTV\STX\SOH\EOT\DC2\ACK\240\DC3\EOT\232\DC3\FS\n\
    \\r\n\
    \\ENQ\EOTV\STX\SOH\ENQ\DC2\EOT\240\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTV\STX\SOH\SOH\DC2\EOT\240\DC3\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOTV\STX\SOH\ETX\DC2\EOT\240\DC3\ESC\GS\n\
    \\f\n\
    \\STX\EOTW\DC2\ACK\243\DC3\NUL\249\DC3\SOH\n\
    \\v\n\
    \\ETX\EOTW\SOH\DC2\EOT\243\DC3\b\DC1\n\
    \\f\n\
    \\EOT\EOTW\STX\NUL\DC2\EOT\244\DC3\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOTW\STX\NUL\EOT\DC2\ACK\244\DC3\EOT\243\DC3\DC3\n\
    \\r\n\
    \\ENQ\EOTW\STX\NUL\ENQ\DC2\EOT\244\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTW\STX\NUL\SOH\DC2\EOT\244\DC3\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTW\STX\NUL\ETX\DC2\EOT\244\DC3\ETB\CAN\n\
    \\f\n\
    \\EOT\EOTW\STX\SOH\DC2\EOT\246\DC3\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOTW\STX\SOH\EOT\DC2\ACK\246\DC3\EOT\244\DC3\EM\n\
    \\r\n\
    \\ENQ\EOTW\STX\SOH\ENQ\DC2\EOT\246\DC3\EOT\t\n\
    \\r\n\
    \\ENQ\EOTW\STX\SOH\SOH\DC2\EOT\246\DC3\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTW\STX\SOH\ETX\DC2\EOT\246\DC3\DC3\DC4\n\
    \\f\n\
    \\EOT\EOTW\STX\STX\DC2\EOT\248\DC3\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOTW\STX\STX\EOT\DC2\ACK\248\DC3\EOT\246\DC3\NAK\n\
    \\r\n\
    \\ENQ\EOTW\STX\STX\ENQ\DC2\EOT\248\DC3\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTW\STX\STX\SOH\DC2\EOT\248\DC3\v\SYN\n\
    \\r\n\
    \\ENQ\EOTW\STX\STX\ETX\DC2\EOT\248\DC3\EM\SUB\n\
    \\255\STX\n\
    \\STX\EOTX\DC2\ACK\130\DC4\NUL\169\DC4\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\EOTX\SOH\DC2\EOT\130\DC4\b\r\n\
    \\185\STX\n\
    \\EOT\EOTX\STX\NUL\DC2\EOT\137\DC4\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\
    \\SI\n\
    \\ENQ\EOTX\STX\NUL\EOT\DC2\ACK\137\DC4\EOT\130\DC4\SI\n\
    \\r\n\
    \\ENQ\EOTX\STX\NUL\ENQ\DC2\EOT\137\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTX\STX\NUL\SOH\DC2\EOT\137\DC4\v\SUB\n\
    \\r\n\
    \\ENQ\EOTX\STX\NUL\ETX\DC2\EOT\137\DC4\GS\RS\n\
    \\179\SOH\n\
    \\EOT\EOTX\STX\SOH\DC2\EOT\144\DC4\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\
    \\SI\n\
    \\ENQ\EOTX\STX\SOH\EOT\DC2\ACK\144\DC4\EOT\137\DC4\US\n\
    \\r\n\
    \\ENQ\EOTX\STX\SOH\ENQ\DC2\EOT\144\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOTX\STX\SOH\SOH\DC2\EOT\144\DC4\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTX\STX\SOH\ETX\DC2\EOT\144\DC4\ETB\CAN\n\
    \\r\n\
    \\ENQ\EOTX\STX\SOH\b\DC2\EOT\144\DC4\EM,\n\
    \\SO\n\
    \\ACK\EOTX\STX\SOH\b\ETX\DC2\EOT\144\DC4\SUB+\n\
    \\216\STX\n\
    \\EOT\EOTX\STX\STX\DC2\EOT\153\DC4\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\
    \\SI\n\
    \\ENQ\EOTX\STX\STX\EOT\DC2\ACK\153\DC4\EOT\144\DC4-\n\
    \\r\n\
    \\ENQ\EOTX\STX\STX\ENQ\DC2\EOT\153\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOTX\STX\STX\SOH\DC2\EOT\153\DC4\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOTX\STX\STX\ETX\DC2\EOT\153\DC4\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOTX\STX\STX\b\DC2\EOT\153\DC4\CAN+\n\
    \\SO\n\
    \\ACK\EOTX\STX\STX\b\ETX\DC2\EOT\153\DC4\EM*\n\
    \X\n\
    \\EOT\EOTX\STX\ETX\DC2\EOT\158\DC4\EOT\SUB\SUBJ\n\
    \Contains details concerning the specific forwarding details at each hop.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTX\STX\ETX\EOT\DC2\EOT\158\DC4\EOT\f\n\
    \\r\n\
    \\ENQ\EOTX\STX\ETX\ACK\DC2\EOT\158\DC4\r\DLE\n\
    \\r\n\
    \\ENQ\EOTX\STX\ETX\SOH\DC2\EOT\158\DC4\DC1\NAK\n\
    \\r\n\
    \\ENQ\EOTX\STX\ETX\ETX\DC2\EOT\158\DC4\CAN\EM\n\
    \0\n\
    \\EOT\EOTX\STX\EOT\DC2\EOT\163\DC4\EOT\RS\SUB\"\n\
    \The total fees in millisatoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTX\STX\EOT\EOT\DC2\ACK\163\DC4\EOT\158\DC4\SUB\n\
    \\r\n\
    \\ENQ\EOTX\STX\EOT\ENQ\DC2\EOT\163\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOTX\STX\EOT\SOH\DC2\EOT\163\DC4\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTX\STX\EOT\ETX\DC2\EOT\163\DC4\FS\GS\n\
    \2\n\
    \\EOT\EOTX\STX\ENQ\DC2\EOT\168\DC4\EOT\GS\SUB$\n\
    \The total amount in millisatoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTX\STX\ENQ\EOT\DC2\ACK\168\DC4\EOT\163\DC4\RS\n\
    \\r\n\
    \\ENQ\EOTX\STX\ENQ\ENQ\DC2\EOT\168\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOTX\STX\ENQ\SOH\DC2\EOT\168\DC4\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOTX\STX\ENQ\ETX\DC2\EOT\168\DC4\ESC\FS\n\
    \\f\n\
    \\STX\EOTY\DC2\ACK\171\DC4\NUL\177\DC4\SOH\n\
    \\v\n\
    \\ETX\EOTY\SOH\DC2\EOT\171\DC4\b\ETB\n\
    \L\n\
    \\EOT\EOTY\STX\NUL\DC2\EOT\173\DC4\EOT\ETB\SUB> The 33-byte hex-encoded compressed public of the target node\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTY\STX\NUL\EOT\DC2\ACK\173\DC4\EOT\171\DC4\EM\n\
    \\r\n\
    \\ENQ\EOTY\STX\NUL\ENQ\DC2\EOT\173\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTY\STX\NUL\SOH\DC2\EOT\173\DC4\v\DC2\n\
    \\r\n\
    \\ENQ\EOTY\STX\NUL\ETX\DC2\EOT\173\DC4\NAK\SYN\n\
    \R\n\
    \\EOT\EOTY\STX\SOH\DC2\EOT\176\DC4\EOT\RS\SUBD If true, will include all known channels associated with the node.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTY\STX\SOH\EOT\DC2\ACK\176\DC4\EOT\173\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOTY\STX\SOH\ENQ\DC2\EOT\176\DC4\EOT\b\n\
    \\r\n\
    \\ENQ\EOTY\STX\SOH\SOH\DC2\EOT\176\DC4\t\EM\n\
    \\r\n\
    \\ENQ\EOTY\STX\SOH\ETX\DC2\EOT\176\DC4\FS\GS\n\
    \\f\n\
    \\STX\EOTZ\DC2\ACK\179\DC4\NUL\196\DC4\SOH\n\
    \\v\n\
    \\ETX\EOTZ\SOH\DC2\EOT\179\DC4\b\DLE\n\
    \\255\SOH\n\
    \\EOT\EOTZ\STX\NUL\DC2\EOT\186\DC4\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\
    \\SI\n\
    \\ENQ\EOTZ\STX\NUL\EOT\DC2\ACK\186\DC4\EOT\179\DC4\DC2\n\
    \\r\n\
    \\ENQ\EOTZ\STX\NUL\ACK\DC2\EOT\186\DC4\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOTZ\STX\NUL\SOH\DC2\EOT\186\DC4\DC2\SYN\n\
    \\r\n\
    \\ENQ\EOTZ\STX\NUL\ETX\DC2\EOT\186\DC4\EM\SUB\n\
    \:\n\
    \\EOT\EOTZ\STX\SOH\DC2\EOT\189\DC4\EOT\FS\SUB, The total number of channels for the node.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTZ\STX\SOH\EOT\DC2\ACK\189\DC4\EOT\186\DC4\ESC\n\
    \\r\n\
    \\ENQ\EOTZ\STX\SOH\ENQ\DC2\EOT\189\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTZ\STX\SOH\SOH\DC2\EOT\189\DC4\v\ETB\n\
    \\r\n\
    \\ENQ\EOTZ\STX\SOH\ETX\DC2\EOT\189\DC4\SUB\ESC\n\
    \W\n\
    \\EOT\EOTZ\STX\STX\DC2\EOT\192\DC4\EOT\GS\SUBI The sum of all channels capacity for the node, denominated in satoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTZ\STX\STX\EOT\DC2\ACK\192\DC4\EOT\189\DC4\FS\n\
    \\r\n\
    \\ENQ\EOTZ\STX\STX\ENQ\DC2\EOT\192\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOTZ\STX\STX\SOH\DC2\EOT\192\DC4\n\
    \\CAN\n\
    \\r\n\
    \\ENQ\EOTZ\STX\STX\ETX\DC2\EOT\192\DC4\ESC\FS\n\
    \;\n\
    \\EOT\EOTZ\STX\ETX\DC2\EOT\195\DC4\EOT&\SUB- A list of all public channels for the node.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTZ\STX\ETX\EOT\DC2\EOT\195\DC4\EOT\f\n\
    \\r\n\
    \\ENQ\EOTZ\STX\ETX\ACK\DC2\EOT\195\DC4\r\CAN\n\
    \\r\n\
    \\ENQ\EOTZ\STX\ETX\SOH\DC2\EOT\195\DC4\EM!\n\
    \\r\n\
    \\ENQ\EOTZ\STX\ETX\ETX\DC2\EOT\195\DC4$%\n\
    \\255\SOH\n\
    \\STX\EOT[\DC2\ACK\204\DC4\NUL\211\DC4\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\204\DC4\b\NAK\n\
    \\f\n\
    \\EOT\EOT[\STX\NUL\DC2\EOT\205\DC4\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT[\STX\NUL\EOT\DC2\ACK\205\DC4\EOT\204\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT[\STX\NUL\ENQ\DC2\EOT\205\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT[\STX\NUL\SOH\DC2\EOT\205\DC4\v\SYN\n\
    \\r\n\
    \\ENQ\EOT[\STX\NUL\ETX\DC2\EOT\205\DC4\EM\SUB\n\
    \\f\n\
    \\EOT\EOT[\STX\SOH\DC2\EOT\206\DC4\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT[\STX\SOH\EOT\DC2\ACK\206\DC4\EOT\205\DC4\ESC\n\
    \\r\n\
    \\ENQ\EOT[\STX\SOH\ENQ\DC2\EOT\206\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT[\STX\SOH\SOH\DC2\EOT\206\DC4\v\DC2\n\
    \\r\n\
    \\ENQ\EOT[\STX\SOH\ETX\DC2\EOT\206\DC4\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT[\STX\STX\DC2\EOT\207\DC4\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOT[\STX\STX\EOT\DC2\ACK\207\DC4\EOT\206\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT[\STX\STX\ENQ\DC2\EOT\207\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT[\STX\STX\SOH\DC2\EOT\207\DC4\v\DLE\n\
    \\r\n\
    \\ENQ\EOT[\STX\STX\ETX\DC2\EOT\207\DC4\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT[\STX\ETX\DC2\EOT\208\DC4\EOT'\n\
    \\r\n\
    \\ENQ\EOT[\STX\ETX\EOT\DC2\EOT\208\DC4\EOT\f\n\
    \\r\n\
    \\ENQ\EOT[\STX\ETX\ACK\DC2\EOT\208\DC4\r\CAN\n\
    \\r\n\
    \\ENQ\EOT[\STX\ETX\SOH\DC2\EOT\208\DC4\EM\"\n\
    \\r\n\
    \\ENQ\EOT[\STX\ETX\ETX\DC2\EOT\208\DC4%&\n\
    \\f\n\
    \\EOT\EOT[\STX\EOT\DC2\EOT\209\DC4\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOT[\STX\EOT\EOT\DC2\ACK\209\DC4\EOT\208\DC4'\n\
    \\r\n\
    \\ENQ\EOT[\STX\EOT\ENQ\DC2\EOT\209\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT[\STX\EOT\SOH\DC2\EOT\209\DC4\v\DLE\n\
    \\r\n\
    \\ENQ\EOT[\STX\EOT\ETX\DC2\EOT\209\DC4\DC3\DC4\n\
    \\f\n\
    \\EOT\EOT[\STX\ENQ\DC2\EOT\210\DC4\EOT&\n\
    \\SI\n\
    \\ENQ\EOT[\STX\ENQ\EOT\DC2\ACK\210\DC4\EOT\209\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOT[\STX\ENQ\ACK\DC2\EOT\210\DC4\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOT[\STX\ENQ\SOH\DC2\EOT\210\DC4\EM!\n\
    \\r\n\
    \\ENQ\EOT[\STX\ENQ\ETX\DC2\EOT\210\DC4$%\n\
    \\f\n\
    \\STX\EOT\\\DC2\ACK\213\DC4\NUL\216\DC4\SOH\n\
    \\v\n\
    \\ETX\EOT\\\SOH\DC2\EOT\213\DC4\b\DC3\n\
    \\f\n\
    \\EOT\EOT\\\STX\NUL\DC2\EOT\214\DC4\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT\\\STX\NUL\EOT\DC2\ACK\214\DC4\EOT\213\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOT\\\STX\NUL\ENQ\DC2\EOT\214\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\\\STX\NUL\SOH\DC2\EOT\214\DC4\v\DC2\n\
    \\r\n\
    \\ENQ\EOT\\\STX\NUL\ETX\DC2\EOT\214\DC4\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT\\\STX\SOH\DC2\EOT\215\DC4\EOT\DC4\n\
    \\SI\n\
    \\ENQ\EOT\\\STX\SOH\EOT\DC2\ACK\215\DC4\EOT\214\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT\\\STX\SOH\ENQ\DC2\EOT\215\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\\\STX\SOH\SOH\DC2\EOT\215\DC4\v\SI\n\
    \\r\n\
    \\ENQ\EOT\\\STX\SOH\ETX\DC2\EOT\215\DC4\DC2\DC3\n\
    \\f\n\
    \\STX\EOT]\DC2\ACK\218\DC4\NUL\226\DC4\SOH\n\
    \\v\n\
    \\ETX\EOT]\SOH\DC2\EOT\218\DC4\b\NAK\n\
    \\f\n\
    \\EOT\EOT]\STX\NUL\DC2\EOT\219\DC4\EOT\US\n\
    \\SI\n\
    \\ENQ\EOT]\STX\NUL\EOT\DC2\ACK\219\DC4\EOT\218\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT]\STX\NUL\ENQ\DC2\EOT\219\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT]\STX\NUL\SOH\DC2\EOT\219\DC4\v\SUB\n\
    \\r\n\
    \\ENQ\EOT]\STX\NUL\ETX\DC2\EOT\219\DC4\GS\RS\n\
    \\f\n\
    \\EOT\EOT]\STX\SOH\DC2\EOT\220\DC4\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT]\STX\SOH\EOT\DC2\ACK\220\DC4\EOT\219\DC4\US\n\
    \\r\n\
    \\ENQ\EOT]\STX\SOH\ENQ\DC2\EOT\220\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOT]\STX\SOH\SOH\DC2\EOT\220\DC4\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT]\STX\SOH\ETX\DC2\EOT\220\DC4\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT]\STX\STX\DC2\EOT\221\DC4\EOT\FS\n\
    \\SI\n\
    \\ENQ\EOT]\STX\STX\EOT\DC2\ACK\221\DC4\EOT\220\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT]\STX\STX\ENQ\DC2\EOT\221\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOT]\STX\STX\SOH\DC2\EOT\221\DC4\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOT]\STX\STX\ETX\DC2\EOT\221\DC4\SUB\ESC\n\
    \\f\n\
    \\EOT\EOT]\STX\ETX\DC2\EOT\222\DC4\EOT\"\n\
    \\SI\n\
    \\ENQ\EOT]\STX\ETX\EOT\DC2\ACK\222\DC4\EOT\221\DC4\FS\n\
    \\r\n\
    \\ENQ\EOT]\STX\ETX\ENQ\DC2\EOT\222\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOT]\STX\ETX\SOH\DC2\EOT\222\DC4\n\
    \\GS\n\
    \\r\n\
    \\ENQ\EOT]\STX\ETX\ETX\DC2\EOT\222\DC4 !\n\
    \\f\n\
    \\EOT\EOT]\STX\EOT\DC2\EOT\223\DC4\EOT\SYN\n\
    \\SI\n\
    \\ENQ\EOT]\STX\EOT\EOT\DC2\ACK\223\DC4\EOT\222\DC4\"\n\
    \\r\n\
    \\ENQ\EOT]\STX\EOT\ENQ\DC2\EOT\223\DC4\EOT\b\n\
    \\r\n\
    \\ENQ\EOT]\STX\EOT\SOH\DC2\EOT\223\DC4\t\DC1\n\
    \\r\n\
    \\ENQ\EOT]\STX\EOT\ETX\DC2\EOT\223\DC4\DC4\NAK\n\
    \\f\n\
    \\EOT\EOT]\STX\ENQ\DC2\EOT\224\DC4\EOT\GS\n\
    \\SI\n\
    \\ENQ\EOT]\STX\ENQ\EOT\DC2\ACK\224\DC4\EOT\223\DC4\SYN\n\
    \\r\n\
    \\ENQ\EOT]\STX\ENQ\ENQ\DC2\EOT\224\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT]\STX\ENQ\SOH\DC2\EOT\224\DC4\v\CAN\n\
    \\r\n\
    \\ENQ\EOT]\STX\ENQ\ETX\DC2\EOT\224\DC4\ESC\FS\n\
    \\f\n\
    \\EOT\EOT]\STX\ACK\DC2\EOT\225\DC4\EOT\ESC\n\
    \\SI\n\
    \\ENQ\EOT]\STX\ACK\EOT\DC2\ACK\225\DC4\EOT\224\DC4\GS\n\
    \\r\n\
    \\ENQ\EOT]\STX\ACK\ENQ\DC2\EOT\225\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT]\STX\ACK\SOH\DC2\EOT\225\DC4\v\SYN\n\
    \\r\n\
    \\ENQ\EOT]\STX\ACK\ETX\DC2\EOT\225\DC4\EM\SUB\n\
    \\251\STX\n\
    \\STX\EOT^\DC2\ACK\235\DC4\NUL\253\DC4\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\235\DC4\b\DC3\n\
    \\193\SOH\n\
    \\EOT\EOT^\STX\NUL\DC2\EOT\241\DC4\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\
    \\SI\n\
    \\ENQ\EOT^\STX\NUL\EOT\DC2\ACK\241\DC4\EOT\235\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOT^\STX\NUL\ENQ\DC2\EOT\241\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT^\STX\NUL\SOH\DC2\EOT\241\DC4\v\NAK\n\
    \\r\n\
    \\ENQ\EOT^\STX\NUL\ETX\DC2\EOT\241\DC4\CAN\EM\n\
    \\r\n\
    \\ENQ\EOT^\STX\NUL\b\DC2\EOT\241\DC4\SUB.\n\
    \\SO\n\
    \\ACK\EOT^\STX\NUL\b\ACK\DC2\EOT\241\DC4\ESC-\n\
    \\f\n\
    \\EOT\EOT^\STX\SOH\DC2\EOT\242\DC4\EOT\SUB\n\
    \\SI\n\
    \\ENQ\EOT^\STX\SOH\EOT\DC2\ACK\242\DC4\EOT\241\DC4/\n\
    \\r\n\
    \\ENQ\EOT^\STX\SOH\ENQ\DC2\EOT\242\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT^\STX\SOH\SOH\DC2\EOT\242\DC4\v\NAK\n\
    \\r\n\
    \\ENQ\EOT^\STX\SOH\ETX\DC2\EOT\242\DC4\CAN\EM\n\
    \\f\n\
    \\EOT\EOT^\STX\STX\DC2\EOT\244\DC4\EOT/\n\
    \\SI\n\
    \\ENQ\EOT^\STX\STX\EOT\DC2\ACK\244\DC4\EOT\242\DC4\SUB\n\
    \\r\n\
    \\ENQ\EOT^\STX\STX\ENQ\DC2\EOT\244\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT^\STX\STX\SOH\DC2\EOT\244\DC4\v\SYN\n\
    \\r\n\
    \\ENQ\EOT^\STX\STX\ETX\DC2\EOT\244\DC4\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT^\STX\STX\b\DC2\EOT\244\DC4\ESC.\n\
    \\SO\n\
    \\ACK\EOT^\STX\STX\b\ETX\DC2\EOT\244\DC4\FS-\n\
    \\f\n\
    \\EOT\EOT^\STX\ETX\DC2\EOT\246\DC4\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT^\STX\ETX\EOT\DC2\ACK\246\DC4\EOT\244\DC4/\n\
    \\r\n\
    \\ENQ\EOT^\STX\ETX\ENQ\DC2\EOT\246\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT^\STX\ETX\SOH\DC2\EOT\246\DC4\v\DC4\n\
    \\r\n\
    \\ENQ\EOT^\STX\ETX\ETX\DC2\EOT\246\DC4\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT^\STX\EOT\DC2\EOT\247\DC4\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOT^\STX\EOT\EOT\DC2\ACK\247\DC4\EOT\246\DC4\EM\n\
    \\r\n\
    \\ENQ\EOT^\STX\EOT\ENQ\DC2\EOT\247\DC4\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT^\STX\EOT\SOH\DC2\EOT\247\DC4\v\DC4\n\
    \\r\n\
    \\ENQ\EOT^\STX\EOT\ETX\DC2\EOT\247\DC4\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT^\STX\ENQ\DC2\EOT\249\DC4\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOT^\STX\ENQ\EOT\DC2\ACK\249\DC4\EOT\247\DC4\EM\n\
    \\r\n\
    \\ENQ\EOT^\STX\ENQ\ENQ\DC2\EOT\249\DC4\EOT\t\n\
    \\r\n\
    \\ENQ\EOT^\STX\ENQ\SOH\DC2\EOT\249\DC4\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOT^\STX\ENQ\ETX\DC2\EOT\249\DC4\NAK\SYN\n\
    \\f\n\
    \\EOT\EOT^\STX\ACK\DC2\EOT\251\DC4\EOT#\n\
    \\SI\n\
    \\ENQ\EOT^\STX\ACK\EOT\DC2\ACK\251\DC4\EOT\249\DC4\ETB\n\
    \\r\n\
    \\ENQ\EOT^\STX\ACK\ACK\DC2\EOT\251\DC4\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT^\STX\ACK\SOH\DC2\EOT\251\DC4\DC2\RS\n\
    \\r\n\
    \\ENQ\EOT^\STX\ACK\ETX\DC2\EOT\251\DC4!\"\n\
    \\f\n\
    \\EOT\EOT^\STX\a\DC2\EOT\252\DC4\EOT#\n\
    \\SI\n\
    \\ENQ\EOT^\STX\a\EOT\DC2\ACK\252\DC4\EOT\251\DC4#\n\
    \\r\n\
    \\ENQ\EOT^\STX\a\ACK\DC2\EOT\252\DC4\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOT^\STX\a\SOH\DC2\EOT\252\DC4\DC2\RS\n\
    \\r\n\
    \\ENQ\EOT^\STX\a\ETX\DC2\EOT\252\DC4!\"\n\
    \\f\n\
    \\STX\EOT_\DC2\ACK\255\DC4\NUL\134\NAK\SOH\n\
    \\v\n\
    \\ETX\EOT_\SOH\DC2\EOT\255\DC4\b\ESC\n\
    \\236\SOH\n\
    \\EOT\EOT_\STX\NUL\DC2\EOT\133\NAK\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\
    \\SI\n\
    \\ENQ\EOT_\STX\NUL\EOT\DC2\ACK\133\NAK\EOT\255\DC4\GS\n\
    \\r\n\
    \\ENQ\EOT_\STX\NUL\ENQ\DC2\EOT\133\NAK\EOT\b\n\
    \\r\n\
    \\ENQ\EOT_\STX\NUL\SOH\DC2\EOT\133\NAK\t\FS\n\
    \\r\n\
    \\ENQ\EOT_\STX\NUL\ETX\DC2\EOT\133\NAK\US \n\
    \E\n\
    \\STX\EOT`\DC2\ACK\137\NAK\NUL\143\NAK\SOH\SUB7 Returns a new instance of the directed channel graph.\n\
    \\n\
    \\v\n\
    \\ETX\EOT`\SOH\DC2\EOT\137\NAK\b\DC4\n\
    \B\n\
    \\EOT\EOT`\STX\NUL\DC2\EOT\139\NAK\EOT%\SUB4 The list of `LightningNode`s in this channel graph\n\
    \\n\
    \\r\n\
    \\ENQ\EOT`\STX\NUL\EOT\DC2\EOT\139\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT`\STX\NUL\ACK\DC2\EOT\139\NAK\r\SUB\n\
    \\r\n\
    \\ENQ\EOT`\STX\NUL\SOH\DC2\EOT\139\NAK\ESC \n\
    \\r\n\
    \\ENQ\EOT`\STX\NUL\ETX\DC2\EOT\139\NAK#$\n\
    \@\n\
    \\EOT\EOT`\STX\SOH\DC2\EOT\142\NAK\EOT#\SUB2 The list of `ChannelEdge`s in this channel graph\n\
    \\n\
    \\r\n\
    \\ENQ\EOT`\STX\SOH\EOT\DC2\EOT\142\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOT`\STX\SOH\ACK\DC2\EOT\142\NAK\r\CAN\n\
    \\r\n\
    \\ENQ\EOT`\STX\SOH\SOH\DC2\EOT\142\NAK\EM\RS\n\
    \\r\n\
    \\ENQ\EOT`\STX\SOH\ETX\DC2\EOT\142\NAK!\"\n\
    \\f\n\
    \\STX\ENQ\ENQ\DC2\ACK\145\NAK\NUL\148\NAK\SOH\n\
    \\v\n\
    \\ETX\ENQ\ENQ\SOH\DC2\EOT\145\NAK\ENQ\DC3\n\
    \\f\n\
    \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\146\NAK\EOT\DLE\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\146\NAK\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\146\NAK\SO\SI\n\
    \\f\n\
    \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\147\NAK\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\147\NAK\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\147\NAK\GS\RS\n\
    \\f\n\
    \\STX\EOTa\DC2\ACK\150\NAK\NUL\153\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTa\SOH\DC2\EOT\150\NAK\b\SUB\n\
    \+\n\
    \\EOT\EOTa\STX\NUL\DC2\EOT\152\NAK\EOT&\SUB\GS The requested node metrics.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTa\STX\NUL\EOT\DC2\EOT\152\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTa\STX\NUL\ACK\DC2\EOT\152\NAK\r\ESC\n\
    \\r\n\
    \\ENQ\EOTa\STX\NUL\SOH\DC2\EOT\152\NAK\FS!\n\
    \\r\n\
    \\ENQ\EOTa\STX\NUL\ETX\DC2\EOT\152\NAK$%\n\
    \\f\n\
    \\STX\EOTb\DC2\ACK\155\NAK\NUL\164\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTb\SOH\DC2\EOT\155\NAK\b\ESC\n\
    \\180\STX\n\
    \\EOT\EOTb\STX\NUL\DC2\EOT\163\NAK\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\
    \\SI\n\
    \\ENQ\EOTb\STX\NUL\EOT\DC2\ACK\163\NAK\EOT\155\NAK\GS\n\
    \\r\n\
    \\ENQ\EOTb\STX\NUL\ACK\DC2\EOT\163\NAK\EOT\FS\n\
    \\r\n\
    \\ENQ\EOTb\STX\NUL\SOH\DC2\EOT\163\NAK\GS3\n\
    \\r\n\
    \\ENQ\EOTb\STX\NUL\ETX\DC2\EOT\163\NAK67\n\
    \\f\n\
    \\STX\EOTc\DC2\ACK\166\NAK\NUL\172\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTc\SOH\DC2\EOT\166\NAK\b\DC3\n\
    \&\n\
    \\EOT\EOTc\STX\NUL\DC2\EOT\168\NAK\EOT\NAK\SUB\CAN Arbitrary float value.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTc\STX\NUL\EOT\DC2\ACK\168\NAK\EOT\166\NAK\NAK\n\
    \\r\n\
    \\ENQ\EOTc\STX\NUL\ENQ\DC2\EOT\168\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTc\STX\NUL\SOH\DC2\EOT\168\NAK\v\DLE\n\
    \\r\n\
    \\ENQ\EOTc\STX\NUL\ETX\DC2\EOT\168\NAK\DC3\DC4\n\
    \8\n\
    \\EOT\EOTc\STX\SOH\DC2\EOT\171\NAK\EOT \SUB* The value normalized to [0,1] or [-1,1].\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTc\STX\SOH\EOT\DC2\ACK\171\NAK\EOT\168\NAK\NAK\n\
    \\r\n\
    \\ENQ\EOTc\STX\SOH\ENQ\DC2\EOT\171\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTc\STX\SOH\SOH\DC2\EOT\171\NAK\v\ESC\n\
    \\r\n\
    \\ENQ\EOTc\STX\SOH\ETX\DC2\EOT\171\NAK\RS\US\n\
    \\f\n\
    \\STX\EOTd\DC2\ACK\174\NAK\NUL\181\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTd\SOH\DC2\EOT\174\NAK\b\ETB\n\
    \\193\SOH\n\
    \\EOT\EOTd\STX\NUL\DC2\EOT\180\NAK\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\
    \\SI\n\
    \\ENQ\EOTd\STX\NUL\EOT\DC2\ACK\180\NAK\EOT\174\NAK\EM\n\
    \\r\n\
    \\ENQ\EOTd\STX\NUL\ENQ\DC2\EOT\180\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTd\STX\NUL\SOH\DC2\EOT\180\NAK\v\DC2\n\
    \\r\n\
    \\ENQ\EOTd\STX\NUL\ETX\DC2\EOT\180\NAK\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTd\STX\NUL\b\DC2\EOT\180\NAK\ETB+\n\
    \\SO\n\
    \\ACK\EOTd\STX\NUL\b\ACK\DC2\EOT\180\NAK\CAN*\n\
    \\f\n\
    \\STX\EOTe\DC2\ACK\183\NAK\NUL\184\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTe\SOH\DC2\EOT\183\NAK\b\SUB\n\
    \\f\n\
    \\STX\EOTf\DC2\ACK\185\NAK\NUL\205\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTf\SOH\DC2\EOT\185\NAK\b\DC3\n\
    \\f\n\
    \\EOT\EOTf\STX\NUL\DC2\EOT\186\NAK\EOT\RS\n\
    \\SI\n\
    \\ENQ\EOTf\STX\NUL\EOT\DC2\ACK\186\NAK\EOT\185\NAK\NAK\n\
    \\r\n\
    \\ENQ\EOTf\STX\NUL\ENQ\DC2\EOT\186\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\NUL\SOH\DC2\EOT\186\NAK\v\EM\n\
    \\r\n\
    \\ENQ\EOTf\STX\NUL\ETX\DC2\EOT\186\NAK\FS\GS\n\
    \\f\n\
    \\EOT\EOTf\STX\SOH\DC2\EOT\187\NAK\EOT\RS\n\
    \\SI\n\
    \\ENQ\EOTf\STX\SOH\EOT\DC2\ACK\187\NAK\EOT\186\NAK\RS\n\
    \\r\n\
    \\ENQ\EOTf\STX\SOH\ENQ\DC2\EOT\187\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\SOH\SOH\DC2\EOT\187\NAK\v\EM\n\
    \\r\n\
    \\ENQ\EOTf\STX\SOH\ETX\DC2\EOT\187\NAK\FS\GS\n\
    \\f\n\
    \\EOT\EOTf\STX\STX\DC2\EOT\188\NAK\EOT\RS\n\
    \\SI\n\
    \\ENQ\EOTf\STX\STX\EOT\DC2\ACK\188\NAK\EOT\187\NAK\RS\n\
    \\r\n\
    \\ENQ\EOTf\STX\STX\ENQ\DC2\EOT\188\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\STX\SOH\DC2\EOT\188\NAK\v\EM\n\
    \\r\n\
    \\ENQ\EOTf\STX\STX\ETX\DC2\EOT\188\NAK\FS\GS\n\
    \\f\n\
    \\EOT\EOTf\STX\ETX\DC2\EOT\190\NAK\EOT\EM\n\
    \\SI\n\
    \\ENQ\EOTf\STX\ETX\EOT\DC2\ACK\190\NAK\EOT\188\NAK\RS\n\
    \\r\n\
    \\ENQ\EOTf\STX\ETX\ENQ\DC2\EOT\190\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\ETX\SOH\DC2\EOT\190\NAK\v\DC4\n\
    \\r\n\
    \\ENQ\EOTf\STX\ETX\ETX\DC2\EOT\190\NAK\ETB\CAN\n\
    \\f\n\
    \\EOT\EOTf\STX\EOT\DC2\EOT\191\NAK\EOT\FS\n\
    \\SI\n\
    \\ENQ\EOTf\STX\EOT\EOT\DC2\ACK\191\NAK\EOT\190\NAK\EM\n\
    \\r\n\
    \\ENQ\EOTf\STX\EOT\ENQ\DC2\EOT\191\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\EOT\SOH\DC2\EOT\191\NAK\v\ETB\n\
    \\r\n\
    \\ENQ\EOTf\STX\EOT\ETX\DC2\EOT\191\NAK\SUB\ESC\n\
    \\f\n\
    \\EOT\EOTf\STX\ENQ\DC2\EOT\193\NAK\EOT%\n\
    \\SI\n\
    \\ENQ\EOTf\STX\ENQ\EOT\DC2\ACK\193\NAK\EOT\191\NAK\FS\n\
    \\r\n\
    \\ENQ\EOTf\STX\ENQ\ENQ\DC2\EOT\193\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTf\STX\ENQ\SOH\DC2\EOT\193\NAK\n\
    \ \n\
    \\r\n\
    \\ENQ\EOTf\STX\ENQ\ETX\DC2\EOT\193\NAK#$\n\
    \\f\n\
    \\EOT\EOTf\STX\ACK\DC2\EOT\195\NAK\EOT \n\
    \\SI\n\
    \\ENQ\EOTf\STX\ACK\EOT\DC2\ACK\195\NAK\EOT\193\NAK%\n\
    \\r\n\
    \\ENQ\EOTf\STX\ACK\ENQ\DC2\EOT\195\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\ACK\SOH\DC2\EOT\195\NAK\v\ESC\n\
    \\r\n\
    \\ENQ\EOTf\STX\ACK\ETX\DC2\EOT\195\NAK\RS\US\n\
    \\f\n\
    \\EOT\EOTf\STX\a\DC2\EOT\196\NAK\EOT\US\n\
    \\SI\n\
    \\ENQ\EOTf\STX\a\EOT\DC2\ACK\196\NAK\EOT\195\NAK \n\
    \\r\n\
    \\ENQ\EOTf\STX\a\ENQ\DC2\EOT\196\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTf\STX\a\SOH\DC2\EOT\196\NAK\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOTf\STX\a\ETX\DC2\EOT\196\NAK\GS\RS\n\
    \\f\n\
    \\EOT\EOTf\STX\b\DC2\EOT\197\NAK\EOT\US\n\
    \\SI\n\
    \\ENQ\EOTf\STX\b\EOT\DC2\ACK\197\NAK\EOT\196\NAK\US\n\
    \\r\n\
    \\ENQ\EOTf\STX\b\ENQ\DC2\EOT\197\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTf\STX\b\SOH\DC2\EOT\197\NAK\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOTf\STX\b\ETX\DC2\EOT\197\NAK\GS\RS\n\
    \\f\n\
    \\EOT\EOTf\STX\t\DC2\EOT\198\NAK\EOT'\n\
    \\SI\n\
    \\ENQ\EOTf\STX\t\EOT\DC2\ACK\198\NAK\EOT\197\NAK\US\n\
    \\r\n\
    \\ENQ\EOTf\STX\t\ENQ\DC2\EOT\198\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTf\STX\t\SOH\DC2\EOT\198\NAK\n\
    \!\n\
    \\r\n\
    \\ENQ\EOTf\STX\t\ETX\DC2\EOT\198\NAK$&\n\
    \6\n\
    \\EOT\EOTf\STX\n\
    \\DC2\EOT\201\NAK\EOT!\SUB( The number of edges marked as zombies.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTf\STX\n\
    \\EOT\DC2\ACK\201\NAK\EOT\198\NAK'\n\
    \\r\n\
    \\ENQ\EOTf\STX\n\
    \\ENQ\DC2\EOT\201\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTf\STX\n\
    \\SOH\DC2\EOT\201\NAK\v\ESC\n\
    \\r\n\
    \\ENQ\EOTf\STX\n\
    \\ETX\DC2\EOT\201\NAK\RS \n\
    \\f\n\
    \\STX\EOTg\DC2\ACK\207\NAK\NUL\208\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTg\SOH\DC2\EOT\207\NAK\b\DC3\n\
    \\f\n\
    \\STX\EOTh\DC2\ACK\209\NAK\NUL\210\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTh\SOH\DC2\EOT\209\NAK\b\DC4\n\
    \\f\n\
    \\STX\EOTi\DC2\ACK\212\NAK\NUL\213\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTi\SOH\DC2\EOT\212\NAK\b!\n\
    \\f\n\
    \\STX\EOTj\DC2\ACK\214\NAK\NUL\218\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTj\SOH\DC2\EOT\214\NAK\b\ESC\n\
    \\f\n\
    \\EOT\EOTj\STX\NUL\DC2\EOT\215\NAK\EOT)\n\
    \\r\n\
    \\ENQ\EOTj\STX\NUL\EOT\DC2\EOT\215\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTj\STX\NUL\ACK\DC2\EOT\215\NAK\r\ETB\n\
    \\r\n\
    \\ENQ\EOTj\STX\NUL\SOH\DC2\EOT\215\NAK\CAN$\n\
    \\r\n\
    \\ENQ\EOTj\STX\NUL\ETX\DC2\EOT\215\NAK'(\n\
    \\f\n\
    \\EOT\EOTj\STX\SOH\DC2\EOT\216\NAK\EOT3\n\
    \\r\n\
    \\ENQ\EOTj\STX\SOH\EOT\DC2\EOT\216\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTj\STX\SOH\ACK\DC2\EOT\216\NAK\r\RS\n\
    \\r\n\
    \\ENQ\EOTj\STX\SOH\SOH\DC2\EOT\216\NAK\US.\n\
    \\r\n\
    \\ENQ\EOTj\STX\SOH\ETX\DC2\EOT\216\NAK12\n\
    \\f\n\
    \\EOT\EOTj\STX\STX\DC2\EOT\217\NAK\EOT2\n\
    \\r\n\
    \\ENQ\EOTj\STX\STX\EOT\DC2\EOT\217\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTj\STX\STX\ACK\DC2\EOT\217\NAK\r \n\
    \\r\n\
    \\ENQ\EOTj\STX\STX\SOH\DC2\EOT\217\NAK!-\n\
    \\r\n\
    \\ENQ\EOTj\STX\STX\ETX\DC2\EOT\217\NAK01\n\
    \\f\n\
    \\STX\EOTk\DC2\ACK\219\NAK\NUL\241\NAK\SOH\n\
    \\v\n\
    \\ETX\EOTk\SOH\DC2\EOT\219\NAK\b\DC2\n\
    \/\n\
    \\EOT\EOTk\STX\NUL\DC2\EOT\223\NAK\EOT6\SUB!\n\
    \Deprecated, use node_addresses.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTk\STX\NUL\EOT\DC2\EOT\223\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTk\STX\NUL\ENQ\DC2\EOT\223\NAK\r\DC3\n\
    \\r\n\
    \\ENQ\EOTk\STX\NUL\SOH\DC2\EOT\223\NAK\DC4\GS\n\
    \\r\n\
    \\ENQ\EOTk\STX\NUL\ETX\DC2\EOT\223\NAK !\n\
    \\r\n\
    \\ENQ\EOTk\STX\NUL\b\DC2\EOT\223\NAK\"5\n\
    \\SO\n\
    \\ACK\EOTk\STX\NUL\b\ETX\DC2\EOT\223\NAK#4\n\
    \\f\n\
    \\EOT\EOTk\STX\SOH\DC2\EOT\225\NAK\EOT\FS\n\
    \\SI\n\
    \\ENQ\EOTk\STX\SOH\EOT\DC2\ACK\225\NAK\EOT\223\NAK6\n\
    \\r\n\
    \\ENQ\EOTk\STX\SOH\ENQ\DC2\EOT\225\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTk\STX\SOH\SOH\DC2\EOT\225\NAK\v\ETB\n\
    \\r\n\
    \\ENQ\EOTk\STX\SOH\ETX\DC2\EOT\225\NAK\SUB\ESC\n\
    \)\n\
    \\EOT\EOTk\STX\STX\DC2\EOT\230\NAK\EOT2\SUB\ESC\n\
    \Deprecated, use features.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTk\STX\STX\EOT\DC2\ACK\230\NAK\EOT\225\NAK\FS\n\
    \\r\n\
    \\ENQ\EOTk\STX\STX\ENQ\DC2\EOT\230\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTk\STX\STX\SOH\DC2\EOT\230\NAK\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTk\STX\STX\ETX\DC2\EOT\230\NAK\FS\GS\n\
    \\r\n\
    \\ENQ\EOTk\STX\STX\b\DC2\EOT\230\NAK\RS1\n\
    \\SO\n\
    \\ACK\EOTk\STX\STX\b\ETX\DC2\EOT\230\NAK\US0\n\
    \\f\n\
    \\EOT\EOTk\STX\ETX\DC2\EOT\232\NAK\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOTk\STX\ETX\EOT\DC2\ACK\232\NAK\EOT\230\NAK2\n\
    \\r\n\
    \\ENQ\EOTk\STX\ETX\ENQ\DC2\EOT\232\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTk\STX\ETX\SOH\DC2\EOT\232\NAK\v\DLE\n\
    \\r\n\
    \\ENQ\EOTk\STX\ETX\ETX\DC2\EOT\232\NAK\DC3\DC4\n\
    \\f\n\
    \\EOT\EOTk\STX\EOT\DC2\EOT\233\NAK\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOTk\STX\EOT\EOT\DC2\ACK\233\NAK\EOT\232\NAK\NAK\n\
    \\r\n\
    \\ENQ\EOTk\STX\EOT\ENQ\DC2\EOT\233\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTk\STX\EOT\SOH\DC2\EOT\233\NAK\v\DLE\n\
    \\r\n\
    \\ENQ\EOTk\STX\EOT\ETX\DC2\EOT\233\NAK\DC3\DC4\n\
    \\f\n\
    \\EOT\EOTk\STX\ENQ\DC2\EOT\234\NAK\EOT,\n\
    \\r\n\
    \\ENQ\EOTk\STX\ENQ\EOT\DC2\EOT\234\NAK\EOT\f\n\
    \\r\n\
    \\ENQ\EOTk\STX\ENQ\ACK\DC2\EOT\234\NAK\r\CAN\n\
    \\r\n\
    \\ENQ\EOTk\STX\ENQ\SOH\DC2\EOT\234\NAK\EM'\n\
    \\r\n\
    \\ENQ\EOTk\STX\ENQ\ETX\DC2\EOT\234\NAK*+\n\
    \k\n\
    \\EOT\EOTk\STX\ACK\DC2\EOT\240\NAK\EOT&\SUB]\n\
    \Features that the node has advertised in the init message, node\n\
    \announcements and invoices.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTk\STX\ACK\EOT\DC2\ACK\240\NAK\EOT\234\NAK,\n\
    \\r\n\
    \\ENQ\EOTk\STX\ACK\ACK\DC2\EOT\240\NAK\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOTk\STX\ACK\SOH\DC2\EOT\240\NAK\EM!\n\
    \\r\n\
    \\ENQ\EOTk\STX\ACK\ETX\DC2\EOT\240\NAK$%\n\
    \\f\n\
    \\STX\EOTl\DC2\ACK\242\NAK\NUL\130\SYN\SOH\n\
    \\v\n\
    \\ETX\EOTl\SOH\DC2\EOT\242\NAK\b\EM\n\
    \\193\SOH\n\
    \\EOT\EOTl\STX\NUL\DC2\EOT\248\NAK\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\
    \\SI\n\
    \\ENQ\EOTl\STX\NUL\EOT\DC2\ACK\248\NAK\EOT\242\NAK\ESC\n\
    \\r\n\
    \\ENQ\EOTl\STX\NUL\ENQ\DC2\EOT\248\NAK\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTl\STX\NUL\SOH\DC2\EOT\248\NAK\v\DC2\n\
    \\r\n\
    \\ENQ\EOTl\STX\NUL\ETX\DC2\EOT\248\NAK\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTl\STX\NUL\b\DC2\EOT\248\NAK\ETB+\n\
    \\SO\n\
    \\ACK\EOTl\STX\NUL\b\ACK\DC2\EOT\248\NAK\CAN*\n\
    \\f\n\
    \\EOT\EOTl\STX\SOH\DC2\EOT\250\NAK\EOT \n\
    \\SI\n\
    \\ENQ\EOTl\STX\SOH\EOT\DC2\ACK\250\NAK\EOT\248\NAK,\n\
    \\r\n\
    \\ENQ\EOTl\STX\SOH\ACK\DC2\EOT\250\NAK\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOTl\STX\SOH\SOH\DC2\EOT\250\NAK\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOTl\STX\SOH\ETX\DC2\EOT\250\NAK\RS\US\n\
    \\f\n\
    \\EOT\EOTl\STX\STX\DC2\EOT\252\NAK\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOTl\STX\STX\EOT\DC2\ACK\252\NAK\EOT\250\NAK \n\
    \\r\n\
    \\ENQ\EOTl\STX\STX\ENQ\DC2\EOT\252\NAK\EOT\t\n\
    \\r\n\
    \\ENQ\EOTl\STX\STX\SOH\DC2\EOT\252\NAK\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTl\STX\STX\ETX\DC2\EOT\252\NAK\NAK\SYN\n\
    \\f\n\
    \\EOT\EOTl\STX\ETX\DC2\EOT\254\NAK\EOT%\n\
    \\SI\n\
    \\ENQ\EOTl\STX\ETX\EOT\DC2\ACK\254\NAK\EOT\252\NAK\ETB\n\
    \\r\n\
    \\ENQ\EOTl\STX\ETX\ACK\DC2\EOT\254\NAK\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOTl\STX\ETX\SOH\DC2\EOT\254\NAK\DC2 \n\
    \\r\n\
    \\ENQ\EOTl\STX\ETX\ETX\DC2\EOT\254\NAK#$\n\
    \\f\n\
    \\EOT\EOTl\STX\EOT\DC2\EOT\128\SYN\EOT \n\
    \\SI\n\
    \\ENQ\EOTl\STX\EOT\EOT\DC2\ACK\128\SYN\EOT\254\NAK%\n\
    \\r\n\
    \\ENQ\EOTl\STX\EOT\ENQ\DC2\EOT\128\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTl\STX\EOT\SOH\DC2\EOT\128\SYN\v\ESC\n\
    \\r\n\
    \\ENQ\EOTl\STX\EOT\ETX\DC2\EOT\128\SYN\RS\US\n\
    \\f\n\
    \\EOT\EOTl\STX\ENQ\DC2\EOT\129\SYN\EOT\US\n\
    \\SI\n\
    \\ENQ\EOTl\STX\ENQ\EOT\DC2\ACK\129\SYN\EOT\128\SYN \n\
    \\r\n\
    \\ENQ\EOTl\STX\ENQ\ENQ\DC2\EOT\129\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTl\STX\ENQ\SOH\DC2\EOT\129\SYN\v\SUB\n\
    \\r\n\
    \\ENQ\EOTl\STX\ENQ\ETX\DC2\EOT\129\SYN\GS\RS\n\
    \\f\n\
    \\STX\EOTm\DC2\ACK\131\SYN\NUL\141\SYN\SOH\n\
    \\v\n\
    \\ETX\EOTm\SOH\DC2\EOT\131\SYN\b\ESC\n\
    \\193\SOH\n\
    \\EOT\EOTm\STX\NUL\DC2\EOT\137\SYN\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\
    \\SI\n\
    \\ENQ\EOTm\STX\NUL\EOT\DC2\ACK\137\SYN\EOT\131\SYN\GS\n\
    \\r\n\
    \\ENQ\EOTm\STX\NUL\ENQ\DC2\EOT\137\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTm\STX\NUL\SOH\DC2\EOT\137\SYN\v\DC2\n\
    \\r\n\
    \\ENQ\EOTm\STX\NUL\ETX\DC2\EOT\137\SYN\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTm\STX\NUL\b\DC2\EOT\137\SYN\ETB+\n\
    \\SO\n\
    \\ACK\EOTm\STX\NUL\b\ACK\DC2\EOT\137\SYN\CAN*\n\
    \\f\n\
    \\EOT\EOTm\STX\SOH\DC2\EOT\138\SYN\EOT\ETB\n\
    \\SI\n\
    \\ENQ\EOTm\STX\SOH\EOT\DC2\ACK\138\SYN\EOT\137\SYN,\n\
    \\r\n\
    \\ENQ\EOTm\STX\SOH\ENQ\DC2\EOT\138\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTm\STX\SOH\SOH\DC2\EOT\138\SYN\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTm\STX\SOH\ETX\DC2\EOT\138\SYN\NAK\SYN\n\
    \\f\n\
    \\EOT\EOTm\STX\STX\DC2\EOT\139\SYN\EOT\GS\n\
    \\SI\n\
    \\ENQ\EOTm\STX\STX\EOT\DC2\ACK\139\SYN\EOT\138\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOTm\STX\STX\ENQ\DC2\EOT\139\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTm\STX\STX\SOH\DC2\EOT\139\SYN\v\CAN\n\
    \\r\n\
    \\ENQ\EOTm\STX\STX\ETX\DC2\EOT\139\SYN\ESC\FS\n\
    \\f\n\
    \\EOT\EOTm\STX\ETX\DC2\EOT\140\SYN\EOT \n\
    \\SI\n\
    \\ENQ\EOTm\STX\ETX\EOT\DC2\ACK\140\SYN\EOT\139\SYN\GS\n\
    \\r\n\
    \\ENQ\EOTm\STX\ETX\ACK\DC2\EOT\140\SYN\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOTm\STX\ETX\SOH\DC2\EOT\140\SYN\DC1\ESC\n\
    \\r\n\
    \\ENQ\EOTm\STX\ETX\ETX\DC2\EOT\140\SYN\RS\US\n\
    \\f\n\
    \\STX\EOTn\DC2\ACK\143\SYN\NUL\161\SYN\SOH\n\
    \\v\n\
    \\ETX\EOTn\SOH\DC2\EOT\143\SYN\b\SI\n\
    \G\n\
    \\EOT\EOTn\STX\NUL\DC2\EOT\145\SYN\EOT\ETB\SUB9 The public key of the node at the start of the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTn\STX\NUL\EOT\DC2\ACK\145\SYN\EOT\143\SYN\DC1\n\
    \\r\n\
    \\ENQ\EOTn\STX\NUL\ENQ\DC2\EOT\145\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTn\STX\NUL\SOH\DC2\EOT\145\SYN\v\DC2\n\
    \\r\n\
    \\ENQ\EOTn\STX\NUL\ETX\DC2\EOT\145\SYN\NAK\SYN\n\
    \5\n\
    \\EOT\EOTn\STX\SOH\DC2\EOT\148\SYN\EOT,\SUB' The unique identifier of the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTn\STX\SOH\EOT\DC2\ACK\148\SYN\EOT\145\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOTn\STX\SOH\ENQ\DC2\EOT\148\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTn\STX\SOH\SOH\DC2\EOT\148\SYN\v\DC2\n\
    \\r\n\
    \\ENQ\EOTn\STX\SOH\ETX\DC2\EOT\148\SYN\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTn\STX\SOH\b\DC2\EOT\148\SYN\ETB+\n\
    \\SO\n\
    \\ACK\EOTn\STX\SOH\b\ACK\DC2\EOT\148\SYN\CAN*\n\
    \I\n\
    \\EOT\EOTn\STX\STX\DC2\EOT\151\SYN\EOT\GS\SUB; The base fee of the channel denominated in millisatoshis.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTn\STX\STX\EOT\DC2\ACK\151\SYN\EOT\148\SYN,\n\
    \\r\n\
    \\ENQ\EOTn\STX\STX\ENQ\DC2\EOT\151\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTn\STX\STX\SOH\DC2\EOT\151\SYN\v\CAN\n\
    \\r\n\
    \\ENQ\EOTn\STX\STX\ETX\DC2\EOT\151\SYN\ESC\FS\n\
    \u\n\
    \\EOT\EOTn\STX\ETX\DC2\EOT\157\SYN\EOT+\SUBg\n\
    \The fee rate of the channel for sending one satoshi across it denominated in\n\
    \millionths of a satoshi.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTn\STX\ETX\EOT\DC2\ACK\157\SYN\EOT\151\SYN\GS\n\
    \\r\n\
    \\ENQ\EOTn\STX\ETX\ENQ\DC2\EOT\157\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTn\STX\ETX\SOH\DC2\EOT\157\SYN\v&\n\
    \\r\n\
    \\ENQ\EOTn\STX\ETX\ETX\DC2\EOT\157\SYN)*\n\
    \3\n\
    \\EOT\EOTn\STX\EOT\DC2\EOT\160\SYN\EOT!\SUB% The time-lock delta of the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTn\STX\EOT\EOT\DC2\ACK\160\SYN\EOT\157\SYN+\n\
    \\r\n\
    \\ENQ\EOTn\STX\EOT\ENQ\DC2\EOT\160\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTn\STX\EOT\SOH\DC2\EOT\160\SYN\v\FS\n\
    \\r\n\
    \\ENQ\EOTn\STX\EOT\ETX\DC2\EOT\160\SYN\US \n\
    \\f\n\
    \\STX\EOTo\DC2\ACK\163\SYN\NUL\169\SYN\SOH\n\
    \\v\n\
    \\ETX\EOTo\SOH\DC2\EOT\163\SYN\b\DC1\n\
    \m\n\
    \\EOT\EOTo\STX\NUL\DC2\EOT\168\SYN\EOT#\SUB_\n\
    \A list of hop hints that when chained together can assist in reaching a\n\
    \specific destination.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTo\STX\NUL\EOT\DC2\EOT\168\SYN\EOT\f\n\
    \\r\n\
    \\ENQ\EOTo\STX\NUL\ACK\DC2\EOT\168\SYN\r\DC4\n\
    \\r\n\
    \\ENQ\EOTo\STX\NUL\SOH\DC2\EOT\168\SYN\NAK\RS\n\
    \\r\n\
    \\ENQ\EOTo\STX\NUL\ETX\DC2\EOT\168\SYN!\"\n\
    \\f\n\
    \\STX\EOTp\DC2\ACK\171\SYN\NUL\197\ETB\SOH\n\
    \\v\n\
    \\ETX\EOTp\SOH\DC2\EOT\171\SYN\b\SI\n\
    \\253\SOH\n\
    \\EOT\EOTp\STX\NUL\DC2\EOT\178\SYN\EOT\DC4\SUB\238\SOH\n\
    \An optional memo to attach along with the invoice. Used for record keeping\n\
    \purposes for the invoice's creator, and will also be set in the description\n\
    \field of the encoded payment request if the description_hash field is not\n\
    \being used.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\NUL\EOT\DC2\ACK\178\SYN\EOT\171\SYN\DC1\n\
    \\r\n\
    \\ENQ\EOTp\STX\NUL\ENQ\DC2\EOT\178\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\NUL\SOH\DC2\EOT\178\SYN\v\SI\n\
    \\r\n\
    \\ENQ\EOTp\STX\NUL\ETX\DC2\EOT\178\SYN\DC2\DC3\n\
    \\v\n\
    \\ETX\EOTp\t\DC2\EOT\180\SYN\EOT\SI\n\
    \\f\n\
    \\EOT\EOTp\t\NUL\DC2\EOT\180\SYN\r\SO\n\
    \\r\n\
    \\ENQ\EOTp\t\NUL\SOH\DC2\EOT\180\SYN\r\SO\n\
    \\r\n\
    \\ENQ\EOTp\t\NUL\STX\DC2\EOT\180\SYN\r\SO\n\
    \\175\SOH\n\
    \\EOT\EOTp\STX\SOH\DC2\EOT\187\SYN\EOT\EM\SUB\160\SOH\n\
    \The hex-encoded preimage (32 byte) which will allow settling an incoming\n\
    \HTLC payable to this preimage. When using REST, this field must be encoded\n\
    \as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\SOH\EOT\DC2\ACK\187\SYN\EOT\180\SYN\SI\n\
    \\r\n\
    \\ENQ\EOTp\STX\SOH\ENQ\DC2\EOT\187\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\SOH\SOH\DC2\EOT\187\SYN\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTp\STX\SOH\ETX\DC2\EOT\187\SYN\ETB\CAN\n\
    \`\n\
    \\EOT\EOTp\STX\STX\DC2\EOT\193\SYN\EOT\NAK\SUBR\n\
    \The hash of the preimage. When using REST, this field must be encoded as\n\
    \base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\STX\EOT\DC2\ACK\193\SYN\EOT\187\SYN\EM\n\
    \\r\n\
    \\ENQ\EOTp\STX\STX\ENQ\DC2\EOT\193\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\STX\SOH\DC2\EOT\193\SYN\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTp\STX\STX\ETX\DC2\EOT\193\SYN\DC3\DC4\n\
    \n\n\
    \\EOT\EOTp\STX\ETX\DC2\EOT\200\SYN\EOT\DC4\SUB`\n\
    \The value of this invoice in satoshis\n\
    \\n\
    \The fields value and value_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\ETX\EOT\DC2\ACK\200\SYN\EOT\193\SYN\NAK\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETX\ENQ\DC2\EOT\200\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETX\SOH\DC2\EOT\200\SYN\n\
    \\SI\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETX\ETX\DC2\EOT\200\SYN\DC2\DC3\n\
    \s\n\
    \\EOT\EOTp\STX\EOT\DC2\EOT\207\SYN\EOT\SUB\SUBe\n\
    \The value of this invoice in millisatoshis\n\
    \\n\
    \The fields value and value_msat are mutually exclusive.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\EOT\EOT\DC2\ACK\207\SYN\EOT\200\SYN\DC4\n\
    \\r\n\
    \\ENQ\EOTp\STX\EOT\ENQ\DC2\EOT\207\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\EOT\SOH\DC2\EOT\207\SYN\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTp\STX\EOT\ETX\DC2\EOT\207\SYN\ETB\EM\n\
    \7\n\
    \\EOT\EOTp\STX\ENQ\DC2\EOT\210\SYN\EOT)\SUB) Whether this invoice has been fulfilled\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\ENQ\EOT\DC2\ACK\210\SYN\EOT\207\SYN\SUB\n\
    \\r\n\
    \\ENQ\EOTp\STX\ENQ\ENQ\DC2\EOT\210\SYN\EOT\b\n\
    \\r\n\
    \\ENQ\EOTp\STX\ENQ\SOH\DC2\EOT\210\SYN\t\DLE\n\
    \\r\n\
    \\ENQ\EOTp\STX\ENQ\ETX\DC2\EOT\210\SYN\DC3\DC4\n\
    \\r\n\
    \\ENQ\EOTp\STX\ENQ\b\DC2\EOT\210\SYN\NAK(\n\
    \\SO\n\
    \\ACK\EOTp\STX\ENQ\b\ETX\DC2\EOT\210\SYN\SYN'\n\
    \-\n\
    \\EOT\EOTp\STX\ACK\DC2\EOT\213\SYN\EOT\FS\SUB\US When this invoice was created\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\ACK\EOT\DC2\ACK\213\SYN\EOT\210\SYN)\n\
    \\r\n\
    \\ENQ\EOTp\STX\ACK\ENQ\DC2\EOT\213\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\ACK\SOH\DC2\EOT\213\SYN\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTp\STX\ACK\ETX\DC2\EOT\213\SYN\SUB\ESC\n\
    \-\n\
    \\EOT\EOTp\STX\a\DC2\EOT\216\SYN\EOT\SUB\SUB\US When this invoice was settled\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\a\EOT\DC2\ACK\216\SYN\EOT\213\SYN\FS\n\
    \\r\n\
    \\ENQ\EOTp\STX\a\ENQ\DC2\EOT\216\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\a\SOH\DC2\EOT\216\SYN\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOTp\STX\a\ETX\DC2\EOT\216\SYN\CAN\EM\n\
    \\188\SOH\n\
    \\EOT\EOTp\STX\b\DC2\EOT\223\SYN\EOT\US\SUB\173\SOH\n\
    \A bare-bones invoice for a payment within the Lightning Network. With the\n\
    \details of the invoice, the sender has all the data necessary to send a\n\
    \payment to the recipient.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\b\EOT\DC2\ACK\223\SYN\EOT\216\SYN\SUB\n\
    \\r\n\
    \\ENQ\EOTp\STX\b\ENQ\DC2\EOT\223\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\b\SOH\DC2\EOT\223\SYN\v\SUB\n\
    \\r\n\
    \\ENQ\EOTp\STX\b\ETX\DC2\EOT\223\SYN\GS\RS\n\
    \\250\SOH\n\
    \\EOT\EOTp\STX\t\DC2\EOT\231\SYN\EOT \SUB\235\SOH\n\
    \Hash (SHA-256) of a description of the payment. Used if the description of\n\
    \payment (memo) is too long to naturally fit within the description field\n\
    \of an encoded payment request. When using REST, this field must be encoded\n\
    \as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\t\EOT\DC2\ACK\231\SYN\EOT\223\SYN\US\n\
    \\r\n\
    \\ENQ\EOTp\STX\t\ENQ\DC2\EOT\231\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\t\SOH\DC2\EOT\231\SYN\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOTp\STX\t\ETX\DC2\EOT\231\SYN\GS\US\n\
    \Q\n\
    \\EOT\EOTp\STX\n\
    \\DC2\EOT\234\SYN\EOT\SYN\SUBC Payment request expiry time in seconds. Default is 3600 (1 hour).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\n\
    \\EOT\DC2\ACK\234\SYN\EOT\231\SYN \n\
    \\r\n\
    \\ENQ\EOTp\STX\n\
    \\ENQ\DC2\EOT\234\SYN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\n\
    \\SOH\DC2\EOT\234\SYN\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTp\STX\n\
    \\ETX\DC2\EOT\234\SYN\DC3\NAK\n\
    \*\n\
    \\EOT\EOTp\STX\v\DC2\EOT\237\SYN\EOT\RS\SUB\FS Fallback on-chain address.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\v\EOT\DC2\ACK\237\SYN\EOT\234\SYN\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\v\ENQ\DC2\EOT\237\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\v\SOH\DC2\EOT\237\SYN\v\CAN\n\
    \\r\n\
    \\ENQ\EOTp\STX\v\ETX\DC2\EOT\237\SYN\ESC\GS\n\
    \U\n\
    \\EOT\EOTp\STX\f\DC2\EOT\240\SYN\EOT\FS\SUBG Delta to use for the time-lock of the CLTV extended to the final hop.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\f\EOT\DC2\ACK\240\SYN\EOT\237\SYN\RS\n\
    \\r\n\
    \\ENQ\EOTp\STX\f\ENQ\DC2\EOT\240\SYN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\f\SOH\DC2\EOT\240\SYN\v\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\f\ETX\DC2\EOT\240\SYN\EM\ESC\n\
    \o\n\
    \\EOT\EOTp\STX\r\DC2\EOT\246\SYN\EOT(\SUBa\n\
    \Route hints that can each be individually used to assist in reaching the\n\
    \invoice's destination.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\r\EOT\DC2\EOT\246\SYN\EOT\f\n\
    \\r\n\
    \\ENQ\EOTp\STX\r\ACK\DC2\EOT\246\SYN\r\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\r\SOH\DC2\EOT\246\SYN\ETB\"\n\
    \\r\n\
    \\ENQ\EOTp\STX\r\ETX\DC2\EOT\246\SYN%'\n\
    \W\n\
    \\EOT\EOTp\STX\SO\DC2\EOT\249\SYN\EOT\SYN\SUBI Whether this invoice should include routing hints for private channels.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\SO\EOT\DC2\ACK\249\SYN\EOT\246\SYN(\n\
    \\r\n\
    \\ENQ\EOTp\STX\SO\ENQ\DC2\EOT\249\SYN\EOT\b\n\
    \\r\n\
    \\ENQ\EOTp\STX\SO\SOH\DC2\EOT\249\SYN\t\DLE\n\
    \\r\n\
    \\ENQ\EOTp\STX\SO\ETX\DC2\EOT\249\SYN\DC3\NAK\n\
    \\150\STX\n\
    \\EOT\EOTp\STX\SI\DC2\EOT\129\ETB\EOT\SUB\SUB\135\STX\n\
    \The \"add\" index of this invoice. Each newly created invoice will increment\n\
    \this index making it monotonically increasing. Callers to the\n\
    \SubscribeInvoices call can use this to instantly get notified of all added\n\
    \invoices with an add_index greater than this one.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\SI\EOT\DC2\ACK\129\ETB\EOT\249\SYN\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\SI\ENQ\DC2\EOT\129\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\SI\SOH\DC2\EOT\129\ETB\v\DC4\n\
    \\r\n\
    \\ENQ\EOTp\STX\SI\ETX\DC2\EOT\129\ETB\ETB\EM\n\
    \\158\STX\n\
    \\EOT\EOTp\STX\DLE\DC2\EOT\137\ETB\EOT\GS\SUB\143\STX\n\
    \The \"settle\" index of this invoice. Each newly settled invoice will\n\
    \increment this index making it monotonically increasing. Callers to the\n\
    \SubscribeInvoices call can use this to instantly get notified of all\n\
    \settled invoices with an settle_index greater than this one.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\DLE\EOT\DC2\ACK\137\ETB\EOT\129\ETB\SUB\n\
    \\r\n\
    \\ENQ\EOTp\STX\DLE\ENQ\DC2\EOT\137\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\DLE\SOH\DC2\EOT\137\ETB\v\ETB\n\
    \\r\n\
    \\ENQ\EOTp\STX\DLE\ETX\DC2\EOT\137\ETB\SUB\FS\n\
    \>\n\
    \\EOT\EOTp\STX\DC1\DC2\EOT\140\ETB\EOT,\SUB0 Deprecated, use amt_paid_sat or amt_paid_msat.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\DC1\EOT\DC2\ACK\140\ETB\EOT\137\ETB\GS\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC1\ENQ\DC2\EOT\140\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC1\SOH\DC2\EOT\140\ETB\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC1\ETX\DC2\EOT\140\ETB\NAK\ETB\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC1\b\DC2\EOT\140\ETB\CAN+\n\
    \\SO\n\
    \\ACK\EOTp\STX\DC1\b\ETX\DC2\EOT\140\ETB\EM*\n\
    \\140\ETX\n\
    \\EOT\EOTp\STX\DC2\DC2\EOT\150\ETB\EOT\FS\SUB\253\STX\n\
    \The amount that was accepted for this invoice, in satoshis. This will ONLY\n\
    \be set if this invoice has been settled. We provide this field as if the\n\
    \invoice was created with a zero value, then we need to record what amount\n\
    \was ultimately accepted. Additionally, it's possible that the sender paid\n\
    \MORE that was specified in the original invoice. So we'll record that here\n\
    \as well.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\DC2\EOT\DC2\ACK\150\ETB\EOT\140\ETB,\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC2\ENQ\DC2\EOT\150\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC2\SOH\DC2\EOT\150\ETB\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC2\ETX\DC2\EOT\150\ETB\EM\ESC\n\
    \\145\ETX\n\
    \\EOT\EOTp\STX\DC3\DC2\EOT\160\ETB\EOT\GS\SUB\130\ETX\n\
    \The amount that was accepted for this invoice, in millisatoshis. This will\n\
    \ONLY be set if this invoice has been settled. We provide this field as if\n\
    \the invoice was created with a zero value, then we need to record what\n\
    \amount was ultimately accepted. Additionally, it's possible that the sender\n\
    \paid MORE that was specified in the original invoice. So we'll record that\n\
    \here as well.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\DC3\EOT\DC2\ACK\160\ETB\EOT\150\ETB\FS\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC3\ENQ\DC2\EOT\160\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC3\SOH\DC2\EOT\160\ETB\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC3\ETX\DC2\EOT\160\ETB\SUB\FS\n\
    \\SO\n\
    \\EOT\EOTp\EOT\NUL\DC2\ACK\162\ETB\EOT\167\ETB\ENQ\n\
    \\r\n\
    \\ENQ\EOTp\EOT\NUL\SOH\DC2\EOT\162\ETB\t\NAK\n\
    \\SO\n\
    \\ACK\EOTp\EOT\NUL\STX\NUL\DC2\EOT\163\ETB\b\DC1\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\NUL\SOH\DC2\EOT\163\ETB\b\f\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\NUL\STX\DC2\EOT\163\ETB\SI\DLE\n\
    \\SO\n\
    \\ACK\EOTp\EOT\NUL\STX\SOH\DC2\EOT\164\ETB\b\DC4\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\SOH\SOH\DC2\EOT\164\ETB\b\SI\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\SOH\STX\DC2\EOT\164\ETB\DC2\DC3\n\
    \\SO\n\
    \\ACK\EOTp\EOT\NUL\STX\STX\DC2\EOT\165\ETB\b\NAK\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\STX\SOH\DC2\EOT\165\ETB\b\DLE\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\STX\STX\DC2\EOT\165\ETB\DC3\DC4\n\
    \\SO\n\
    \\ACK\EOTp\EOT\NUL\STX\ETX\DC2\EOT\166\ETB\b\NAK\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\ETX\SOH\DC2\EOT\166\ETB\b\DLE\n\
    \\SI\n\
    \\a\EOTp\EOT\NUL\STX\ETX\STX\DC2\EOT\166\ETB\DC3\DC4\n\
    \,\n\
    \\EOT\EOTp\STX\DC4\DC2\EOT\172\ETB\EOT\FS\SUB\RS\n\
    \The state the invoice is in.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\DC4\EOT\DC2\ACK\172\ETB\EOT\167\ETB\ENQ\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC4\ACK\DC2\EOT\172\ETB\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC4\SOH\DC2\EOT\172\ETB\DC1\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\DC4\ETX\DC2\EOT\172\ETB\EM\ESC\n\
    \D\n\
    \\EOT\EOTp\STX\NAK\DC2\EOT\175\ETB\EOT$\SUB6 List of HTLCs paying to this invoice [EXPERIMENTAL].\n\
    \\n\
    \\r\n\
    \\ENQ\EOTp\STX\NAK\EOT\DC2\EOT\175\ETB\EOT\f\n\
    \\r\n\
    \\ENQ\EOTp\STX\NAK\ACK\DC2\EOT\175\ETB\r\CAN\n\
    \\r\n\
    \\ENQ\EOTp\STX\NAK\SOH\DC2\EOT\175\ETB\EM\RS\n\
    \\r\n\
    \\ENQ\EOTp\STX\NAK\ETX\DC2\EOT\175\ETB!#\n\
    \;\n\
    \\EOT\EOTp\STX\SYN\DC2\EOT\178\ETB\EOT'\SUB- List of features advertised on the invoice.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\SYN\EOT\DC2\ACK\178\ETB\EOT\175\ETB$\n\
    \\r\n\
    \\ENQ\EOTp\STX\SYN\ACK\DC2\EOT\178\ETB\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOTp\STX\SYN\SOH\DC2\EOT\178\ETB\EM!\n\
    \\r\n\
    \\ENQ\EOTp\STX\SYN\ETX\DC2\EOT\178\ETB$&\n\
    \l\n\
    \\EOT\EOTp\STX\ETB\DC2\EOT\184\ETB\EOT\EM\SUB^\n\
    \Indicates if this invoice was a spontaneous payment that arrived via keysend\n\
    \[EXPERIMENTAL].\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\ETB\EOT\DC2\ACK\184\ETB\EOT\178\ETB'\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETB\ENQ\DC2\EOT\184\ETB\EOT\b\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETB\SOH\DC2\EOT\184\ETB\t\DC3\n\
    \\r\n\
    \\ENQ\EOTp\STX\ETB\ETX\DC2\EOT\184\ETB\SYN\CAN\n\
    \\188\SOH\n\
    \\EOT\EOTp\STX\CAN\DC2\EOT\191\ETB\EOT\FS\SUB\173\SOH\n\
    \The payment address of this invoice. This value will be used in MPP\n\
    \payments, and also for newer invoies that always require the MPP paylaod\n\
    \for added end-to-end security.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\CAN\EOT\DC2\ACK\191\ETB\EOT\184\ETB\EM\n\
    \\r\n\
    \\ENQ\EOTp\STX\CAN\ENQ\DC2\EOT\191\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTp\STX\CAN\SOH\DC2\EOT\191\ETB\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTp\STX\CAN\ETX\DC2\EOT\191\ETB\EM\ESC\n\
    \>\n\
    \\EOT\EOTp\STX\EM\DC2\EOT\196\ETB\EOT\NAK\SUB0\n\
    \Signals whether or not this is an AMP invoice.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTp\STX\EM\EOT\DC2\ACK\196\ETB\EOT\191\ETB\FS\n\
    \\r\n\
    \\ENQ\EOTp\STX\EM\ENQ\DC2\EOT\196\ETB\EOT\b\n\
    \\r\n\
    \\ENQ\EOTp\STX\EM\SOH\DC2\EOT\196\ETB\t\SI\n\
    \\r\n\
    \\ENQ\EOTp\STX\EM\ETX\DC2\EOT\196\ETB\DC2\DC4\n\
    \\f\n\
    \\STX\ENQ\ACK\DC2\ACK\199\ETB\NUL\203\ETB\SOH\n\
    \\v\n\
    \\ETX\ENQ\ACK\SOH\DC2\EOT\199\ETB\ENQ\NAK\n\
    \\f\n\
    \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\200\ETB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\200\ETB\EOT\f\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\200\ETB\SI\DLE\n\
    \\f\n\
    \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\201\ETB\EOT\DLE\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\201\ETB\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\201\ETB\SO\SI\n\
    \\f\n\
    \\EOT\ENQ\ACK\STX\STX\DC2\EOT\202\ETB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\202\ETB\EOT\f\n\
    \\r\n\
    \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\202\ETB\SI\DLE\n\
    \:\n\
    \\STX\EOTq\DC2\ACK\206\ETB\NUL\239\ETB\SOH\SUB, Details of an HTLC that paid to an invoice\n\
    \\n\
    \\v\n\
    \\ETX\EOTq\SOH\DC2\EOT\206\ETB\b\DC3\n\
    \B\n\
    \\EOT\EOTq\STX\NUL\DC2\EOT\208\ETB\EOT,\SUB4 Short channel id over which the htlc was received.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\NUL\EOT\DC2\ACK\208\ETB\EOT\206\ETB\NAK\n\
    \\r\n\
    \\ENQ\EOTq\STX\NUL\ENQ\DC2\EOT\208\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTq\STX\NUL\SOH\DC2\EOT\208\ETB\v\DC2\n\
    \\r\n\
    \\ENQ\EOTq\STX\NUL\ETX\DC2\EOT\208\ETB\NAK\SYN\n\
    \\r\n\
    \\ENQ\EOTq\STX\NUL\b\DC2\EOT\208\ETB\ETB+\n\
    \\SO\n\
    \\ACK\EOTq\STX\NUL\b\ACK\DC2\EOT\208\ETB\CAN*\n\
    \:\n\
    \\EOT\EOTq\STX\SOH\DC2\EOT\211\ETB\EOT\SUB\SUB, Index identifying the htlc on the channel.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\SOH\EOT\DC2\ACK\211\ETB\EOT\208\ETB,\n\
    \\r\n\
    \\ENQ\EOTq\STX\SOH\ENQ\DC2\EOT\211\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTq\STX\SOH\SOH\DC2\EOT\211\ETB\v\NAK\n\
    \\r\n\
    \\ENQ\EOTq\STX\SOH\ETX\DC2\EOT\211\ETB\CAN\EM\n\
    \/\n\
    \\EOT\EOTq\STX\STX\DC2\EOT\214\ETB\EOT\CAN\SUB! The amount of the htlc in msat.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\STX\EOT\DC2\ACK\214\ETB\EOT\211\ETB\SUB\n\
    \\r\n\
    \\ENQ\EOTq\STX\STX\ENQ\DC2\EOT\214\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTq\STX\STX\SOH\DC2\EOT\214\ETB\v\DC3\n\
    \\r\n\
    \\ENQ\EOTq\STX\STX\ETX\DC2\EOT\214\ETB\SYN\ETB\n\
    \=\n\
    \\EOT\EOTq\STX\ETX\DC2\EOT\217\ETB\EOT\FS\SUB/ Block height at which this htlc was accepted.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\ETX\EOT\DC2\ACK\217\ETB\EOT\214\ETB\CAN\n\
    \\r\n\
    \\ENQ\EOTq\STX\ETX\ENQ\DC2\EOT\217\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTq\STX\ETX\SOH\DC2\EOT\217\ETB\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTq\STX\ETX\ETX\DC2\EOT\217\ETB\SUB\ESC\n\
    \5\n\
    \\EOT\EOTq\STX\EOT\DC2\EOT\220\ETB\EOT\SUB\SUB' Time at which this htlc was accepted.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\EOT\EOT\DC2\ACK\220\ETB\EOT\217\ETB\FS\n\
    \\r\n\
    \\ENQ\EOTq\STX\EOT\ENQ\DC2\EOT\220\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTq\STX\EOT\SOH\DC2\EOT\220\ETB\n\
    \\NAK\n\
    \\r\n\
    \\ENQ\EOTq\STX\EOT\ETX\DC2\EOT\220\ETB\CAN\EM\n\
    \@\n\
    \\EOT\EOTq\STX\ENQ\DC2\EOT\223\ETB\EOT\ESC\SUB2 Time at which this htlc was settled or canceled.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\ENQ\EOT\DC2\ACK\223\ETB\EOT\220\ETB\SUB\n\
    \\r\n\
    \\ENQ\EOTq\STX\ENQ\ENQ\DC2\EOT\223\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTq\STX\ENQ\SOH\DC2\EOT\223\ETB\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTq\STX\ENQ\ETX\DC2\EOT\223\ETB\EM\SUB\n\
    \8\n\
    \\EOT\EOTq\STX\ACK\DC2\EOT\226\ETB\EOT\FS\SUB* Block height at which this htlc expires.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\ACK\EOT\DC2\ACK\226\ETB\EOT\223\ETB\ESC\n\
    \\r\n\
    \\ENQ\EOTq\STX\ACK\ENQ\DC2\EOT\226\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTq\STX\ACK\SOH\DC2\EOT\226\ETB\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTq\STX\ACK\ETX\DC2\EOT\226\ETB\SUB\ESC\n\
    \-\n\
    \\EOT\EOTq\STX\a\DC2\EOT\229\ETB\EOT\US\SUB\US Current state the htlc is in.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\a\EOT\DC2\ACK\229\ETB\EOT\226\ETB\FS\n\
    \\r\n\
    \\ENQ\EOTq\STX\a\ACK\DC2\EOT\229\ETB\EOT\DC4\n\
    \\r\n\
    \\ENQ\EOTq\STX\a\SOH\DC2\EOT\229\ETB\NAK\SUB\n\
    \\r\n\
    \\ENQ\EOTq\STX\a\ETX\DC2\EOT\229\ETB\GS\RS\n\
    \#\n\
    \\EOT\EOTq\STX\b\DC2\EOT\232\ETB\EOT*\SUB\NAK Custom tlv records.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\b\EOT\DC2\ACK\232\ETB\EOT\229\ETB\US\n\
    \\r\n\
    \\ENQ\EOTq\STX\b\ACK\DC2\EOT\232\ETB\EOT\SYN\n\
    \\r\n\
    \\ENQ\EOTq\STX\b\SOH\DC2\EOT\232\ETB\ETB%\n\
    \\r\n\
    \\ENQ\EOTq\STX\b\ETX\DC2\EOT\232\ETB()\n\
    \<\n\
    \\EOT\EOTq\STX\t\DC2\EOT\235\ETB\EOT#\SUB. The total amount of the mpp payment in msat.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\t\EOT\DC2\ACK\235\ETB\EOT\232\ETB*\n\
    \\r\n\
    \\ENQ\EOTq\STX\t\ENQ\DC2\EOT\235\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTq\STX\t\SOH\DC2\EOT\235\ETB\v\GS\n\
    \\r\n\
    \\ENQ\EOTq\STX\t\ETX\DC2\EOT\235\ETB \"\n\
    \U\n\
    \\EOT\EOTq\STX\n\
    \\DC2\EOT\238\ETB\EOT\DC1\SUBG Details relevant to AMP HTLCs, only populated if this is an AMP HTLC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTq\STX\n\
    \\EOT\DC2\ACK\238\ETB\EOT\235\ETB#\n\
    \\r\n\
    \\ENQ\EOTq\STX\n\
    \\ACK\DC2\EOT\238\ETB\EOT\a\n\
    \\r\n\
    \\ENQ\EOTq\STX\n\
    \\SOH\DC2\EOT\238\ETB\b\v\n\
    \\r\n\
    \\ENQ\EOTq\STX\n\
    \\ETX\DC2\EOT\238\ETB\SO\DLE\n\
    \.\n\
    \\STX\EOTr\DC2\ACK\242\ETB\NUL\133\CAN\SOH\SUB  Details specific to AMP HTLCs.\n\
    \\n\
    \\v\n\
    \\ETX\EOTr\SOH\DC2\EOT\242\ETB\b\v\n\
    \s\n\
    \\EOT\EOTr\STX\NUL\DC2\EOT\245\ETB\EOT\EM\SUBe An n-of-n secret share of the root seed from which child payment hashes\n\
    \ and preimages are derived.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTr\STX\NUL\EOT\DC2\ACK\245\ETB\EOT\242\ETB\r\n\
    \\r\n\
    \\ENQ\EOTr\STX\NUL\ENQ\DC2\EOT\245\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTr\STX\NUL\SOH\DC2\EOT\245\ETB\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTr\STX\NUL\ETX\DC2\EOT\245\ETB\ETB\CAN\n\
    \I\n\
    \\EOT\EOTr\STX\SOH\DC2\EOT\248\ETB\EOT\NAK\SUB; An identifier for the HTLC set that this HTLC belongs to.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTr\STX\SOH\EOT\DC2\ACK\248\ETB\EOT\245\ETB\EM\n\
    \\r\n\
    \\ENQ\EOTr\STX\SOH\ENQ\DC2\EOT\248\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTr\STX\SOH\SOH\DC2\EOT\248\ETB\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTr\STX\SOH\ETX\DC2\EOT\248\ETB\DC3\DC4\n\
    \e\n\
    \\EOT\EOTr\STX\STX\DC2\EOT\252\ETB\EOT\ESC\SUBW A nonce used to randomize the child preimage and child hash from a given\n\
    \ root_share.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTr\STX\STX\EOT\DC2\ACK\252\ETB\EOT\248\ETB\NAK\n\
    \\r\n\
    \\ENQ\EOTr\STX\STX\ENQ\DC2\EOT\252\ETB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTr\STX\STX\SOH\DC2\EOT\252\ETB\v\SYN\n\
    \\r\n\
    \\ENQ\EOTr\STX\STX\ETX\DC2\EOT\252\ETB\EM\SUB\n\
    \1\n\
    \\EOT\EOTr\STX\ETX\DC2\EOT\255\ETB\EOT\DC3\SUB# The payment hash of the AMP HTLC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTr\STX\ETX\EOT\DC2\ACK\255\ETB\EOT\252\ETB\ESC\n\
    \\r\n\
    \\ENQ\EOTr\STX\ETX\ENQ\DC2\EOT\255\ETB\EOT\t\n\
    \\r\n\
    \\ENQ\EOTr\STX\ETX\SOH\DC2\EOT\255\ETB\n\
    \\SO\n\
    \\r\n\
    \\ENQ\EOTr\STX\ETX\ETX\DC2\EOT\255\ETB\DC1\DC2\n\
    \\163\SOH\n\
    \\EOT\EOTr\STX\EOT\DC2\EOT\132\CAN\EOT\ETB\SUB\148\SOH The preimage used to settle this AMP htlc. This field will only be\n\
    \ populated if the invoice is in InvoiceState_ACCEPTED or\n\
    \ InvoiceState_SETTLED.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTr\STX\EOT\EOT\DC2\ACK\132\CAN\EOT\255\ETB\DC3\n\
    \\r\n\
    \\ENQ\EOTr\STX\EOT\ENQ\DC2\EOT\132\CAN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTr\STX\EOT\SOH\DC2\EOT\132\CAN\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTr\STX\EOT\ETX\DC2\EOT\132\CAN\NAK\SYN\n\
    \\f\n\
    \\STX\EOTs\DC2\ACK\135\CAN\NUL\159\CAN\SOH\n\
    \\v\n\
    \\ETX\EOTs\SOH\DC2\EOT\135\CAN\b\SUB\n\
    \\f\n\
    \\EOT\EOTs\STX\NUL\DC2\EOT\136\CAN\EOT\NAK\n\
    \\SI\n\
    \\ENQ\EOTs\STX\NUL\EOT\DC2\ACK\136\CAN\EOT\135\CAN\FS\n\
    \\r\n\
    \\ENQ\EOTs\STX\NUL\ENQ\DC2\EOT\136\CAN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTs\STX\NUL\SOH\DC2\EOT\136\CAN\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTs\STX\NUL\ETX\DC2\EOT\136\CAN\DC3\DC4\n\
    \\188\SOH\n\
    \\EOT\EOTs\STX\SOH\DC2\EOT\143\CAN\EOT\US\SUB\173\SOH\n\
    \A bare-bones invoice for a payment within the Lightning Network. With the\n\
    \details of the invoice, the sender has all the data necessary to send a\n\
    \payment to the recipient.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTs\STX\SOH\EOT\DC2\ACK\143\CAN\EOT\136\CAN\NAK\n\
    \\r\n\
    \\ENQ\EOTs\STX\SOH\ENQ\DC2\EOT\143\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTs\STX\SOH\SOH\DC2\EOT\143\CAN\v\SUB\n\
    \\r\n\
    \\ENQ\EOTs\STX\SOH\ETX\DC2\EOT\143\CAN\GS\RS\n\
    \\150\STX\n\
    \\EOT\EOTs\STX\STX\DC2\EOT\151\CAN\EOT\SUB\SUB\135\STX\n\
    \The \"add\" index of this invoice. Each newly created invoice will increment\n\
    \this index making it monotonically increasing. Callers to the\n\
    \SubscribeInvoices call can use this to instantly get notified of all added\n\
    \invoices with an add_index greater than this one.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTs\STX\STX\EOT\DC2\ACK\151\CAN\EOT\143\CAN\US\n\
    \\r\n\
    \\ENQ\EOTs\STX\STX\ENQ\DC2\EOT\151\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTs\STX\STX\SOH\DC2\EOT\151\CAN\v\DC4\n\
    \\r\n\
    \\ENQ\EOTs\STX\STX\ETX\DC2\EOT\151\CAN\ETB\EM\n\
    \\163\SOH\n\
    \\EOT\EOTs\STX\ETX\DC2\EOT\158\CAN\EOT\FS\SUB\148\SOH\n\
    \The payment address of the generated invoice. This value should be used\n\
    \in all payments for this invoice as we require it for end to end\n\
    \security.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTs\STX\ETX\EOT\DC2\ACK\158\CAN\EOT\151\CAN\SUB\n\
    \\r\n\
    \\ENQ\EOTs\STX\ETX\ENQ\DC2\EOT\158\CAN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTs\STX\ETX\SOH\DC2\EOT\158\CAN\n\
    \\SYN\n\
    \\r\n\
    \\ENQ\EOTs\STX\ETX\ETX\DC2\EOT\158\CAN\EM\ESC\n\
    \\f\n\
    \\STX\EOTt\DC2\ACK\160\CAN\NUL\174\CAN\SOH\n\
    \\v\n\
    \\ETX\EOTt\SOH\DC2\EOT\160\CAN\b\DC3\n\
    \\238\SOH\n\
    \\EOT\EOTt\STX\NUL\DC2\EOT\167\CAN\EOT.\SUB\223\SOH\n\
    \The hex-encoded payment hash of the invoice to be looked up. The passed\n\
    \payment hash must be exactly 32 bytes, otherwise an error is returned.\n\
    \Deprecated now that the REST gateway supports base64 encoding of bytes\n\
    \fields.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTt\STX\NUL\EOT\DC2\ACK\167\CAN\EOT\160\CAN\NAK\n\
    \\r\n\
    \\ENQ\EOTt\STX\NUL\ENQ\DC2\EOT\167\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTt\STX\NUL\SOH\DC2\EOT\167\CAN\v\NAK\n\
    \\r\n\
    \\ENQ\EOTt\STX\NUL\ETX\DC2\EOT\167\CAN\CAN\EM\n\
    \\r\n\
    \\ENQ\EOTt\STX\NUL\b\DC2\EOT\167\CAN\SUB-\n\
    \\SO\n\
    \\ACK\EOTt\STX\NUL\b\ETX\DC2\EOT\167\CAN\ESC,\n\
    \w\n\
    \\EOT\EOTt\STX\SOH\DC2\EOT\173\CAN\EOT\NAK\SUBi\n\
    \The payment hash of the invoice to be looked up. When using REST, this field\n\
    \must be encoded as base64.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTt\STX\SOH\EOT\DC2\ACK\173\CAN\EOT\167\CAN.\n\
    \\r\n\
    \\ENQ\EOTt\STX\SOH\ENQ\DC2\EOT\173\CAN\EOT\t\n\
    \\r\n\
    \\ENQ\EOTt\STX\SOH\SOH\DC2\EOT\173\CAN\n\
    \\DLE\n\
    \\r\n\
    \\ENQ\EOTt\STX\SOH\ETX\DC2\EOT\173\CAN\DC3\DC4\n\
    \\f\n\
    \\STX\EOTu\DC2\ACK\176\CAN\NUL\197\CAN\SOH\n\
    \\v\n\
    \\ETX\EOTu\SOH\DC2\EOT\176\CAN\b\SUB\n\
    \m\n\
    \\EOT\EOTu\STX\NUL\DC2\EOT\181\CAN\EOT\SUB\SUB_\n\
    \If set, only invoices that are not settled and not canceled will be returned\n\
    \in the response.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTu\STX\NUL\EOT\DC2\ACK\181\CAN\EOT\176\CAN\FS\n\
    \\r\n\
    \\ENQ\EOTu\STX\NUL\ENQ\DC2\EOT\181\CAN\EOT\b\n\
    \\r\n\
    \\ENQ\EOTu\STX\NUL\SOH\DC2\EOT\181\CAN\t\NAK\n\
    \\r\n\
    \\ENQ\EOTu\STX\NUL\ETX\DC2\EOT\181\CAN\CAN\EM\n\
    \\160\SOH\n\
    \\EOT\EOTu\STX\SOH\DC2\EOT\187\CAN\EOT\FS\SUB\145\SOH\n\
    \The index of an invoice that will be used as either the start or end of a\n\
    \query to determine which invoices should be returned in the response.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTu\STX\SOH\EOT\DC2\ACK\187\CAN\EOT\181\CAN\SUB\n\
    \\r\n\
    \\ENQ\EOTu\STX\SOH\ENQ\DC2\EOT\187\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTu\STX\SOH\SOH\DC2\EOT\187\CAN\v\ETB\n\
    \\r\n\
    \\ENQ\EOTu\STX\SOH\ETX\DC2\EOT\187\CAN\SUB\ESC\n\
    \S\n\
    \\EOT\EOTu\STX\STX\DC2\EOT\190\CAN\EOT \SUBE The max number of invoices to return in the response to this query.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTu\STX\STX\EOT\DC2\ACK\190\CAN\EOT\187\CAN\FS\n\
    \\r\n\
    \\ENQ\EOTu\STX\STX\ENQ\DC2\EOT\190\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTu\STX\STX\SOH\DC2\EOT\190\CAN\v\ESC\n\
    \\r\n\
    \\ENQ\EOTu\STX\STX\ETX\DC2\EOT\190\CAN\RS\US\n\
    \\154\SOH\n\
    \\EOT\EOTu\STX\ETX\DC2\EOT\196\CAN\EOT\SYN\SUB\139\SOH\n\
    \If set, the invoices returned will result from seeking backwards from the\n\
    \specified index offset. This can be used to paginate backwards.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTu\STX\ETX\EOT\DC2\ACK\196\CAN\EOT\190\CAN \n\
    \\r\n\
    \\ENQ\EOTu\STX\ETX\ENQ\DC2\EOT\196\CAN\EOT\b\n\
    \\r\n\
    \\ENQ\EOTu\STX\ETX\SOH\DC2\EOT\196\CAN\t\DC1\n\
    \\r\n\
    \\ENQ\EOTu\STX\ETX\ETX\DC2\EOT\196\CAN\DC4\NAK\n\
    \\f\n\
    \\STX\EOTv\DC2\ACK\198\CAN\NUL\216\CAN\SOH\n\
    \\v\n\
    \\ETX\EOTv\SOH\DC2\EOT\198\CAN\b\ESC\n\
    \c\n\
    \\EOT\EOTv\STX\NUL\DC2\EOT\203\CAN\EOT\"\SUBU\n\
    \A list of invoices from the time slice of the time series specified in the\n\
    \request.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTv\STX\NUL\EOT\DC2\EOT\203\CAN\EOT\f\n\
    \\r\n\
    \\ENQ\EOTv\STX\NUL\ACK\DC2\EOT\203\CAN\r\DC4\n\
    \\r\n\
    \\ENQ\EOTv\STX\NUL\SOH\DC2\EOT\203\CAN\NAK\GS\n\
    \\r\n\
    \\ENQ\EOTv\STX\NUL\ETX\DC2\EOT\203\CAN !\n\
    \\DEL\n\
    \\EOT\EOTv\STX\SOH\DC2\EOT\209\CAN\EOT!\SUBq\n\
    \The index of the last item in the set of returned invoices. This can be used\n\
    \to seek further, pagination style.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTv\STX\SOH\EOT\DC2\ACK\209\CAN\EOT\203\CAN\"\n\
    \\r\n\
    \\ENQ\EOTv\STX\SOH\ENQ\DC2\EOT\209\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTv\STX\SOH\SOH\DC2\EOT\209\CAN\v\FS\n\
    \\r\n\
    \\ENQ\EOTv\STX\SOH\ETX\DC2\EOT\209\CAN\US \n\
    \\129\SOH\n\
    \\EOT\EOTv\STX\STX\DC2\EOT\215\CAN\EOT\"\SUBs\n\
    \The index of the last item in the set of returned invoices. This can be used\n\
    \to seek backwards, pagination style.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTv\STX\STX\EOT\DC2\ACK\215\CAN\EOT\209\CAN!\n\
    \\r\n\
    \\ENQ\EOTv\STX\STX\ENQ\DC2\EOT\215\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTv\STX\STX\SOH\DC2\EOT\215\CAN\v\GS\n\
    \\r\n\
    \\ENQ\EOTv\STX\STX\ETX\DC2\EOT\215\CAN !\n\
    \\f\n\
    \\STX\EOTw\DC2\ACK\218\CAN\NUL\234\CAN\SOH\n\
    \\v\n\
    \\ETX\EOTw\SOH\DC2\EOT\218\CAN\b\ESC\n\
    \\139\STX\n\
    \\EOT\EOTw\STX\NUL\DC2\EOT\225\CAN\EOT\EM\SUB\252\SOH\n\
    \If specified (non-zero), then we'll first start by sending out\n\
    \notifications for all added indexes with an add_index greater than this\n\
    \value. This allows callers to catch up on any events they missed while they\n\
    \weren't connected to the streaming RPC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTw\STX\NUL\EOT\DC2\ACK\225\CAN\EOT\218\CAN\GS\n\
    \\r\n\
    \\ENQ\EOTw\STX\NUL\ENQ\DC2\EOT\225\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTw\STX\NUL\SOH\DC2\EOT\225\CAN\v\DC4\n\
    \\r\n\
    \\ENQ\EOTw\STX\NUL\ETX\DC2\EOT\225\CAN\ETB\CAN\n\
    \\144\STX\n\
    \\EOT\EOTw\STX\SOH\DC2\EOT\233\CAN\EOT\FS\SUB\129\STX\n\
    \If specified (non-zero), then we'll first start by sending out\n\
    \notifications for all settled indexes with an settle_index greater than\n\
    \this value. This allows callers to catch up on any events they missed while\n\
    \they weren't connected to the streaming RPC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTw\STX\SOH\EOT\DC2\ACK\233\CAN\EOT\225\CAN\EM\n\
    \\r\n\
    \\ENQ\EOTw\STX\SOH\ENQ\DC2\EOT\233\CAN\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTw\STX\SOH\SOH\DC2\EOT\233\CAN\v\ETB\n\
    \\r\n\
    \\ENQ\EOTw\STX\SOH\ETX\DC2\EOT\233\CAN\SUB\ESC\n\
    \\f\n\
    \\STX\ENQ\a\DC2\ACK\236\CAN\NUL\140\EM\SOH\n\
    \\v\n\
    \\ETX\ENQ\a\SOH\DC2\EOT\236\CAN\ENQ\EM\n\
    \+\n\
    \\EOT\ENQ\a\STX\NUL\DC2\EOT\240\CAN\EOT\FS\SUB\GS\n\
    \Payment isn't failed (yet).\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\240\CAN\EOT\ETB\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\240\CAN\SUB\ESC\n\
    \S\n\
    \\EOT\ENQ\a\STX\SOH\DC2\EOT\245\CAN\EOT\US\SUBE\n\
    \There are more routes to try, but the payment timeout was exceeded.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\245\CAN\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\245\CAN\GS\RS\n\
    \s\n\
    \\EOT\ENQ\a\STX\STX\DC2\EOT\251\CAN\EOT \SUBe\n\
    \All possible routes were tried and failed permanently. Or were no\n\
    \routes to the destination at all.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\251\CAN\EOT\ESC\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\251\CAN\RS\US\n\
    \4\n\
    \\EOT\ENQ\a\STX\ETX\DC2\EOT\128\EM\EOT\GS\SUB&\n\
    \A non-recoverable error has occured.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\128\EM\EOT\CAN\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\128\EM\ESC\FS\n\
    \a\n\
    \\EOT\ENQ\a\STX\EOT\DC2\EOT\134\EM\EOT1\SUBS\n\
    \Payment details incorrect (unknown hash, invalid amt or\n\
    \invalid final cltv delta)\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\134\EM\EOT,\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\134\EM/0\n\
    \+\n\
    \\EOT\ENQ\a\STX\ENQ\DC2\EOT\139\EM\EOT,\SUB\GS\n\
    \Insufficient local balance.\n\
    \\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\139\EM\EOT'\n\
    \\r\n\
    \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\139\EM*+\n\
    \\f\n\
    \\STX\EOTx\DC2\ACK\142\EM\NUL\199\EM\SOH\n\
    \\v\n\
    \\ETX\EOTx\SOH\DC2\EOT\142\EM\b\SI\n\
    \ \n\
    \\EOT\EOTx\STX\NUL\DC2\EOT\144\EM\EOT\FS\SUB\DC2 The payment hash\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\NUL\EOT\DC2\ACK\144\EM\EOT\142\EM\DC1\n\
    \\r\n\
    \\ENQ\EOTx\STX\NUL\ENQ\DC2\EOT\144\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTx\STX\NUL\SOH\DC2\EOT\144\EM\v\ETB\n\
    \\r\n\
    \\ENQ\EOTx\STX\NUL\ETX\DC2\EOT\144\EM\SUB\ESC\n\
    \8\n\
    \\EOT\EOTx\STX\SOH\DC2\EOT\147\EM\EOT(\SUB* Deprecated, use value_sat or value_msat.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\SOH\EOT\DC2\ACK\147\EM\EOT\144\EM\FS\n\
    \\r\n\
    \\ENQ\EOTx\STX\SOH\ENQ\DC2\EOT\147\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\SOH\SOH\DC2\EOT\147\EM\n\
    \\SI\n\
    \\r\n\
    \\ENQ\EOTx\STX\SOH\ETX\DC2\EOT\147\EM\DC2\DC3\n\
    \\r\n\
    \\ENQ\EOTx\STX\SOH\b\DC2\EOT\147\EM\DC4'\n\
    \\SO\n\
    \\ACK\EOTx\STX\SOH\b\ETX\DC2\EOT\147\EM\NAK&\n\
    \0\n\
    \\EOT\EOTx\STX\STX\DC2\EOT\150\EM\EOT0\SUB\" Deprecated, use creation_time_ns\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\STX\EOT\DC2\ACK\150\EM\EOT\147\EM(\n\
    \\r\n\
    \\ENQ\EOTx\STX\STX\ENQ\DC2\EOT\150\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\STX\SOH\DC2\EOT\150\EM\n\
    \\ETB\n\
    \\r\n\
    \\ENQ\EOTx\STX\STX\ETX\DC2\EOT\150\EM\SUB\ESC\n\
    \\r\n\
    \\ENQ\EOTx\STX\STX\b\DC2\EOT\150\EM\FS/\n\
    \\SO\n\
    \\ACK\EOTx\STX\STX\b\ETX\DC2\EOT\150\EM\GS.\n\
    \\v\n\
    \\ETX\EOTx\t\DC2\EOT\152\EM\EOT\SI\n\
    \\f\n\
    \\EOT\EOTx\t\NUL\DC2\EOT\152\EM\r\SO\n\
    \\r\n\
    \\ENQ\EOTx\t\NUL\SOH\DC2\EOT\152\EM\r\SO\n\
    \\r\n\
    \\ENQ\EOTx\t\NUL\STX\DC2\EOT\152\EM\r\SO\n\
    \4\n\
    \\EOT\EOTx\STX\ETX\DC2\EOT\155\EM\EOT&\SUB& Deprecated, use fee_sat or fee_msat.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\ETX\EOT\DC2\ACK\155\EM\EOT\152\EM\SI\n\
    \\r\n\
    \\ENQ\EOTx\STX\ETX\ENQ\DC2\EOT\155\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\ETX\SOH\DC2\EOT\155\EM\n\
    \\r\n\
    \\r\n\
    \\ENQ\EOTx\STX\ETX\ETX\DC2\EOT\155\EM\DLE\DC1\n\
    \\r\n\
    \\ENQ\EOTx\STX\ETX\b\DC2\EOT\155\EM\DC2%\n\
    \\SO\n\
    \\ACK\EOTx\STX\ETX\b\ETX\DC2\EOT\155\EM\DC3$\n\
    \$\n\
    \\EOT\EOTx\STX\EOT\DC2\EOT\158\EM\EOT \SUB\SYN The payment preimage\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\EOT\EOT\DC2\ACK\158\EM\EOT\155\EM&\n\
    \\r\n\
    \\ENQ\EOTx\STX\EOT\ENQ\DC2\EOT\158\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTx\STX\EOT\SOH\DC2\EOT\158\EM\v\ESC\n\
    \\r\n\
    \\ENQ\EOTx\STX\EOT\ETX\DC2\EOT\158\EM\RS\US\n\
    \4\n\
    \\EOT\EOTx\STX\ENQ\DC2\EOT\161\EM\EOT\CAN\SUB& The value of the payment in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\ENQ\EOT\DC2\ACK\161\EM\EOT\158\EM \n\
    \\r\n\
    \\ENQ\EOTx\STX\ENQ\ENQ\DC2\EOT\161\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\ENQ\SOH\DC2\EOT\161\EM\n\
    \\DC3\n\
    \\r\n\
    \\ENQ\EOTx\STX\ENQ\ETX\DC2\EOT\161\EM\SYN\ETB\n\
    \:\n\
    \\EOT\EOTx\STX\ACK\DC2\EOT\164\EM\EOT\EM\SUB, The value of the payment in milli-satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\ACK\EOT\DC2\ACK\164\EM\EOT\161\EM\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\ACK\ENQ\DC2\EOT\164\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\ACK\SOH\DC2\EOT\164\EM\n\
    \\DC4\n\
    \\r\n\
    \\ENQ\EOTx\STX\ACK\ETX\DC2\EOT\164\EM\ETB\CAN\n\
    \=\n\
    \\EOT\EOTx\STX\a\DC2\EOT\167\EM\EOT\US\SUB/ The optional payment request being fulfilled.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\a\EOT\DC2\ACK\167\EM\EOT\164\EM\EM\n\
    \\r\n\
    \\ENQ\EOTx\STX\a\ENQ\DC2\EOT\167\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTx\STX\a\SOH\DC2\EOT\167\EM\v\SUB\n\
    \\r\n\
    \\ENQ\EOTx\STX\a\ETX\DC2\EOT\167\EM\GS\RS\n\
    \\SO\n\
    \\EOT\EOTx\EOT\NUL\DC2\ACK\169\EM\EOT\174\EM\ENQ\n\
    \\r\n\
    \\ENQ\EOTx\EOT\NUL\SOH\DC2\EOT\169\EM\t\SYN\n\
    \\SO\n\
    \\ACK\EOTx\EOT\NUL\STX\NUL\DC2\EOT\170\EM\b\DC4\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\NUL\SOH\DC2\EOT\170\EM\b\SI\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\NUL\STX\DC2\EOT\170\EM\DC2\DC3\n\
    \\SO\n\
    \\ACK\EOTx\EOT\NUL\STX\SOH\DC2\EOT\171\EM\b\SYN\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\SOH\SOH\DC2\EOT\171\EM\b\DC1\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\SOH\STX\DC2\EOT\171\EM\DC4\NAK\n\
    \\SO\n\
    \\ACK\EOTx\EOT\NUL\STX\STX\DC2\EOT\172\EM\b\SYN\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\STX\SOH\DC2\EOT\172\EM\b\DC1\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\STX\STX\DC2\EOT\172\EM\DC4\NAK\n\
    \\SO\n\
    \\ACK\EOTx\EOT\NUL\STX\ETX\DC2\EOT\173\EM\b\DC3\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\ETX\SOH\DC2\EOT\173\EM\b\SO\n\
    \\SI\n\
    \\a\EOTx\EOT\NUL\STX\ETX\STX\DC2\EOT\173\EM\DC1\DC2\n\
    \*\n\
    \\EOT\EOTx\STX\b\DC2\EOT\177\EM\EOT\RS\SUB\FS The status of the payment.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\b\EOT\DC2\ACK\177\EM\EOT\174\EM\ENQ\n\
    \\r\n\
    \\ENQ\EOTx\STX\b\ACK\DC2\EOT\177\EM\EOT\DC1\n\
    \\r\n\
    \\ENQ\EOTx\STX\b\SOH\DC2\EOT\177\EM\DC2\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\b\ETX\DC2\EOT\177\EM\ESC\GS\n\
    \:\n\
    \\EOT\EOTx\STX\t\DC2\EOT\180\EM\EOT\ETB\SUB,  The fee paid for this payment in satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\t\EOT\DC2\ACK\180\EM\EOT\177\EM\RS\n\
    \\r\n\
    \\ENQ\EOTx\STX\t\ENQ\DC2\EOT\180\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\t\SOH\DC2\EOT\180\EM\n\
    \\DC1\n\
    \\r\n\
    \\ENQ\EOTx\STX\t\ETX\DC2\EOT\180\EM\DC4\SYN\n\
    \@\n\
    \\EOT\EOTx\STX\n\
    \\DC2\EOT\183\EM\EOT\CAN\SUB2  The fee paid for this payment in milli-satoshis\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\n\
    \\EOT\DC2\ACK\183\EM\EOT\180\EM\ETB\n\
    \\r\n\
    \\ENQ\EOTx\STX\n\
    \\ENQ\DC2\EOT\183\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\n\
    \\SOH\DC2\EOT\183\EM\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTx\STX\n\
    \\ETX\DC2\EOT\183\EM\NAK\ETB\n\
    \N\n\
    \\EOT\EOTx\STX\v\DC2\EOT\186\EM\EOT \SUB@ The time in UNIX nanoseconds at which the payment was created.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\v\EOT\DC2\ACK\186\EM\EOT\183\EM\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\v\ENQ\DC2\EOT\186\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTx\STX\v\SOH\DC2\EOT\186\EM\n\
    \\SUB\n\
    \\r\n\
    \\ENQ\EOTx\STX\v\ETX\DC2\EOT\186\EM\GS\US\n\
    \@\n\
    \\EOT\EOTx\STX\f\DC2\EOT\189\EM\EOT$\SUB2 The HTLCs made in attempt to settle the payment.\n\
    \\n\
    \\r\n\
    \\ENQ\EOTx\STX\f\EOT\DC2\EOT\189\EM\EOT\f\n\
    \\r\n\
    \\ENQ\EOTx\STX\f\ACK\DC2\EOT\189\EM\r\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\f\SOH\DC2\EOT\189\EM\EM\RS\n\
    \\r\n\
    \\ENQ\EOTx\STX\f\ETX\DC2\EOT\189\EM!#\n\
    \\189\SOH\n\
    \\EOT\EOTx\STX\r\DC2\EOT\196\EM\EOT\RS\SUB\174\SOH\n\
    \The creation index of this payment. Each payment can be uniquely identified\n\
    \by this index, which may not strictly increment by 1 for payments made in\n\
    \older versions of lnd.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTx\STX\r\EOT\DC2\ACK\196\EM\EOT\189\EM$\n\
    \\r\n\
    \\ENQ\EOTx\STX\r\ENQ\DC2\EOT\196\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTx\STX\r\SOH\DC2\EOT\196\EM\v\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\r\ETX\DC2\EOT\196\EM\ESC\GS\n\
    \\f\n\
    \\EOT\EOTx\STX\SO\DC2\EOT\198\EM\EOT-\n\
    \\SI\n\
    \\ENQ\EOTx\STX\SO\EOT\DC2\ACK\198\EM\EOT\196\EM\RS\n\
    \\r\n\
    \\ENQ\EOTx\STX\SO\ACK\DC2\EOT\198\EM\EOT\CAN\n\
    \\r\n\
    \\ENQ\EOTx\STX\SO\SOH\DC2\EOT\198\EM\EM'\n\
    \\r\n\
    \\ENQ\EOTx\STX\SO\ETX\DC2\EOT\198\EM*,\n\
    \\f\n\
    \\STX\EOTy\DC2\ACK\201\EM\NUL\231\EM\SOH\n\
    \\v\n\
    \\ETX\EOTy\SOH\DC2\EOT\201\EM\b\DC3\n\
    \<\n\
    \\EOT\EOTy\STX\NUL\DC2\EOT\203\EM\EOT\SUB\SUB. The unique ID that is used for this attempt.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\NUL\EOT\DC2\ACK\203\EM\EOT\201\EM\NAK\n\
    \\r\n\
    \\ENQ\EOTy\STX\NUL\ENQ\DC2\EOT\203\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTy\STX\NUL\SOH\DC2\EOT\203\EM\v\NAK\n\
    \\r\n\
    \\ENQ\EOTy\STX\NUL\ETX\DC2\EOT\203\EM\CAN\EM\n\
    \\SO\n\
    \\EOT\EOTy\EOT\NUL\DC2\ACK\205\EM\EOT\209\EM\ENQ\n\
    \\r\n\
    \\ENQ\EOTy\EOT\NUL\SOH\DC2\EOT\205\EM\t\DC3\n\
    \\SO\n\
    \\ACK\EOTy\EOT\NUL\STX\NUL\DC2\EOT\206\EM\b\SYN\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\NUL\SOH\DC2\EOT\206\EM\b\DC1\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\NUL\STX\DC2\EOT\206\EM\DC4\NAK\n\
    \\SO\n\
    \\ACK\EOTy\EOT\NUL\STX\SOH\DC2\EOT\207\EM\b\SYN\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\SOH\SOH\DC2\EOT\207\EM\b\DC1\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\SOH\STX\DC2\EOT\207\EM\DC4\NAK\n\
    \\SO\n\
    \\ACK\EOTy\EOT\NUL\STX\STX\DC2\EOT\208\EM\b\DC3\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\STX\SOH\DC2\EOT\208\EM\b\SO\n\
    \\SI\n\
    \\a\EOTy\EOT\NUL\STX\STX\STX\DC2\EOT\208\EM\DC1\DC2\n\
    \'\n\
    \\EOT\EOTy\STX\SOH\DC2\EOT\212\EM\EOT\SUB\SUB\EM The status of the HTLC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\SOH\EOT\DC2\ACK\212\EM\EOT\209\EM\ENQ\n\
    \\r\n\
    \\ENQ\EOTy\STX\SOH\ACK\DC2\EOT\212\EM\EOT\SO\n\
    \\r\n\
    \\ENQ\EOTy\STX\SOH\SOH\DC2\EOT\212\EM\SI\NAK\n\
    \\r\n\
    \\ENQ\EOTy\STX\SOH\ETX\DC2\EOT\212\EM\CAN\EM\n\
    \-\n\
    \\EOT\EOTy\STX\STX\DC2\EOT\215\EM\EOT\DC4\SUB\US The route taken by this HTLC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\STX\EOT\DC2\ACK\215\EM\EOT\212\EM\SUB\n\
    \\r\n\
    \\ENQ\EOTy\STX\STX\ACK\DC2\EOT\215\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTy\STX\STX\SOH\DC2\EOT\215\EM\n\
    \\SI\n\
    \\r\n\
    \\ENQ\EOTy\STX\STX\ETX\DC2\EOT\215\EM\DC2\DC3\n\
    \I\n\
    \\EOT\EOTy\STX\ETX\DC2\EOT\218\EM\EOT\RS\SUB; The time in UNIX nanoseconds at which this HTLC was sent.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\ETX\EOT\DC2\ACK\218\EM\EOT\215\EM\DC4\n\
    \\r\n\
    \\ENQ\EOTy\STX\ETX\ENQ\DC2\EOT\218\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTy\STX\ETX\SOH\DC2\EOT\218\EM\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTy\STX\ETX\ETX\DC2\EOT\218\EM\FS\GS\n\
    \\146\SOH\n\
    \\EOT\EOTy\STX\EOT\DC2\EOT\224\EM\EOT\RS\SUB\131\SOH\n\
    \The time in UNIX nanoseconds at which this HTLC was settled or failed.\n\
    \This value will not be set if the HTLC is still IN_FLIGHT.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\EOT\EOT\DC2\ACK\224\EM\EOT\218\EM\RS\n\
    \\r\n\
    \\ENQ\EOTy\STX\EOT\ENQ\DC2\EOT\224\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTy\STX\EOT\SOH\DC2\EOT\224\EM\n\
    \\EM\n\
    \\r\n\
    \\ENQ\EOTy\STX\EOT\ETX\DC2\EOT\224\EM\FS\GS\n\
    \+\n\
    \\EOT\EOTy\STX\ENQ\DC2\EOT\227\EM\EOT\CAN\SUB\GS Detailed htlc failure info.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\ENQ\EOT\DC2\ACK\227\EM\EOT\224\EM\RS\n\
    \\r\n\
    \\ENQ\EOTy\STX\ENQ\ACK\DC2\EOT\227\EM\EOT\v\n\
    \\r\n\
    \\ENQ\EOTy\STX\ENQ\SOH\DC2\EOT\227\EM\f\DC3\n\
    \\r\n\
    \\ENQ\EOTy\STX\ENQ\ETX\DC2\EOT\227\EM\SYN\ETB\n\
    \>\n\
    \\EOT\EOTy\STX\ACK\DC2\EOT\230\EM\EOT\ETB\SUB0 The preimage that was used to settle the HTLC.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTy\STX\ACK\EOT\DC2\ACK\230\EM\EOT\227\EM\CAN\n\
    \\r\n\
    \\ENQ\EOTy\STX\ACK\ENQ\DC2\EOT\230\EM\EOT\t\n\
    \\r\n\
    \\ENQ\EOTy\STX\ACK\SOH\DC2\EOT\230\EM\n\
    \\DC2\n\
    \\r\n\
    \\ENQ\EOTy\STX\ACK\ETX\DC2\EOT\230\EM\NAK\SYN\n\
    \\f\n\
    \\STX\EOTz\DC2\ACK\233\EM\NUL\132\SUB\SOH\n\
    \\v\n\
    \\ETX\EOTz\SOH\DC2\EOT\233\EM\b\ESC\n\
    \\149\STX\n\
    \\EOT\EOTz\STX\NUL\DC2\EOT\240\EM\EOT \SUB\134\STX\n\
    \If true, then return payments that have not yet fully completed. This means\n\
    \that pending payments, as well as failed payments will show up if this\n\
    \field is set to true. This flag doesn't change the meaning of the indices,\n\
    \which are tied to individual payments.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTz\STX\NUL\EOT\DC2\ACK\240\EM\EOT\233\EM\GS\n\
    \\r\n\
    \\ENQ\EOTz\STX\NUL\ENQ\DC2\EOT\240\EM\EOT\b\n\
    \\r\n\
    \\ENQ\EOTz\STX\NUL\SOH\DC2\EOT\240\EM\t\ESC\n\
    \\r\n\
    \\ENQ\EOTz\STX\NUL\ETX\DC2\EOT\240\EM\RS\US\n\
    \\237\STX\n\
    \\EOT\EOTz\STX\SOH\DC2\EOT\249\EM\EOT\FS\SUB\222\STX\n\
    \The index of a payment that will be used as either the start or end of a\n\
    \query to determine which payments should be returned in the response. The\n\
    \index_offset is exclusive. In the case of a zero index_offset, the query\n\
    \will start with the oldest payment when paginating forwards, or will end\n\
    \with the most recent payment when paginating backwards.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTz\STX\SOH\EOT\DC2\ACK\249\EM\EOT\240\EM \n\
    \\r\n\
    \\ENQ\EOTz\STX\SOH\ENQ\DC2\EOT\249\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTz\STX\SOH\SOH\DC2\EOT\249\EM\v\ETB\n\
    \\r\n\
    \\ENQ\EOTz\STX\SOH\ETX\DC2\EOT\249\EM\SUB\ESC\n\
    \V\n\
    \\EOT\EOTz\STX\STX\DC2\EOT\252\EM\EOT\FS\SUBH The maximal number of payments returned in the response to this query.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTz\STX\STX\EOT\DC2\ACK\252\EM\EOT\249\EM\FS\n\
    \\r\n\
    \\ENQ\EOTz\STX\STX\ENQ\DC2\EOT\252\EM\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOTz\STX\STX\SOH\DC2\EOT\252\EM\v\ETB\n\
    \\r\n\
    \\ENQ\EOTz\STX\STX\ETX\DC2\EOT\252\EM\SUB\ESC\n\
    \\237\SOH\n\
    \\EOT\EOTz\STX\ETX\DC2\EOT\131\SUB\EOT\SYN\SUB\222\SOH\n\
    \If set, the payments returned will result from seeking backwards from the\n\
    \specified index offset. This can be used to paginate backwards. The order\n\
    \of the returned payments is always oldest first (ascending index order).\n\
    \\n\
    \\SI\n\
    \\ENQ\EOTz\STX\ETX\EOT\DC2\ACK\131\SUB\EOT\252\EM\FS\n\
    \\r\n\
    \\ENQ\EOTz\STX\ETX\ENQ\DC2\EOT\131\SUB\EOT\b\n\
    \\r\n\
    \\ENQ\EOTz\STX\ETX\SOH\DC2\EOT\131\SUB\t\DC1\n\
    \\r\n\
    \\ENQ\EOTz\STX\ETX\ETX\DC2\EOT\131\SUB\DC4\NAK\n\
    \\f\n\
    \\STX\EOT{\DC2\ACK\134\SUB\NUL\149\SUB\SOH\n\
    \\v\n\
    \\ETX\EOT{\SOH\DC2\EOT\134\SUB\b\FS\n\
    \$\n\
    \\EOT\EOT{\STX\NUL\DC2\EOT\136\SUB\EOT\"\SUB\SYN The list of payments\n\
    \\n\
    \\r\n\
    \\ENQ\EOT{\STX\NUL\EOT\DC2\EOT\136\SUB\EOT\f\n\
    \\r\n\
    \\ENQ\EOT{\STX\NUL\ACK\DC2\EOT\136\SUB\r\DC4\n\
    \\r\n\
    \\ENQ\EOT{\STX\NUL\SOH\DC2\EOT\136\SUB\NAK\GS\n\
    \\r\n\
    \\ENQ\EOT{\STX\NUL\ETX\DC2\EOT\136\SUB !\n\
    \\165\SOH\n\
    \\EOT\EOT{\STX\SOH\DC2\EOT\142\SUB\EOT\"\SUB\150\SOH\n\
    \The index of the first item in the set of returned payments. This can be\n\
    \used as the index_offset to continue seeking backwards in the next request.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT{\STX\SOH\EOT\DC2\ACK\142\SUB\EOT\136\SUB\"\n\
    \\r\n\
    \\ENQ\EOT{\STX\SOH\ENQ\DC2\EOT\142\SUB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT{\STX\SOH\SOH\DC2\EOT\142\SUB\v\GS\n\
    \\r\n\
    \\ENQ\EOT{\STX\SOH\ETX\DC2\EOT\142\SUB !\n\
    \\163\SOH\n\
    \\EOT\EOT{\STX\STX\DC2\EOT\148\SUB\EOT!\SUB\148\SOH\n\
    \The index of the last item in the set of returned payments. This can be used\n\
    \as the index_offset to continue seeking forwards in the next request.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT{\STX\STX\EOT\DC2\ACK\148\SUB\EOT\142\SUB\"\n\
    \\r\n\
    \\ENQ\EOT{\STX\STX\ENQ\DC2\EOT\148\SUB\EOT\n\
    \\n\
    \\r\n\
    \\ENQ\EOT{\STX\STX\SOH\DC2\EOT\148\SUB\v\FS\n\
    \\r\n\
    \\ENQ\EOT{\STX\STX\ETX\DC2\EOT\148\SUB\US \n\
    \\f\n\
    \\STX\EOT|\DC2\ACK\151\SUB\NUL\159\SUB\SOH\n\
    \\v\n\
    \\ETX\EOT|\SOH\DC2\EOT\151\SUB\b \n\
    \,\n\
    \\EOT\EOT|\STX\NUL\DC2\EOT\153\SUB\EOT\"\SUB\RS Only delete failed payments.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT|\STX\NUL\EOT\DC2\ACK\153\SUB\EOT\151\SUB\"\n\
    \\r\n\
    \\ENQ\EOT|\STX\NUL\ENQ\DC2\EOT\153\SUB\EOT\b\n\
    \\r\n\
    \\ENQ\EOT|\STX\NUL\SOH\DC2\EOT\153\SUB\t\GS\n\
    \\r\n\
    \\ENQ\EOT|\STX\NUL\ETX\DC2\EOT\153\SUB !\n\
    \O\n\
    \\EOT\EOT|\STX\SOH\DC2\EOT\158\SUB\EOT\US\SUBA\n\
    \Only delete failed HTLCs from payments, not the payment itself.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT|\STX\SOH\EOT\DC2\ACK\158\SUB\EOT\153\SUB\"\n\
    \\r\n\
    \\ENQ\EOT|\STX\SOH\ENQ\DC2\EOT\158\SUB\EOT\b\n\
    \\r\n\
    \\ENQ\EOT|\STX\SOH\SOH\DC2\EOT\158\SUB\t\SUB\n\
    \\r\n\
    \\ENQ\EOT|\STX\SOH\ETX\DC2\EOT\158\SUB\GS\RS\n\
    \\f\n\
    \\STX\EOT}\DC2\ACK\161\SUB\NUL\162\SUB\SOH\n\
    \\v\n\
    \\ETX\EOT}\SOH\DC2\EOT\161\SUB\b!\n\
    \\f\n\
    \\STX\EOT~\DC2\ACK\164\SUB\NUL\175\SUB\SOH\n\
    \\v\n\
    \\ETX\EOT~\SOH\DC2\EOT\164\SUB\b\GS\n\
    \\f\n\
    \\EOT\EOT~\STX\NUL\DC2\EOT\165\SUB\EOT#\n\
    \\SI\n\
    \\ENQ\EOT~\STX\NUL\EOT\DC2\ACK\165\SUB\EOT\164\SUB\US\n\
    \\r\n\
    \\ENQ\EOT~\STX\NUL\ACK\DC2\EOT\165\SUB\EOT\DLE\n\
    \\r\n\
    \\ENQ\EOT~\STX\NUL\SOH\DC2\EOT\165\SUB\DC1\RS\n\
    \\r\n\
    \\ENQ\EOT~\STX\NUL\ETX\DC2\EOT\165\SUB!\"\n\
    \\f\n\
    \\EOT\EOT~\STX\SOH\DC2\EOT\167\SUB\EOT'\n\
    \\SI\n\
    \\ENQ\EOT~\STX\SOH\EOT\DC2\ACK\167\SUB\EOT\165\SUB#\n\
    \\r\n\
    \\ENQ\EOT~\STX\SOH\ENQ\DC2\EOT\167\SUB\EOT\b\n\
    \\r\n\
    \\ENQ\EOT~\STX\SOH\SOH\DC2\EOT\167\SUB\t\"\n\
    \\r\n\
    \\ENQ\EOT~\STX\SOH\ETX\DC2\EOT\167\SUB%&\n\
    \\212\SOH\n\
    \\EOT\EOT~\STX\STX\DC2\EOT\174\SUB\EOT$\SUB\197\SOH\n\
    \Override the requirement for being in dev mode by setting this to true and\n\
    \confirming the user knows what they are doing and this is a potential foot\n\
    \gun to lose funds if used on active channels.\n\
    \\n\
    \\SI\n\
    \\ENQ\EOT~\STX\STX\EOT\DC2\ACK\174\SUB\EOT\167\SUB'\n\
    \\r\n\
    \\ENQ\EOT~\STX\STX\ENQ\DC2\EOT\174\SUB\EOT\b\n\
    \\r\n\
    \\ENQ\EOT~\STX\STX\SOH\DC2\EOT\174\SUB\t\US\n\
    \\r\n\
    \\ENQ\EOT~\STX\STX\ETX\DC2\EOT\174\SUB\"#\n\
    \\f\n\
    \\STX\EOT\DEL\DC2\ACK\177\SUB\NUL\178\SUB\SOH\n\
    \\v\n\
    \\ETX\EOT\DEL\SOH\DC2\EOT\177\SUB\b\RS\n\
    \\r\n\
    \\ETX\EOT\128\SOH\DC2\ACK\180\SUB\NUL\183\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\128\SOH\SOH\DC2\EOT\180\SUB\b\EM\n\
    \\r\n\
    \\ENQ\EOT\128\SOH\STX\NUL\DC2\EOT\181\SUB\EOT\DC2\n\
    \\DLE\n\
    \\ACK\EOT\128\SOH\STX\NUL\EOT\DC2\ACK\181\SUB\EOT\180\SUB\ESC\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\NUL\ENQ\DC2\EOT\181\SUB\EOT\b\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\NUL\SOH\DC2\EOT\181\SUB\t\r\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\NUL\ETX\DC2\EOT\181\SUB\DLE\DC1\n\
    \\r\n\
    \\ENQ\EOT\128\SOH\STX\SOH\DC2\EOT\182\SUB\EOT\SUB\n\
    \\DLE\n\
    \\ACK\EOT\128\SOH\STX\SOH\EOT\DC2\ACK\182\SUB\EOT\181\SUB\DC2\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\SOH\ENQ\DC2\EOT\182\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\SOH\SOH\DC2\EOT\182\SUB\v\NAK\n\
    \\SO\n\
    \\ACK\EOT\128\SOH\STX\SOH\ETX\DC2\EOT\182\SUB\CAN\EM\n\
    \\r\n\
    \\ETX\EOT\129\SOH\DC2\ACK\184\SUB\NUL\186\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\129\SOH\SOH\DC2\EOT\184\SUB\b\SUB\n\
    \\r\n\
    \\ENQ\EOT\129\SOH\STX\NUL\DC2\EOT\185\SUB\EOT\ESC\n\
    \\DLE\n\
    \\ACK\EOT\129\SOH\STX\NUL\EOT\DC2\ACK\185\SUB\EOT\184\SUB\FS\n\
    \\SO\n\
    \\ACK\EOT\129\SOH\STX\NUL\ENQ\DC2\EOT\185\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\129\SOH\STX\NUL\SOH\DC2\EOT\185\SUB\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\129\SOH\STX\NUL\ETX\DC2\EOT\185\SUB\EM\SUB\n\
    \\r\n\
    \\ETX\EOT\130\SOH\DC2\ACK\188\SUB\NUL\191\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\130\SOH\SOH\DC2\EOT\188\SUB\b\DC4\n\
    \9\n\
    \\ENQ\EOT\130\SOH\STX\NUL\DC2\EOT\190\SUB\EOT\ETB\SUB* The payment request string to be decoded\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\130\SOH\STX\NUL\EOT\DC2\ACK\190\SUB\EOT\188\SUB\SYN\n\
    \\SO\n\
    \\ACK\EOT\130\SOH\STX\NUL\ENQ\DC2\EOT\190\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\130\SOH\STX\NUL\SOH\DC2\EOT\190\SUB\v\DC2\n\
    \\SO\n\
    \\ACK\EOT\130\SOH\STX\NUL\ETX\DC2\EOT\190\SUB\NAK\SYN\n\
    \\r\n\
    \\ETX\EOT\131\SOH\DC2\ACK\192\SUB\NUL\206\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\131\SOH\SOH\DC2\EOT\192\SUB\b\SO\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\NUL\DC2\EOT\193\SUB\EOT\ESC\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\NUL\EOT\DC2\ACK\193\SUB\EOT\192\SUB\DLE\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\NUL\ENQ\DC2\EOT\193\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\NUL\SOH\DC2\EOT\193\SUB\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\NUL\ETX\DC2\EOT\193\SUB\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\SOH\DC2\EOT\194\SUB\EOT\FS\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\SOH\EOT\DC2\ACK\194\SUB\EOT\193\SUB\ESC\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\SOH\ENQ\DC2\EOT\194\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\SOH\SOH\DC2\EOT\194\SUB\v\ETB\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\SOH\ETX\DC2\EOT\194\SUB\SUB\ESC\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\STX\DC2\EOT\195\SUB\EOT\ESC\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\STX\EOT\DC2\ACK\195\SUB\EOT\194\SUB\FS\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\STX\ENQ\DC2\EOT\195\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\STX\SOH\DC2\EOT\195\SUB\n\
    \\SYN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\STX\ETX\DC2\EOT\195\SUB\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\ETX\DC2\EOT\196\SUB\EOT\CAN\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\ETX\EOT\DC2\ACK\196\SUB\EOT\195\SUB\ESC\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ETX\ENQ\DC2\EOT\196\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ETX\SOH\DC2\EOT\196\SUB\n\
    \\DC3\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ETX\ETX\DC2\EOT\196\SUB\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\EOT\DC2\EOT\197\SUB\EOT\NAK\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\EOT\EOT\DC2\ACK\197\SUB\EOT\196\SUB\CAN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\EOT\ENQ\DC2\EOT\197\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\EOT\SOH\DC2\EOT\197\SUB\n\
    \\DLE\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\EOT\ETX\DC2\EOT\197\SUB\DC3\DC4\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\ENQ\DC2\EOT\198\SUB\EOT\ESC\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\ENQ\EOT\DC2\ACK\198\SUB\EOT\197\SUB\NAK\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ENQ\ENQ\DC2\EOT\198\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ENQ\SOH\DC2\EOT\198\SUB\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ENQ\ETX\DC2\EOT\198\SUB\EM\SUB\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\ACK\DC2\EOT\199\SUB\EOT \n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\ACK\EOT\DC2\ACK\199\SUB\EOT\198\SUB\ESC\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ACK\ENQ\DC2\EOT\199\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ACK\SOH\DC2\EOT\199\SUB\v\ESC\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\ACK\ETX\DC2\EOT\199\SUB\RS\US\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\a\DC2\EOT\200\SUB\EOT\GS\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\a\EOT\DC2\ACK\200\SUB\EOT\199\SUB \n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\a\ENQ\DC2\EOT\200\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\a\SOH\DC2\EOT\200\SUB\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\a\ETX\DC2\EOT\200\SUB\ESC\FS\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\b\DC2\EOT\201\SUB\EOT\SUB\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\b\EOT\DC2\ACK\201\SUB\EOT\200\SUB\GS\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\b\ENQ\DC2\EOT\201\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\b\SOH\DC2\EOT\201\SUB\n\
    \\NAK\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\b\ETX\DC2\EOT\201\SUB\CAN\EM\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\t\DC2\EOT\202\SUB\EOT(\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\t\EOT\DC2\EOT\202\SUB\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\t\ACK\DC2\EOT\202\SUB\r\SYN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\t\SOH\DC2\EOT\202\SUB\ETB\"\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\t\ETX\DC2\EOT\202\SUB%'\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\n\
    \\DC2\EOT\203\SUB\EOT\FS\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\n\
    \\EOT\DC2\ACK\203\SUB\EOT\202\SUB(\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\n\
    \\ENQ\DC2\EOT\203\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\n\
    \\SOH\DC2\EOT\203\SUB\n\
    \\SYN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\n\
    \\ETX\DC2\EOT\203\SUB\EM\ESC\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\v\DC2\EOT\204\SUB\EOT\CAN\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\v\EOT\DC2\ACK\204\SUB\EOT\203\SUB\FS\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\v\ENQ\DC2\EOT\204\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\v\SOH\DC2\EOT\204\SUB\n\
    \\DC2\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\v\ETX\DC2\EOT\204\SUB\NAK\ETB\n\
    \\r\n\
    \\ENQ\EOT\131\SOH\STX\f\DC2\EOT\205\SUB\EOT'\n\
    \\DLE\n\
    \\ACK\EOT\131\SOH\STX\f\EOT\DC2\ACK\205\SUB\EOT\204\SUB\CAN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\f\ACK\DC2\EOT\205\SUB\EOT\CAN\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\f\SOH\DC2\EOT\205\SUB\EM!\n\
    \\SO\n\
    \\ACK\EOT\131\SOH\STX\f\ETX\DC2\EOT\205\SUB$&\n\
    \\f\n\
    \\STX\ENQ\b\DC2\ACK\208\SUB\NUL\234\SUB\SOH\n\
    \\v\n\
    \\ETX\ENQ\b\SOH\DC2\EOT\208\SUB\ENQ\SI\n\
    \\f\n\
    \\EOT\ENQ\b\STX\NUL\DC2\EOT\209\SUB\EOT\GS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\NUL\SOH\DC2\EOT\209\SUB\EOT\CAN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\NUL\STX\DC2\EOT\209\SUB\ESC\FS\n\
    \\f\n\
    \\EOT\ENQ\b\STX\SOH\DC2\EOT\210\SUB\EOT\GS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SOH\SOH\DC2\EOT\210\SUB\EOT\CAN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SOH\STX\DC2\EOT\210\SUB\ESC\FS\n\
    \\f\n\
    \\EOT\ENQ\b\STX\STX\DC2\EOT\211\SUB\EOT\FS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\STX\SOH\DC2\EOT\211\SUB\EOT\ETB\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\STX\STX\DC2\EOT\211\SUB\SUB\ESC\n\
    \\f\n\
    \\EOT\ENQ\b\STX\ETX\DC2\EOT\212\SUB\EOT$\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ETX\SOH\DC2\EOT\212\SUB\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ETX\STX\DC2\EOT\212\SUB\"#\n\
    \\f\n\
    \\EOT\ENQ\b\STX\EOT\DC2\EOT\213\SUB\EOT$\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\EOT\SOH\DC2\EOT\213\SUB\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\EOT\STX\DC2\EOT\213\SUB\"#\n\
    \\f\n\
    \\EOT\ENQ\b\STX\ENQ\DC2\EOT\214\SUB\EOT\ESC\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ENQ\SOH\DC2\EOT\214\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ENQ\STX\DC2\EOT\214\SUB\EM\SUB\n\
    \\f\n\
    \\EOT\ENQ\b\STX\ACK\DC2\EOT\215\SUB\EOT\ESC\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ACK\SOH\DC2\EOT\215\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ACK\STX\DC2\EOT\215\SUB\EM\SUB\n\
    \\f\n\
    \\EOT\ENQ\b\STX\a\DC2\EOT\216\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\a\SOH\DC2\EOT\216\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\a\STX\DC2\EOT\216\SUB\DC4\NAK\n\
    \\f\n\
    \\EOT\ENQ\b\STX\b\DC2\EOT\217\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\b\SOH\DC2\EOT\217\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\b\STX\DC2\EOT\217\SUB\DC4\NAK\n\
    \\f\n\
    \\EOT\ENQ\b\STX\t\DC2\EOT\218\SUB\EOT \n\
    \\r\n\
    \\ENQ\ENQ\b\STX\t\SOH\DC2\EOT\218\SUB\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\t\STX\DC2\EOT\218\SUB\GS\US\n\
    \\f\n\
    \\EOT\ENQ\b\STX\n\
    \\DC2\EOT\219\SUB\EOT \n\
    \\r\n\
    \\ENQ\ENQ\b\STX\n\
    \\SOH\DC2\EOT\219\SUB\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\n\
    \\STX\DC2\EOT\219\SUB\GS\US\n\
    \\f\n\
    \\EOT\ENQ\b\STX\v\DC2\EOT\220\SUB\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\v\SOH\DC2\EOT\220\SUB\EOT\EM\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\v\STX\DC2\EOT\220\SUB\FS\RS\n\
    \\f\n\
    \\EOT\ENQ\b\STX\f\DC2\EOT\221\SUB\EOT\US\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\f\SOH\DC2\EOT\221\SUB\EOT\EM\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\f\STX\DC2\EOT\221\SUB\FS\RS\n\
    \\f\n\
    \\EOT\ENQ\b\STX\r\DC2\EOT\222\SUB\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\r\SOH\DC2\EOT\222\SUB\EOT\DC4\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\r\STX\DC2\EOT\222\SUB\ETB\EM\n\
    \\f\n\
    \\EOT\ENQ\b\STX\SO\DC2\EOT\223\SUB\EOT\SUB\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SO\SOH\DC2\EOT\223\SUB\EOT\DC4\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SO\STX\DC2\EOT\223\SUB\ETB\EM\n\
    \\f\n\
    \\EOT\ENQ\b\STX\SI\DC2\EOT\224\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SI\SOH\DC2\EOT\224\SUB\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SI\STX\DC2\EOT\224\SUB\SO\DLE\n\
    \\f\n\
    \\EOT\ENQ\b\STX\DLE\DC2\EOT\225\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DLE\SOH\DC2\EOT\225\SUB\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DLE\STX\DC2\EOT\225\SUB\SO\DLE\n\
    \\f\n\
    \\EOT\ENQ\b\STX\DC1\DC2\EOT\226\SUB\EOT\FS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC1\SOH\DC2\EOT\226\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC1\STX\DC2\EOT\226\SUB\EM\ESC\n\
    \\f\n\
    \\EOT\ENQ\b\STX\DC2\DC2\EOT\227\SUB\EOT\FS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC2\SOH\DC2\EOT\227\SUB\EOT\SYN\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC2\STX\DC2\EOT\227\SUB\EM\ESC\n\
    \\f\n\
    \\EOT\ENQ\b\STX\DC3\DC2\EOT\228\SUB\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC3\SOH\DC2\EOT\228\SUB\EOT\SI\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC3\STX\DC2\EOT\228\SUB\DC2\DC4\n\
    \\f\n\
    \\EOT\ENQ\b\STX\DC4\DC2\EOT\229\SUB\EOT\NAK\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC4\SOH\DC2\EOT\229\SUB\EOT\SI\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\DC4\STX\DC2\EOT\229\SUB\DC2\DC4\n\
    \\f\n\
    \\EOT\ENQ\b\STX\NAK\DC2\EOT\230\SUB\EOT#\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\NAK\SOH\DC2\EOT\230\SUB\EOT\GS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\NAK\STX\DC2\EOT\230\SUB \"\n\
    \\f\n\
    \\EOT\ENQ\b\STX\SYN\DC2\EOT\231\SUB\EOT#\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SYN\SOH\DC2\EOT\231\SUB\EOT\GS\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\SYN\STX\DC2\EOT\231\SUB \"\n\
    \\f\n\
    \\EOT\ENQ\b\STX\ETB\DC2\EOT\232\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ETB\SOH\DC2\EOT\232\SUB\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\ETB\STX\DC2\EOT\232\SUB\SO\DLE\n\
    \\f\n\
    \\EOT\ENQ\b\STX\CAN\DC2\EOT\233\SUB\EOT\DC1\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\CAN\SOH\DC2\EOT\233\SUB\EOT\v\n\
    \\r\n\
    \\ENQ\ENQ\b\STX\CAN\STX\DC2\EOT\233\SUB\SO\DLE\n\
    \\r\n\
    \\ETX\EOT\132\SOH\DC2\ACK\236\SUB\NUL\240\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\132\SOH\SOH\DC2\EOT\236\SUB\b\SI\n\
    \\r\n\
    \\ENQ\EOT\132\SOH\STX\NUL\DC2\EOT\237\SUB\EOT\DC4\n\
    \\DLE\n\
    \\ACK\EOT\132\SOH\STX\NUL\EOT\DC2\ACK\237\SUB\EOT\236\SUB\DC1\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\NUL\ENQ\DC2\EOT\237\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\NUL\SOH\DC2\EOT\237\SUB\v\SI\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\NUL\ETX\DC2\EOT\237\SUB\DC2\DC3\n\
    \\r\n\
    \\ENQ\EOT\132\SOH\STX\SOH\DC2\EOT\238\SUB\EOT\EM\n\
    \\DLE\n\
    \\ACK\EOT\132\SOH\STX\SOH\EOT\DC2\ACK\238\SUB\EOT\237\SUB\DC4\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\SOH\ENQ\DC2\EOT\238\SUB\EOT\b\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\SOH\SOH\DC2\EOT\238\SUB\t\DC4\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\SOH\ETX\DC2\EOT\238\SUB\ETB\CAN\n\
    \\r\n\
    \\ENQ\EOT\132\SOH\STX\STX\DC2\EOT\239\SUB\EOT\SYN\n\
    \\DLE\n\
    \\ACK\EOT\132\SOH\STX\STX\EOT\DC2\ACK\239\SUB\EOT\238\SUB\EM\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\STX\ENQ\DC2\EOT\239\SUB\EOT\b\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\STX\SOH\DC2\EOT\239\SUB\t\DC1\n\
    \\SO\n\
    \\ACK\EOT\132\SOH\STX\STX\ETX\DC2\EOT\239\SUB\DC4\NAK\n\
    \\r\n\
    \\ETX\EOT\133\SOH\DC2\ACK\242\SUB\NUL\243\SUB\SOH\n\
    \\f\n\
    \\EOT\EOT\133\SOH\SOH\DC2\EOT\242\SUB\b\CAN\n\
    \\r\n\
    \\ETX\EOT\134\SOH\DC2\ACK\244\SUB\NUL\133\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\134\SOH\SOH\DC2\EOT\244\SUB\b\CAN\n\
    \F\n\
    \\ENQ\EOT\134\SOH\STX\NUL\DC2\EOT\246\SUB\EOT,\SUB7 The short channel id that this fee report belongs to.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\134\SOH\STX\NUL\EOT\DC2\ACK\246\SUB\EOT\244\SUB\SUB\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\NUL\ENQ\DC2\EOT\246\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\NUL\SOH\DC2\EOT\246\SUB\v\DC2\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\NUL\ETX\DC2\EOT\246\SUB\NAK\SYN\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\NUL\b\DC2\EOT\246\SUB\ETB+\n\
    \\SI\n\
    \\a\EOT\134\SOH\STX\NUL\b\ACK\DC2\EOT\246\SUB\CAN*\n\
    \=\n\
    \\ENQ\EOT\134\SOH\STX\SOH\DC2\EOT\249\SUB\EOT\GS\SUB. The channel that this fee report belongs to.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\134\SOH\STX\SOH\EOT\DC2\ACK\249\SUB\EOT\246\SUB,\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\SOH\ENQ\DC2\EOT\249\SUB\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\SOH\SOH\DC2\EOT\249\SUB\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\SOH\ETX\DC2\EOT\249\SUB\ESC\FS\n\
    \V\n\
    \\ENQ\EOT\134\SOH\STX\STX\DC2\EOT\252\SUB\EOT\FS\SUBG The base fee charged regardless of the number of milli-satoshis sent.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\134\SOH\STX\STX\EOT\DC2\ACK\252\SUB\EOT\249\SUB\GS\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\STX\ENQ\DC2\EOT\252\SUB\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\STX\SOH\DC2\EOT\252\SUB\n\
    \\ETB\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\STX\ETX\DC2\EOT\252\SUB\SUB\ESC\n\
    \i\n\
    \\ENQ\EOT\134\SOH\STX\ETX\DC2\EOT\128\ESC\EOT\SUB\SUBZ The amount charged per milli-satoshis transferred expressed in\n\
    \ millionths of a satoshi.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\134\SOH\STX\ETX\EOT\DC2\ACK\128\ESC\EOT\252\SUB\FS\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\ETX\ENQ\DC2\EOT\128\ESC\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\ETX\SOH\DC2\EOT\128\ESC\n\
    \\NAK\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\ETX\ETX\DC2\EOT\128\ESC\CAN\EM\n\
    \t\n\
    \\ENQ\EOT\134\SOH\STX\EOT\DC2\EOT\132\ESC\EOT\CAN\SUBe The effective fee rate in milli-satoshis. Computed by dividing the\n\
    \ fee_per_mil value by 1 million.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\134\SOH\STX\EOT\EOT\DC2\ACK\132\ESC\EOT\128\ESC\SUB\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\EOT\ENQ\DC2\EOT\132\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\EOT\SOH\DC2\EOT\132\ESC\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\134\SOH\STX\EOT\ETX\DC2\EOT\132\ESC\SYN\ETB\n\
    \\r\n\
    \\ETX\EOT\135\SOH\DC2\ACK\134\ESC\NUL\150\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\135\SOH\SOH\DC2\EOT\134\ESC\b\EM\n\
    \l\n\
    \\ENQ\EOT\135\SOH\STX\NUL\DC2\EOT\137\ESC\EOT/\SUB] An array of channel fee reports which describes the current fee schedule\n\
    \ for each channel.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\NUL\EOT\DC2\EOT\137\ESC\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\NUL\ACK\DC2\EOT\137\ESC\r\GS\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\NUL\SOH\DC2\EOT\137\ESC\RS*\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\NUL\ETX\DC2\EOT\137\ESC-.\n\
    \n\n\
    \\ENQ\EOT\135\SOH\STX\SOH\DC2\EOT\141\ESC\EOT\ESC\SUB_ The total amount of fee revenue (in satoshis) the switch has collected\n\
    \ over the past 24 hrs.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\135\SOH\STX\SOH\EOT\DC2\ACK\141\ESC\EOT\137\ESC/\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\SOH\ENQ\DC2\EOT\141\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\SOH\SOH\DC2\EOT\141\ESC\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\SOH\ETX\DC2\EOT\141\ESC\EM\SUB\n\
    \n\n\
    \\ENQ\EOT\135\SOH\STX\STX\DC2\EOT\145\ESC\EOT\FS\SUB_ The total amount of fee revenue (in satoshis) the switch has collected\n\
    \ over the past 1 week.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\135\SOH\STX\STX\EOT\DC2\ACK\145\ESC\EOT\141\ESC\ESC\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\STX\ENQ\DC2\EOT\145\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\STX\SOH\DC2\EOT\145\ESC\v\ETB\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\STX\ETX\DC2\EOT\145\ESC\SUB\ESC\n\
    \o\n\
    \\ENQ\EOT\135\SOH\STX\ETX\DC2\EOT\149\ESC\EOT\GS\SUB` The total amount of fee revenue (in satoshis) the switch has collected\n\
    \ over the past 1 month.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\135\SOH\STX\ETX\EOT\DC2\ACK\149\ESC\EOT\145\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\ETX\ENQ\DC2\EOT\149\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\ETX\SOH\DC2\EOT\149\ESC\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\135\SOH\STX\ETX\ETX\DC2\EOT\149\ESC\ESC\FS\n\
    \\r\n\
    \\ETX\EOT\136\SOH\DC2\ACK\152\ESC\NUL\181\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\136\SOH\SOH\DC2\EOT\152\ESC\b\ESC\n\
    \\SI\n\
    \\ENQ\EOT\136\SOH\b\NUL\DC2\ACK\153\ESC\EOT\159\ESC\ENQ\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\b\NUL\SOH\DC2\EOT\153\ESC\n\
    \\SI\n\
    \S\n\
    \\ENQ\EOT\136\SOH\STX\NUL\DC2\EOT\155\ESC\b\CAN\SUBD If set, then this update applies to all currently active channels.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\NUL\ENQ\DC2\EOT\155\ESC\b\f\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\NUL\SOH\DC2\EOT\155\ESC\r\DC3\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\NUL\ETX\DC2\EOT\155\ESC\SYN\ETB\n\
    \D\n\
    \\ENQ\EOT\136\SOH\STX\SOH\DC2\EOT\158\ESC\b$\SUB5 If set, this update will target a specific channel.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\SOH\ACK\DC2\EOT\158\ESC\b\DC4\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\SOH\SOH\DC2\EOT\158\ESC\NAK\US\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\SOH\ETX\DC2\EOT\158\ESC\"#\n\
    \V\n\
    \\ENQ\EOT\136\SOH\STX\STX\DC2\EOT\162\ESC\EOT\FS\SUBG The base fee charged regardless of the number of milli-satoshis sent.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\STX\EOT\DC2\ACK\162\ESC\EOT\159\ESC\ENQ\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\STX\ENQ\DC2\EOT\162\ESC\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\STX\SOH\DC2\EOT\162\ESC\n\
    \\ETB\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\STX\ETX\DC2\EOT\162\ESC\SUB\ESC\n\
    \}\n\
    \\ENQ\EOT\136\SOH\STX\ETX\DC2\EOT\166\ESC\EOT\CAN\SUBn The effective fee rate in milli-satoshis. The precision of this value\n\
    \ goes up to 6 decimal places, so 1e-6.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\ETX\EOT\DC2\ACK\166\ESC\EOT\162\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ETX\ENQ\DC2\EOT\166\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ETX\SOH\DC2\EOT\166\ESC\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ETX\ETX\DC2\EOT\166\ESC\SYN\ETB\n\
    \R\n\
    \\ENQ\EOT\136\SOH\STX\EOT\DC2\EOT\169\ESC\EOT\US\SUBC The required timelock delta for HTLCs forwarded over the channel.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\EOT\EOT\DC2\ACK\169\ESC\EOT\166\ESC\CAN\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\EOT\ENQ\DC2\EOT\169\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\EOT\SOH\DC2\EOT\169\ESC\v\SUB\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\EOT\ETX\DC2\EOT\169\ESC\GS\RS\n\
    \p\n\
    \\ENQ\EOT\136\SOH\STX\ENQ\DC2\EOT\173\ESC\EOT\GS\SUBa If set, the maximum HTLC size in milli-satoshis. If unset, the maximum\n\
    \ HTLC will be unchanged.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\ENQ\EOT\DC2\ACK\173\ESC\EOT\169\ESC\US\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ENQ\ENQ\DC2\EOT\173\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ENQ\SOH\DC2\EOT\173\ESC\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ENQ\ETX\DC2\EOT\173\ESC\ESC\FS\n\
    \k\n\
    \\ENQ\EOT\136\SOH\STX\ACK\DC2\EOT\177\ESC\EOT\GS\SUB\\ The minimum HTLC size in milli-satoshis. Only applied if\n\
    \ min_htlc_msat_specified is true.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\ACK\EOT\DC2\ACK\177\ESC\EOT\173\ESC\GS\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ACK\ENQ\DC2\EOT\177\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ACK\SOH\DC2\EOT\177\ESC\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\ACK\ETX\DC2\EOT\177\ESC\ESC\FS\n\
    \3\n\
    \\ENQ\EOT\136\SOH\STX\a\DC2\EOT\180\ESC\EOT%\SUB$ If true, min_htlc_msat is applied.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\136\SOH\STX\a\EOT\DC2\ACK\180\ESC\EOT\177\ESC\GS\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\a\ENQ\DC2\EOT\180\ESC\EOT\b\n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\a\SOH\DC2\EOT\180\ESC\t \n\
    \\SO\n\
    \\ACK\EOT\136\SOH\STX\a\ETX\DC2\EOT\180\ESC#$\n\
    \\r\n\
    \\ETX\EOT\137\SOH\DC2\ACK\182\ESC\NUL\183\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\137\SOH\SOH\DC2\EOT\182\ESC\b\FS\n\
    \\r\n\
    \\ETX\EOT\138\SOH\DC2\ACK\185\ESC\NUL\203\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\138\SOH\SOH\DC2\EOT\185\ESC\b \n\
    \\182\SOH\n\
    \\ENQ\EOT\138\SOH\STX\NUL\DC2\EOT\189\ESC\EOT\SUB\SUB\166\SOH Start time is the starting point of the forwarding history request. All\n\
    \ records beyond this point will be included, respecting the end time, and\n\
    \ the index offset.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\138\SOH\STX\NUL\EOT\DC2\ACK\189\ESC\EOT\185\ESC\"\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\NUL\ENQ\DC2\EOT\189\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\NUL\SOH\DC2\EOT\189\ESC\v\NAK\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\NUL\ETX\DC2\EOT\189\ESC\CAN\EM\n\
    \\219\SOH\n\
    \\ENQ\EOT\138\SOH\STX\SOH\DC2\EOT\194\ESC\EOT\CAN\SUB\203\SOH End time is the end point of the forwarding history request. The\n\
    \ response will carry at most 50k records between the start time and the\n\
    \ end time. The index offset can be used to implement pagination.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\138\SOH\STX\SOH\EOT\DC2\ACK\194\ESC\EOT\189\ESC\SUB\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\SOH\ENQ\DC2\EOT\194\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\SOH\SOH\DC2\EOT\194\ESC\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\SOH\ETX\DC2\EOT\194\ESC\SYN\ETB\n\
    \\190\SOH\n\
    \\ENQ\EOT\138\SOH\STX\STX\DC2\EOT\199\ESC\EOT\FS\SUB\174\SOH Index offset is the offset in the time series to start at. As each\n\
    \ response can only contain 50k records, callers can use this to skip\n\
    \ around within a packed time series.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\138\SOH\STX\STX\EOT\DC2\ACK\199\ESC\EOT\194\ESC\CAN\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\STX\ENQ\DC2\EOT\199\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\STX\SOH\DC2\EOT\199\ESC\v\ETB\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\STX\ETX\DC2\EOT\199\ESC\SUB\ESC\n\
    \R\n\
    \\ENQ\EOT\138\SOH\STX\ETX\DC2\EOT\202\ESC\EOT\RS\SUBC The max number of events to return in the response to this query.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\138\SOH\STX\ETX\EOT\DC2\ACK\202\ESC\EOT\199\ESC\FS\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\ETX\ENQ\DC2\EOT\202\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\ETX\SOH\DC2\EOT\202\ESC\v\EM\n\
    \\SO\n\
    \\ACK\EOT\138\SOH\STX\ETX\ETX\DC2\EOT\202\ESC\FS\GS\n\
    \\r\n\
    \\ETX\EOT\139\SOH\DC2\ACK\204\ESC\NUL\245\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\139\SOH\SOH\DC2\EOT\204\ESC\b\ETB\n\
    \x\n\
    \\ENQ\EOT\139\SOH\STX\NUL\DC2\EOT\207\ESC\EOT-\SUBi Timestamp is the time (unix epoch offset) that this circuit was\n\
    \ completed. Deprecated by timestamp_ns.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\NUL\EOT\DC2\ACK\207\ESC\EOT\204\ESC\EM\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\NUL\ENQ\DC2\EOT\207\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\NUL\SOH\DC2\EOT\207\ESC\v\DC4\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\NUL\ETX\DC2\EOT\207\ESC\ETB\CAN\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\NUL\b\DC2\EOT\207\ESC\EM,\n\
    \\SI\n\
    \\a\EOT\139\SOH\STX\NUL\b\ETX\DC2\EOT\207\ESC\SUB+\n\
    \X\n\
    \\ENQ\EOT\139\SOH\STX\SOH\DC2\EOT\210\ESC\EOT/\SUBI The incoming channel ID that carried the HTLC that created the circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\SOH\EOT\DC2\ACK\210\ESC\EOT\207\ESC-\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\SOH\ENQ\DC2\EOT\210\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\SOH\SOH\DC2\EOT\210\ESC\v\NAK\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\SOH\ETX\DC2\EOT\210\ESC\CAN\EM\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\SOH\b\DC2\EOT\210\ESC\SUB.\n\
    \\SI\n\
    \\a\EOT\139\SOH\STX\SOH\b\ACK\DC2\EOT\210\ESC\ESC-\n\
    \_\n\
    \\ENQ\EOT\139\SOH\STX\STX\DC2\EOT\214\ESC\EOT0\SUBP The outgoing channel ID that carried the preimage that completed the\n\
    \ circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\STX\EOT\DC2\ACK\214\ESC\EOT\210\ESC/\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\STX\ENQ\DC2\EOT\214\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\STX\SOH\DC2\EOT\214\ESC\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\STX\ETX\DC2\EOT\214\ESC\EM\SUB\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\STX\b\DC2\EOT\214\ESC\ESC/\n\
    \\SI\n\
    \\a\EOT\139\SOH\STX\STX\b\ACK\DC2\EOT\214\ESC\FS.\n\
    \d\n\
    \\ENQ\EOT\139\SOH\STX\ETX\DC2\EOT\218\ESC\EOT\SYN\SUBU The total amount (in satoshis) of the incoming HTLC that created half\n\
    \ the circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\ETX\EOT\DC2\ACK\218\ESC\EOT\214\ESC0\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ETX\ENQ\DC2\EOT\218\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ETX\SOH\DC2\EOT\218\ESC\v\DC1\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ETX\ETX\DC2\EOT\218\ESC\DC4\NAK\n\
    \r\n\
    \\ENQ\EOT\139\SOH\STX\EOT\DC2\EOT\222\ESC\EOT\ETB\SUBc The total amount (in satoshis) of the outgoing HTLC that created the\n\
    \ second half of the circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\EOT\EOT\DC2\ACK\222\ESC\EOT\218\ESC\SYN\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\EOT\ENQ\DC2\EOT\222\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\EOT\SOH\DC2\EOT\222\ESC\v\DC2\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\EOT\ETX\DC2\EOT\222\ESC\NAK\SYN\n\
    \O\n\
    \\ENQ\EOT\139\SOH\STX\ENQ\DC2\EOT\225\ESC\EOT\DC3\SUB@ The total fee (in satoshis) that this payment circuit carried.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\ENQ\EOT\DC2\ACK\225\ESC\EOT\222\ESC\ETB\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ENQ\ENQ\DC2\EOT\225\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ENQ\SOH\DC2\EOT\225\ESC\v\SO\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ENQ\ETX\DC2\EOT\225\ESC\DC1\DC2\n\
    \U\n\
    \\ENQ\EOT\139\SOH\STX\ACK\DC2\EOT\228\ESC\EOT\CAN\SUBF The total fee (in milli-satoshis) that this payment circuit carried.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\ACK\EOT\DC2\ACK\228\ESC\EOT\225\ESC\DC3\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ACK\ENQ\DC2\EOT\228\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ACK\SOH\DC2\EOT\228\ESC\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\ACK\ETX\DC2\EOT\228\ESC\SYN\ETB\n\
    \j\n\
    \\ENQ\EOT\139\SOH\STX\a\DC2\EOT\232\ESC\EOT\ESC\SUB[ The total amount (in milli-satoshis) of the incoming HTLC that created\n\
    \ half the circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\a\EOT\DC2\ACK\232\ESC\EOT\228\ESC\CAN\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\a\ENQ\DC2\EOT\232\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\a\SOH\DC2\EOT\232\ESC\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\a\ETX\DC2\EOT\232\ESC\EM\SUB\n\
    \x\n\
    \\ENQ\EOT\139\SOH\STX\b\DC2\EOT\236\ESC\EOT\GS\SUBi The total amount (in milli-satoshis) of the outgoing HTLC that created\n\
    \ the second half of the circuit.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\b\EOT\DC2\ACK\236\ESC\EOT\232\ESC\ESC\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\b\ENQ\DC2\EOT\236\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\b\SOH\DC2\EOT\236\ESC\v\ETB\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\b\ETX\DC2\EOT\236\ESC\SUB\FS\n\
    \n\n\
    \\ENQ\EOT\139\SOH\STX\t\DC2\EOT\240\ESC\EOT\GS\SUB_ The number of nanoseconds elapsed since January 1, 1970 UTC when this\n\
    \ circuit was completed.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\139\SOH\STX\t\EOT\DC2\ACK\240\ESC\EOT\236\ESC\GS\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\t\ENQ\DC2\EOT\240\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\t\SOH\DC2\EOT\240\ESC\v\ETB\n\
    \\SO\n\
    \\ACK\EOT\139\SOH\STX\t\ETX\DC2\EOT\240\ESC\SUB\FS\n\
    \\r\n\
    \\ETX\EOT\140\SOH\DC2\ACK\246\ESC\NUL\254\ESC\SOH\n\
    \\f\n\
    \\EOT\EOT\140\SOH\SOH\DC2\EOT\246\ESC\b!\n\
    \n\n\
    \\ENQ\EOT\140\SOH\STX\NUL\DC2\EOT\249\ESC\EOT3\SUB_ A list of forwarding events from the time slice of the time series\n\
    \ specified in the request.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\NUL\EOT\DC2\EOT\249\ESC\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\NUL\ACK\DC2\EOT\249\ESC\r\FS\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\NUL\SOH\DC2\EOT\249\ESC\GS.\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\NUL\ETX\DC2\EOT\249\ESC12\n\
    \\133\SOH\n\
    \\ENQ\EOT\140\SOH\STX\SOH\DC2\EOT\253\ESC\EOT!\SUBv The index of the last time in the set of returned forwarding events. Can\n\
    \ be used to seek further, pagination style.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\140\SOH\STX\SOH\EOT\DC2\ACK\253\ESC\EOT\249\ESC3\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\SOH\ENQ\DC2\EOT\253\ESC\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\SOH\SOH\DC2\EOT\253\ESC\v\FS\n\
    \\SO\n\
    \\ACK\EOT\140\SOH\STX\SOH\ETX\DC2\EOT\253\ESC\US \n\
    \\r\n\
    \\ETX\EOT\141\SOH\DC2\ACK\128\FS\NUL\131\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\141\SOH\SOH\DC2\EOT\128\FS\b\"\n\
    \B\n\
    \\ENQ\EOT\141\SOH\STX\NUL\DC2\EOT\130\FS\EOT \SUB3 The target channel point to obtain a back up for.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\141\SOH\STX\NUL\EOT\DC2\ACK\130\FS\EOT\128\FS$\n\
    \\SO\n\
    \\ACK\EOT\141\SOH\STX\NUL\ACK\DC2\EOT\130\FS\EOT\DLE\n\
    \\SO\n\
    \\ACK\EOT\141\SOH\STX\NUL\SOH\DC2\EOT\130\FS\DC1\ESC\n\
    \\SO\n\
    \\ACK\EOT\141\SOH\STX\NUL\ETX\DC2\EOT\130\FS\RS\US\n\
    \\r\n\
    \\ETX\EOT\142\SOH\DC2\ACK\133\FS\NUL\146\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\142\SOH\SOH\DC2\EOT\133\FS\b\NAK\n\
    \D\n\
    \\ENQ\EOT\142\SOH\STX\NUL\DC2\EOT\137\FS\EOT \SUB5\n\
    \Identifies the channel that this backup belongs to.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\142\SOH\STX\NUL\EOT\DC2\ACK\137\FS\EOT\133\FS\ETB\n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\NUL\ACK\DC2\EOT\137\FS\EOT\DLE\n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\NUL\SOH\DC2\EOT\137\FS\DC1\ESC\n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\NUL\ETX\DC2\EOT\137\FS\RS\US\n\
    \\242\SOH\n\
    \\ENQ\EOT\142\SOH\STX\SOH\DC2\EOT\145\FS\EOT\SUB\SUB\226\SOH\n\
    \Is an encrypted single-chan backup. this can be passed to\n\
    \RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in\n\
    \order to trigger the recovery protocol. When using REST, this field must be\n\
    \encoded as base64.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\142\SOH\STX\SOH\EOT\DC2\ACK\145\FS\EOT\137\FS \n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\SOH\ENQ\DC2\EOT\145\FS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\SOH\SOH\DC2\EOT\145\FS\n\
    \\NAK\n\
    \\SO\n\
    \\ACK\EOT\142\SOH\STX\SOH\ETX\DC2\EOT\145\FS\CAN\EM\n\
    \\r\n\
    \\ETX\EOT\143\SOH\DC2\ACK\148\FS\NUL\161\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\143\SOH\SOH\DC2\EOT\148\FS\b\ETB\n\
    \[\n\
    \\ENQ\EOT\143\SOH\STX\NUL\DC2\EOT\152\FS\EOT*\SUBL\n\
    \Is the set of all channels that are included in this multi-channel backup.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\NUL\EOT\DC2\EOT\152\FS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\NUL\ACK\DC2\EOT\152\FS\r\EM\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\NUL\SOH\DC2\EOT\152\FS\SUB%\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\NUL\ETX\DC2\EOT\152\FS()\n\
    \\139\STX\n\
    \\ENQ\EOT\143\SOH\STX\SOH\DC2\EOT\160\FS\EOT \SUB\251\SOH\n\
    \A single encrypted blob containing all the static channel backups of the\n\
    \channel listed above. This can be stored as a single file or blob, and\n\
    \safely be replaced with any prior/future versions. When using REST, this\n\
    \field must be encoded as base64.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\143\SOH\STX\SOH\EOT\DC2\ACK\160\FS\EOT\152\FS*\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\SOH\ENQ\DC2\EOT\160\FS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\SOH\SOH\DC2\EOT\160\FS\n\
    \\ESC\n\
    \\SO\n\
    \\ACK\EOT\143\SOH\STX\SOH\ETX\DC2\EOT\160\FS\RS\US\n\
    \\r\n\
    \\ETX\EOT\144\SOH\DC2\ACK\163\FS\NUL\164\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\144\SOH\SOH\DC2\EOT\163\FS\b\US\n\
    \\r\n\
    \\ETX\EOT\145\SOH\DC2\ACK\165\FS\NUL\177\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\145\SOH\SOH\DC2\EOT\165\FS\b\SUB\n\
    \s\n\
    \\ENQ\EOT\145\SOH\STX\NUL\DC2\EOT\170\FS\EOT+\SUBd\n\
    \The set of new channels that have been added since the last channel backup\n\
    \snapshot was requested.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\145\SOH\STX\NUL\EOT\DC2\ACK\170\FS\EOT\165\FS\FS\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\NUL\ACK\DC2\EOT\170\FS\EOT\DC2\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\NUL\SOH\DC2\EOT\170\FS\DC3&\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\NUL\ETX\DC2\EOT\170\FS)*\n\
    \]\n\
    \\ENQ\EOT\145\SOH\STX\SOH\DC2\EOT\176\FS\EOT*\SUBN\n\
    \A multi-channel backup that covers all open channels currently known to\n\
    \lnd.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\145\SOH\STX\SOH\EOT\DC2\ACK\176\FS\EOT\170\FS+\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\SOH\ACK\DC2\EOT\176\FS\EOT\DC3\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\SOH\SOH\DC2\EOT\176\FS\DC4%\n\
    \\SO\n\
    \\ACK\EOT\145\SOH\STX\SOH\ETX\DC2\EOT\176\FS()\n\
    \\r\n\
    \\ETX\EOT\146\SOH\DC2\ACK\179\FS\NUL\184\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\146\SOH\SOH\DC2\EOT\179\FS\b\SYN\n\
    \=\n\
    \\ENQ\EOT\146\SOH\STX\NUL\DC2\EOT\183\FS\EOT,\SUB.\n\
    \A set of single-chan static channel backups.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\146\SOH\STX\NUL\EOT\DC2\EOT\183\FS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\146\SOH\STX\NUL\ACK\DC2\EOT\183\FS\r\SUB\n\
    \\SO\n\
    \\ACK\EOT\146\SOH\STX\NUL\SOH\DC2\EOT\183\FS\ESC'\n\
    \\SO\n\
    \\ACK\EOT\146\SOH\STX\NUL\ETX\DC2\EOT\183\FS*+\n\
    \\r\n\
    \\ETX\EOT\147\SOH\DC2\ACK\186\FS\NUL\199\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\147\SOH\SOH\DC2\EOT\186\FS\b \n\
    \\SI\n\
    \\ENQ\EOT\147\SOH\b\NUL\DC2\ACK\187\FS\EOT\198\FS\ENQ\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\b\NUL\SOH\DC2\EOT\187\FS\n\
    \\DLE\n\
    \K\n\
    \\ENQ\EOT\147\SOH\STX\NUL\DC2\EOT\191\FS\b(\SUB<\n\
    \The channels to restore as a list of channel/backup pairs.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\NUL\ACK\DC2\EOT\191\FS\b\SYN\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\NUL\SOH\DC2\EOT\191\FS\ETB#\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\NUL\ETX\DC2\EOT\191\FS&'\n\
    \\130\SOH\n\
    \\ENQ\EOT\147\SOH\STX\SOH\DC2\EOT\197\FS\b$\SUBs\n\
    \The channels to restore in the packed multi backup format. When using\n\
    \REST, this field must be encoded as base64.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\SOH\ENQ\DC2\EOT\197\FS\b\r\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\SOH\SOH\DC2\EOT\197\FS\SO\US\n\
    \\SO\n\
    \\ACK\EOT\147\SOH\STX\SOH\ETX\DC2\EOT\197\FS\"#\n\
    \\r\n\
    \\ETX\EOT\148\SOH\DC2\ACK\200\FS\NUL\201\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\148\SOH\SOH\DC2\EOT\200\FS\b\GS\n\
    \\r\n\
    \\ETX\EOT\149\SOH\DC2\ACK\203\FS\NUL\204\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\149\SOH\SOH\DC2\EOT\203\FS\b!\n\
    \\r\n\
    \\ETX\EOT\150\SOH\DC2\ACK\206\FS\NUL\207\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\150\SOH\SOH\DC2\EOT\206\FS\b \n\
    \\r\n\
    \\ETX\EOT\151\SOH\DC2\ACK\209\FS\NUL\215\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\151\SOH\SOH\DC2\EOT\209\FS\b\SUB\n\
    \:\n\
    \\ENQ\EOT\151\SOH\STX\NUL\DC2\EOT\211\FS\EOT\SYN\SUB+ The entity a permission grants access to.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\151\SOH\STX\NUL\EOT\DC2\ACK\211\FS\EOT\209\FS\FS\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\NUL\ENQ\DC2\EOT\211\FS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\NUL\SOH\DC2\EOT\211\FS\v\DC1\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\NUL\ETX\DC2\EOT\211\FS\DC4\NAK\n\
    \,\n\
    \\ENQ\EOT\151\SOH\STX\SOH\DC2\EOT\214\FS\EOT\SYN\SUB\GS The action that is granted.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\151\SOH\STX\SOH\EOT\DC2\ACK\214\FS\EOT\211\FS\SYN\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\SOH\ENQ\DC2\EOT\214\FS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\SOH\SOH\DC2\EOT\214\FS\v\DC1\n\
    \\SO\n\
    \\ACK\EOT\151\SOH\STX\SOH\ETX\DC2\EOT\214\FS\DC4\NAK\n\
    \\r\n\
    \\ETX\EOT\152\SOH\DC2\ACK\216\FS\NUL\222\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\152\SOH\SOH\DC2\EOT\216\FS\b\ESC\n\
    \G\n\
    \\ENQ\EOT\152\SOH\STX\NUL\DC2\EOT\218\FS\EOT0\SUB8 The list of permissions the new macaroon should grant.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\NUL\EOT\DC2\EOT\218\FS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\NUL\ACK\DC2\EOT\218\FS\r\US\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\NUL\SOH\DC2\EOT\218\FS +\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\NUL\ETX\DC2\EOT\218\FS./\n\
    \Y\n\
    \\ENQ\EOT\152\SOH\STX\SOH\DC2\EOT\221\FS\EOT\ESC\SUBJ The root key ID used to create the macaroon, must be a positive integer.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\152\SOH\STX\SOH\EOT\DC2\ACK\221\FS\EOT\218\FS0\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\SOH\ENQ\DC2\EOT\221\FS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\SOH\SOH\DC2\EOT\221\FS\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\152\SOH\STX\SOH\ETX\DC2\EOT\221\FS\EM\SUB\n\
    \\r\n\
    \\ETX\EOT\153\SOH\DC2\ACK\223\FS\NUL\226\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\153\SOH\SOH\DC2\EOT\223\FS\b\FS\n\
    \G\n\
    \\ENQ\EOT\153\SOH\STX\NUL\DC2\EOT\225\FS\EOT\CAN\SUB8 The hex encoded macaroon, serialized in binary format.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\153\SOH\STX\NUL\EOT\DC2\ACK\225\FS\EOT\223\FS\RS\n\
    \\SO\n\
    \\ACK\EOT\153\SOH\STX\NUL\ENQ\DC2\EOT\225\FS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\153\SOH\STX\NUL\SOH\DC2\EOT\225\FS\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\153\SOH\STX\NUL\ETX\DC2\EOT\225\FS\SYN\ETB\n\
    \\r\n\
    \\ETX\EOT\154\SOH\DC2\ACK\228\FS\NUL\229\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\154\SOH\SOH\DC2\EOT\228\FS\b\RS\n\
    \\r\n\
    \\ETX\EOT\155\SOH\DC2\ACK\230\FS\NUL\233\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\155\SOH\SOH\DC2\EOT\230\FS\b\US\n\
    \:\n\
    \\ENQ\EOT\155\SOH\STX\NUL\DC2\EOT\232\FS\EOT%\SUB+ The list of root key IDs that are in use.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\155\SOH\STX\NUL\EOT\DC2\EOT\232\FS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\155\SOH\STX\NUL\ENQ\DC2\EOT\232\FS\r\DC3\n\
    \\SO\n\
    \\ACK\EOT\155\SOH\STX\NUL\SOH\DC2\EOT\232\FS\DC4 \n\
    \\SO\n\
    \\ACK\EOT\155\SOH\STX\NUL\ETX\DC2\EOT\232\FS#$\n\
    \\r\n\
    \\ETX\EOT\156\SOH\DC2\ACK\235\FS\NUL\238\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\156\SOH\SOH\DC2\EOT\235\FS\b\US\n\
    \/\n\
    \\ENQ\EOT\156\SOH\STX\NUL\DC2\EOT\237\FS\EOT\ESC\SUB  The root key ID to be removed.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\156\SOH\STX\NUL\EOT\DC2\ACK\237\FS\EOT\235\FS!\n\
    \\SO\n\
    \\ACK\EOT\156\SOH\STX\NUL\ENQ\DC2\EOT\237\FS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\156\SOH\STX\NUL\SOH\DC2\EOT\237\FS\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\156\SOH\STX\NUL\ETX\DC2\EOT\237\FS\EM\SUB\n\
    \\r\n\
    \\ETX\EOT\157\SOH\DC2\ACK\239\FS\NUL\242\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\157\SOH\SOH\DC2\EOT\239\FS\b \n\
    \E\n\
    \\ENQ\EOT\157\SOH\STX\NUL\DC2\EOT\241\FS\EOT\NAK\SUB6 A boolean indicates that the deletion is successful.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\157\SOH\STX\NUL\EOT\DC2\ACK\241\FS\EOT\239\FS\"\n\
    \\SO\n\
    \\ACK\EOT\157\SOH\STX\NUL\ENQ\DC2\EOT\241\FS\EOT\b\n\
    \\SO\n\
    \\ACK\EOT\157\SOH\STX\NUL\SOH\DC2\EOT\241\FS\t\DLE\n\
    \\SO\n\
    \\ACK\EOT\157\SOH\STX\NUL\ETX\DC2\EOT\241\FS\DC3\DC4\n\
    \\r\n\
    \\ETX\EOT\158\SOH\DC2\ACK\244\FS\NUL\247\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\158\SOH\SOH\DC2\EOT\244\FS\b\RS\n\
    \0\n\
    \\ENQ\EOT\158\SOH\STX\NUL\DC2\EOT\246\FS\EOT0\SUB! A list of macaroon permissions.\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\158\SOH\STX\NUL\EOT\DC2\EOT\246\FS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\158\SOH\STX\NUL\ACK\DC2\EOT\246\FS\r\US\n\
    \\SO\n\
    \\ACK\EOT\158\SOH\STX\NUL\SOH\DC2\EOT\246\FS +\n\
    \\SO\n\
    \\ACK\EOT\158\SOH\STX\NUL\ETX\DC2\EOT\246\FS./\n\
    \\r\n\
    \\ETX\EOT\159\SOH\DC2\ACK\249\FS\NUL\250\FS\SOH\n\
    \\f\n\
    \\EOT\EOT\159\SOH\SOH\DC2\EOT\249\FS\b\RS\n\
    \\r\n\
    \\ETX\EOT\160\SOH\DC2\ACK\251\FS\NUL\129\GS\SOH\n\
    \\f\n\
    \\EOT\EOT\160\SOH\SOH\DC2\EOT\251\FS\b\US\n\
    \j\n\
    \\ENQ\EOT\160\SOH\STX\NUL\DC2\EOT\128\GS\EOT?\SUB[\n\
    \A map between all RPC method URIs and their required macaroon permissions to\n\
    \access them.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\160\SOH\STX\NUL\EOT\DC2\ACK\128\GS\EOT\251\FS!\n\
    \\SO\n\
    \\ACK\EOT\160\SOH\STX\NUL\ACK\DC2\EOT\128\GS\EOT'\n\
    \\SO\n\
    \\ACK\EOT\160\SOH\STX\NUL\SOH\DC2\EOT\128\GS(:\n\
    \\SO\n\
    \\ACK\EOT\160\SOH\STX\NUL\ETX\DC2\EOT\128\GS=>\n\
    \\r\n\
    \\ETX\EOT\161\SOH\DC2\ACK\131\GS\NUL\210\GS\SOH\n\
    \\f\n\
    \\EOT\EOT\161\SOH\SOH\DC2\EOT\131\GS\b\SI\n\
    \\SI\n\
    \\ENQ\EOT\161\SOH\EOT\NUL\DC2\ACK\132\GS\EOT\180\GS\ENQ\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\EOT\NUL\SOH\DC2\EOT\132\GS\t\DC4\n\
    \\185\SOH\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\NUL\DC2\EOT\138\GS\b\NAK\SUB\167\SOH\n\
    \The numbers assigned in this enumeration match the failure codes as\n\
    \defined in BOLT #4. Because protobuf 3 requires enums to start with 0,\n\
    \a RESERVED value is added.\n\
    \\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\NUL\SOH\DC2\EOT\138\GS\b\DLE\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\NUL\STX\DC2\EOT\138\GS\DC3\DC4\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\SOH\DC2\EOT\140\GS\b1\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SOH\SOH\DC2\EOT\140\GS\b,\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SOH\STX\DC2\EOT\140\GS/0\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\STX\DC2\EOT\141\GS\b%\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\STX\SOH\DC2\EOT\141\GS\b \n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\STX\STX\DC2\EOT\141\GS#$\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\ETX\DC2\EOT\142\GS\b(\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ETX\SOH\DC2\EOT\142\GS\b#\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ETX\STX\DC2\EOT\142\GS&'\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\EOT\DC2\EOT\143\GS\b(\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\EOT\SOH\DC2\EOT\143\GS\b#\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\EOT\STX\DC2\EOT\143\GS&'\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\ENQ\DC2\EOT\144\GS\b\"\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ENQ\SOH\DC2\EOT\144\GS\b\GS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ENQ\STX\DC2\EOT\144\GS !\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\ACK\DC2\EOT\145\GS\b\SUB\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ACK\SOH\DC2\EOT\145\GS\b\NAK\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ACK\STX\DC2\EOT\145\GS\CAN\EM\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\a\DC2\EOT\146\GS\b\FS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\a\SOH\DC2\EOT\146\GS\b\ETB\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\a\STX\DC2\EOT\146\GS\SUB\ESC\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\b\DC2\EOT\147\GS\b\"\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\b\SOH\DC2\EOT\147\GS\b\GS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\b\STX\DC2\EOT\147\GS !\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\t\DC2\EOT\148\GS\b\US\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\t\SOH\DC2\EOT\148\GS\b\SUB\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\t\STX\DC2\EOT\148\GS\GS\RS\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\n\
    \\DC2\EOT\149\GS\b\US\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\n\
    \\SOH\DC2\EOT\149\GS\b\EM\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\n\
    \\STX\DC2\EOT\149\GS\FS\RS\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\v\DC2\EOT\150\GS\b\"\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\v\SOH\DC2\EOT\150\GS\b\FS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\v\STX\DC2\EOT\150\GS\US!\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\f\DC2\EOT\151\GS\b\RS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\f\SOH\DC2\EOT\151\GS\b\CAN\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\f\STX\DC2\EOT\151\GS\ESC\GS\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\r\DC2\EOT\152\GS\b#\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\r\SOH\DC2\EOT\152\GS\b\GS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\r\STX\DC2\EOT\152\GS \"\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\SO\DC2\EOT\153\GS\b\RS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SO\SOH\DC2\EOT\153\GS\b\CAN\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SO\STX\DC2\EOT\153\GS\ESC\GS\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\SI\DC2\EOT\154\GS\b'\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SI\SOH\DC2\EOT\154\GS\b!\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SI\STX\DC2\EOT\154\GS$&\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\DLE\DC2\EOT\155\GS\b+\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DLE\SOH\DC2\EOT\155\GS\b%\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DLE\STX\DC2\EOT\155\GS(*\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\DC1\DC2\EOT\156\GS\b.\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC1\SOH\DC2\EOT\156\GS\b(\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC1\STX\DC2\EOT\156\GS+-\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\DC2\DC2\EOT\157\GS\b\US\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC2\SOH\DC2\EOT\157\GS\b\EM\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC2\STX\DC2\EOT\157\GS\FS\RS\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\DC3\DC2\EOT\158\GS\b$\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC3\SOH\DC2\EOT\158\GS\b\RS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC3\STX\DC2\EOT\158\GS!#\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\DC4\DC2\EOT\159\GS\b$\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC4\SOH\DC2\EOT\159\GS\b\RS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\DC4\STX\DC2\EOT\159\GS!#\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\NAK\DC2\EOT\160\GS\b'\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\NAK\SOH\DC2\EOT\160\GS\b!\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\NAK\STX\DC2\EOT\160\GS$&\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\SYN\DC2\EOT\161\GS\b\FS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SYN\SOH\DC2\EOT\161\GS\b\SYN\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SYN\STX\DC2\EOT\161\GS\EM\ESC\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\ETB\DC2\EOT\162\GS\b\EM\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ETB\SOH\DC2\EOT\162\GS\b\DC3\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ETB\STX\DC2\EOT\162\GS\SYN\CAN\n\
    \\SI\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\CAN\DC2\EOT\163\GS\b#\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\CAN\SOH\DC2\EOT\163\GS\b\GS\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\CAN\STX\DC2\EOT\163\GS \"\n\
    \.\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\EM\DC2\EOT\168\GS\b\US\SUB\GS\n\
    \An internal error occurred.\n\
    \\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\EM\SOH\DC2\EOT\168\GS\b\CAN\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\EM\STX\DC2\EOT\168\GS\ESC\RS\n\
    \Y\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\SUB\DC2\EOT\173\GS\b\RS\SUBH\n\
    \The error source is known, but the failure itself couldn't be decoded.\n\
    \\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SUB\SOH\DC2\EOT\173\GS\b\ETB\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\SUB\STX\DC2\EOT\173\GS\SUB\GS\n\
    \\155\SOH\n\
    \\a\EOT\161\SOH\EOT\NUL\STX\ESC\DC2\EOT\179\GS\b!\SUB\137\SOH\n\
    \An unreadable failure result is returned if the received failure message\n\
    \cannot be decrypted. In that case the error source is unknown.\n\
    \\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ESC\SOH\DC2\EOT\179\GS\b\SUB\n\
    \\DLE\n\
    \\b\EOT\161\SOH\EOT\NUL\STX\ESC\STX\DC2\EOT\179\GS\GS \n\
    \>\n\
    \\ENQ\EOT\161\SOH\STX\NUL\DC2\EOT\183\GS\EOT\EM\SUB/ Failure code as defined in the Lightning spec\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\NUL\EOT\DC2\ACK\183\GS\EOT\180\GS\ENQ\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\NUL\ACK\DC2\EOT\183\GS\EOT\SI\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\NUL\SOH\DC2\EOT\183\GS\DLE\DC4\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\NUL\ETX\DC2\EOT\183\GS\ETB\CAN\n\
    \\f\n\
    \\EOT\EOT\161\SOH\t\DC2\EOT\185\GS\EOT\SI\n\
    \\r\n\
    \\ENQ\EOT\161\SOH\t\NUL\DC2\EOT\185\GS\r\SO\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\t\NUL\SOH\DC2\EOT\185\GS\r\SO\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\t\NUL\STX\DC2\EOT\185\GS\r\SO\n\
    \4\n\
    \\ENQ\EOT\161\SOH\STX\SOH\DC2\EOT\188\GS\EOT%\SUB% An optional channel update message.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\SOH\EOT\DC2\ACK\188\GS\EOT\185\GS\SI\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\SOH\ACK\DC2\EOT\188\GS\EOT\DC1\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\SOH\SOH\DC2\EOT\188\GS\DC2 \n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\SOH\ETX\DC2\EOT\188\GS#$\n\
    \5\n\
    \\ENQ\EOT\161\SOH\STX\STX\DC2\EOT\191\GS\EOT\EM\SUB& A failure type-dependent htlc value.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\STX\EOT\DC2\ACK\191\GS\EOT\188\GS%\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\STX\ENQ\DC2\EOT\191\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\STX\SOH\DC2\EOT\191\GS\v\DC4\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\STX\ETX\DC2\EOT\191\GS\ETB\CAN\n\
    \5\n\
    \\ENQ\EOT\161\SOH\STX\ETX\DC2\EOT\194\GS\EOT\FS\SUB& The sha256 sum of the onion payload.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\ETX\EOT\DC2\ACK\194\GS\EOT\191\GS\EM\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ETX\ENQ\DC2\EOT\194\GS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ETX\SOH\DC2\EOT\194\GS\n\
    \\ETB\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ETX\ETX\DC2\EOT\194\GS\SUB\ESC\n\
    \<\n\
    \\ENQ\EOT\161\SOH\STX\EOT\DC2\EOT\197\GS\EOT\ESC\SUB- A failure type-dependent cltv expiry value.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\EOT\EOT\DC2\ACK\197\GS\EOT\194\GS\FS\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\EOT\ENQ\DC2\EOT\197\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\EOT\SOH\DC2\EOT\197\GS\v\SYN\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\EOT\ETX\DC2\EOT\197\GS\EM\SUB\n\
    \6\n\
    \\ENQ\EOT\161\SOH\STX\ENQ\DC2\EOT\200\GS\EOT\NAK\SUB' A failure type-dependent flags value.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\ENQ\EOT\DC2\ACK\200\GS\EOT\197\GS\ESC\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ENQ\ENQ\DC2\EOT\200\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ENQ\SOH\DC2\EOT\200\GS\v\DLE\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ENQ\ETX\DC2\EOT\200\GS\DC3\DC4\n\
    \\146\SOH\n\
    \\ENQ\EOT\161\SOH\STX\ACK\DC2\EOT\206\GS\EOT$\SUB\130\SOH\n\
    \The position in the path of the intermediate or final node that generated\n\
    \the failure message. Position zero is the sender node.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\ACK\EOT\DC2\ACK\206\GS\EOT\200\GS\NAK\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ACK\ENQ\DC2\EOT\206\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ACK\SOH\DC2\EOT\206\GS\v\US\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\ACK\ETX\DC2\EOT\206\GS\"#\n\
    \7\n\
    \\ENQ\EOT\161\SOH\STX\a\DC2\EOT\209\GS\EOT\SYN\SUB( A failure type-dependent block height.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\161\SOH\STX\a\EOT\DC2\ACK\209\GS\EOT\206\GS$\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\a\ENQ\DC2\EOT\209\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\a\SOH\DC2\EOT\209\GS\v\DC1\n\
    \\SO\n\
    \\ACK\EOT\161\SOH\STX\a\ETX\DC2\EOT\209\GS\DC4\NAK\n\
    \\r\n\
    \\ETX\EOT\162\SOH\DC2\ACK\212\GS\NUL\165\RS\SOH\n\
    \\f\n\
    \\EOT\EOT\162\SOH\SOH\DC2\EOT\212\GS\b\NAK\n\
    \e\n\
    \\ENQ\EOT\162\SOH\STX\NUL\DC2\EOT\217\GS\EOT\CAN\SUBV\n\
    \The signature that validates the announced data and proves the ownership\n\
    \of node id.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\NUL\EOT\DC2\ACK\217\GS\EOT\212\GS\ETB\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\NUL\ENQ\DC2\EOT\217\GS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\NUL\SOH\DC2\EOT\217\GS\n\
    \\DC3\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\NUL\ETX\DC2\EOT\217\GS\SYN\ETB\n\
    \\226\SOH\n\
    \\ENQ\EOT\162\SOH\STX\SOH\DC2\EOT\225\GS\EOT\EM\SUB\210\SOH\n\
    \The target chain that this channel was opened within. This value\n\
    \should be the genesis hash of the target chain. Along with the short\n\
    \channel ID, this uniquely identifies the channel globally in a\n\
    \blockchain.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\SOH\EOT\DC2\ACK\225\GS\EOT\217\GS\CAN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\SOH\ENQ\DC2\EOT\225\GS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\SOH\SOH\DC2\EOT\225\GS\n\
    \\DC4\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\SOH\ETX\DC2\EOT\225\GS\ETB\CAN\n\
    \C\n\
    \\ENQ\EOT\162\SOH\STX\STX\DC2\EOT\230\GS\EOT,\SUB4\n\
    \The unique description of the funding transaction.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\STX\EOT\DC2\ACK\230\GS\EOT\225\GS\EM\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\STX\ENQ\DC2\EOT\230\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\STX\SOH\DC2\EOT\230\GS\v\DC2\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\STX\ETX\DC2\EOT\230\GS\NAK\SYN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\STX\b\DC2\EOT\230\GS\ETB+\n\
    \\SI\n\
    \\a\EOT\162\SOH\STX\STX\b\ACK\DC2\EOT\230\GS\CAN*\n\
    \\170\SOH\n\
    \\ENQ\EOT\162\SOH\STX\ETX\DC2\EOT\237\GS\EOT\EM\SUB\154\SOH\n\
    \A timestamp that allows ordering in the case of multiple announcements.\n\
    \We should ignore the message if timestamp is not greater than the\n\
    \last-received.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\ETX\EOT\DC2\ACK\237\GS\EOT\230\GS,\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ETX\ENQ\DC2\EOT\237\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ETX\SOH\DC2\EOT\237\GS\v\DC4\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ETX\ETX\DC2\EOT\237\GS\ETB\CAN\n\
    \\193\SOH\n\
    \\ENQ\EOT\162\SOH\STX\EOT\DC2\EOT\244\GS\EOT\RS\SUB\177\SOH\n\
    \The bitfield that describes whether optional fields are present in this\n\
    \update. Currently, the least-significant bit must be set to 1 if the\n\
    \optional field MaxHtlc is present.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\EOT\EOT\DC2\ACK\244\GS\EOT\237\GS\EM\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\EOT\ENQ\DC2\EOT\244\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\EOT\SOH\DC2\EOT\244\GS\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\EOT\ETX\DC2\EOT\244\GS\ESC\GS\n\
    \\218\STX\n\
    \\ENQ\EOT\162\SOH\STX\ENQ\DC2\EOT\253\GS\EOT\GS\SUB\202\STX\n\
    \The bitfield that describes additional meta-data concerning how the\n\
    \update is to be interpreted. Currently, the least-significant bit must be\n\
    \set to 0 if the creating node corresponds to the first node in the\n\
    \previously sent channel announcement and 1 otherwise. If the second bit\n\
    \is set, then the channel is set to be disabled.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\ENQ\EOT\DC2\ACK\253\GS\EOT\244\GS\RS\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ENQ\ENQ\DC2\EOT\253\GS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ENQ\SOH\DC2\EOT\253\GS\v\CAN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ENQ\ETX\DC2\EOT\253\GS\ESC\FS\n\
    \\151\STX\n\
    \\ENQ\EOT\162\SOH\STX\ACK\DC2\EOT\133\RS\EOT\US\SUB\135\STX\n\
    \The minimum number of blocks this node requires to be added to the expiry\n\
    \of HTLCs. This is a security parameter determined by the node operator.\n\
    \This value represents the required gap between the time locks of the\n\
    \incoming and outgoing HTLC's set to this node.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\ACK\EOT\DC2\ACK\133\RS\EOT\253\GS\GS\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ACK\ENQ\DC2\EOT\133\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ACK\SOH\DC2\EOT\133\RS\v\SUB\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\ACK\ETX\DC2\EOT\133\RS\GS\RS\n\
    \?\n\
    \\ENQ\EOT\162\SOH\STX\a\DC2\EOT\138\RS\EOT!\SUB0\n\
    \The minimum HTLC value which will be accepted.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\a\EOT\DC2\ACK\138\RS\EOT\133\RS\US\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\a\ENQ\DC2\EOT\138\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\a\SOH\DC2\EOT\138\RS\v\FS\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\a\ETX\DC2\EOT\138\RS\US \n\
    \\194\SOH\n\
    \\ENQ\EOT\162\SOH\STX\b\DC2\EOT\145\RS\EOT\CAN\SUB\178\SOH\n\
    \The base fee that must be used for incoming HTLC's to this particular\n\
    \channel. This value will be tacked onto the required for a payment\n\
    \independent of the size of the payment.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\b\EOT\DC2\ACK\145\RS\EOT\138\RS!\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\b\ENQ\DC2\EOT\145\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\b\SOH\DC2\EOT\145\RS\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\b\ETX\DC2\EOT\145\RS\SYN\ETB\n\
    \N\n\
    \\ENQ\EOT\162\SOH\STX\t\DC2\EOT\150\RS\EOT\CAN\SUB?\n\
    \The fee rate that will be charged per millionth of a satoshi.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\t\EOT\DC2\ACK\150\RS\EOT\145\RS\CAN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\t\ENQ\DC2\EOT\150\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\t\SOH\DC2\EOT\150\RS\v\DC3\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\t\ETX\DC2\EOT\150\RS\SYN\ETB\n\
    \?\n\
    \\ENQ\EOT\162\SOH\STX\n\
    \\DC2\EOT\155\RS\EOT\"\SUB0\n\
    \The maximum HTLC value which will be accepted.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\n\
    \\EOT\DC2\ACK\155\RS\EOT\150\RS\CAN\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\n\
    \\ENQ\DC2\EOT\155\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\n\
    \\SOH\DC2\EOT\155\RS\v\FS\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\n\
    \\ETX\DC2\EOT\155\RS\US!\n\
    \\216\STX\n\
    \\ENQ\EOT\162\SOH\STX\v\DC2\EOT\164\RS\EOT!\SUB\200\STX\n\
    \The set of data that was appended to this message, some of which we may\n\
    \not actually know how to iterate or parse. By holding onto this data, we\n\
    \ensure that we're able to properly validate the set of signatures that\n\
    \cover these new fields, and ensure we're able to make upgrades to the\n\
    \network in a forwards compatible manner.\n\
    \\n\
    \\DLE\n\
    \\ACK\EOT\162\SOH\STX\v\EOT\DC2\ACK\164\RS\EOT\155\RS\"\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\v\ENQ\DC2\EOT\164\RS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\v\SOH\DC2\EOT\164\RS\n\
    \\ESC\n\
    \\SO\n\
    \\ACK\EOT\162\SOH\STX\v\ETX\DC2\EOT\164\RS\RS \n\
    \\r\n\
    \\ETX\EOT\163\SOH\DC2\ACK\167\RS\NUL\171\RS\SOH\n\
    \\f\n\
    \\EOT\EOT\163\SOH\SOH\DC2\EOT\167\RS\b\DC2\n\
    \\r\n\
    \\ENQ\EOT\163\SOH\STX\NUL\DC2\EOT\168\RS\EOT\DC4\n\
    \\DLE\n\
    \\ACK\EOT\163\SOH\STX\NUL\EOT\DC2\ACK\168\RS\EOT\167\RS\DC4\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\NUL\ENQ\DC2\EOT\168\RS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\NUL\SOH\DC2\EOT\168\RS\n\
    \\SI\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\NUL\ETX\DC2\EOT\168\RS\DC2\DC3\n\
    \\r\n\
    \\ENQ\EOT\163\SOH\STX\SOH\DC2\EOT\169\RS\EOT\CAN\n\
    \\DLE\n\
    \\ACK\EOT\163\SOH\STX\SOH\EOT\DC2\ACK\169\RS\EOT\168\RS\DC4\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\SOH\ENQ\DC2\EOT\169\RS\EOT\t\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\SOH\SOH\DC2\EOT\169\RS\n\
    \\DC3\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\SOH\ETX\DC2\EOT\169\RS\SYN\ETB\n\
    \\r\n\
    \\ENQ\EOT\163\SOH\STX\STX\DC2\EOT\170\RS\EOT\CAN\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\STX\EOT\DC2\EOT\170\RS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\STX\ACK\DC2\EOT\170\RS\r\SI\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\STX\SOH\DC2\EOT\170\RS\DLE\DC3\n\
    \\SO\n\
    \\ACK\EOT\163\SOH\STX\STX\ETX\DC2\EOT\170\RS\SYN\ETB\n\
    \\r\n\
    \\ETX\EOT\164\SOH\DC2\ACK\173\RS\NUL\176\RS\SOH\n\
    \\f\n\
    \\EOT\EOT\164\SOH\SOH\DC2\EOT\173\RS\b\n\
    \\n\
    \\r\n\
    \\ENQ\EOT\164\SOH\STX\NUL\DC2\EOT\174\RS\EOT\SYN\n\
    \\DLE\n\
    \\ACK\EOT\164\SOH\STX\NUL\EOT\DC2\ACK\174\RS\EOT\173\RS\f\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\NUL\ENQ\DC2\EOT\174\RS\EOT\n\
    \\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\NUL\SOH\DC2\EOT\174\RS\v\DC1\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\NUL\ETX\DC2\EOT\174\RS\DC4\NAK\n\
    \\r\n\
    \\ENQ\EOT\164\SOH\STX\SOH\DC2\EOT\175\RS\EOT \n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\SOH\EOT\DC2\EOT\175\RS\EOT\f\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\SOH\ENQ\DC2\EOT\175\RS\r\DC3\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\SOH\SOH\DC2\EOT\175\RS\DC4\ESC\n\
    \\SO\n\
    \\ACK\EOT\164\SOH\STX\SOH\ETX\DC2\EOT\175\RS\RS\USb\ACKproto3"