diff --git a/Proto/Utxorpc/V1alpha/Build/Build.hs b/Proto/Utxorpc/V1alpha/Build/Build.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Build/Build.hs
@@ -0,0 +1,2598 @@
+{- This file was auto-generated from utxorpc/v1alpha/build/build.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.Utxorpc.V1alpha.Build.Build (
+        LedgerStateService(..), AnyChainUtxo(), AnyChainUtxo'Chain(..),
+        _AnyChainUtxo'Cardano, ChainParam(), ChainPoint(),
+        GetChainParamRequest(), GetChainParamResponse(),
+        GetChainTipRequest(), GetChainTipResponse(),
+        GetUtxoByAddressRequest(), GetUtxoByAddressResponse(),
+        GetUtxoByRefRequest(), GetUtxoByRefResponse(), HoldUtxoRequest(),
+        HoldUtxoResponse(), UtxoRef()
+    ) 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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.maybe'chain' @:: Lens' AnyChainUtxo (Prelude.Maybe AnyChainUtxo'Chain)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.maybe'cardano' @:: Lens' AnyChainUtxo (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.cardano' @:: Lens' AnyChainUtxo Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput@ -}
+data AnyChainUtxo
+  = AnyChainUtxo'_constructor {_AnyChainUtxo'chain :: !(Prelude.Maybe AnyChainUtxo'Chain),
+                               _AnyChainUtxo'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainUtxo where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainUtxo'Chain
+  = AnyChainUtxo'Cardano !Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainUtxo "maybe'chain" (Prelude.Maybe AnyChainUtxo'Chain) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainUtxo'chain (\ x__ y__ -> x__ {_AnyChainUtxo'chain = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainUtxo "maybe'cardano" (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainUtxo'chain (\ x__ y__ -> x__ {_AnyChainUtxo'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainUtxo'Cardano x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainUtxo'Cardano y__))
+instance Data.ProtoLens.Field.HasField AnyChainUtxo "cardano" Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainUtxo'chain (\ x__ y__ -> x__ {_AnyChainUtxo'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainUtxo'Cardano x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainUtxo'Cardano y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message AnyChainUtxo where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.build.AnyChainUtxo"
+  packedMessageDescriptor _
+    = "\n\
+      \\fAnyChainUtxo\DC2=\n\
+      \\acardano\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputH\NULR\acardanoB\a\n\
+      \\ENQchain"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        cardano__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cardano"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'cardano")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainUtxo
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, cardano__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainUtxo'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainUtxo'_unknownFields = y__})
+  defMessage
+    = AnyChainUtxo'_constructor
+        {_AnyChainUtxo'chain = Prelude.Nothing,
+         _AnyChainUtxo'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainUtxo -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainUtxo
+        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)
+                                       "cardano"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"cardano") 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) "AnyChainUtxo"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'chain") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainUtxo'Cardano 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 AnyChainUtxo where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainUtxo'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainUtxo'chain x__) ())
+instance Control.DeepSeq.NFData AnyChainUtxo'Chain where
+  rnf (AnyChainUtxo'Cardano x__) = Control.DeepSeq.rnf x__
+_AnyChainUtxo'Cardano ::
+  Data.ProtoLens.Prism.Prism' AnyChainUtxo'Chain Proto.Utxorpc.V1alpha.Cardano.Cardano.TxOutput
+_AnyChainUtxo'Cardano
+  = Data.ProtoLens.Prism.prism'
+      AnyChainUtxo'Cardano
+      (\ p__
+         -> case p__ of
+              (AnyChainUtxo'Cardano p__val) -> Prelude.Just p__val)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.key' @:: Lens' ChainParam Data.Text.Text@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.value' @:: Lens' ChainParam Data.ByteString.ByteString@ -}
+data ChainParam
+  = ChainParam'_constructor {_ChainParam'key :: !Data.Text.Text,
+                             _ChainParam'value :: !Data.ByteString.ByteString,
+                             _ChainParam'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ChainParam where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ChainParam "key" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ChainParam'key (\ x__ y__ -> x__ {_ChainParam'key = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ChainParam "value" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ChainParam'value (\ x__ y__ -> x__ {_ChainParam'value = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ChainParam where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.build.ChainParam"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \ChainParam\DC2\DLE\n\
+      \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
+      \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue"
+  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 ChainParam
+        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 ChainParam
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, key__field_descriptor),
+           (Data.ProtoLens.Tag 2, value__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ChainParam'_unknownFields
+        (\ x__ y__ -> x__ {_ChainParam'_unknownFields = y__})
+  defMessage
+    = ChainParam'_constructor
+        {_ChainParam'key = Data.ProtoLens.fieldDefault,
+         _ChainParam'value = Data.ProtoLens.fieldDefault,
+         _ChainParam'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ChainParam -> Data.ProtoLens.Encoding.Bytes.Parser ChainParam
+        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.getText
+                                             (Prelude.fromIntegral len))
+                                       "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) "ChainParam"
+  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 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 ChainParam where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ChainParam'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_ChainParam'key x__)
+                (Control.DeepSeq.deepseq (_ChainParam'value x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.slot' @:: Lens' ChainPoint Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.height' @:: Lens' ChainPoint Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.hash' @:: Lens' ChainPoint Data.ByteString.ByteString@ -}
+data ChainPoint
+  = ChainPoint'_constructor {_ChainPoint'slot :: !Data.Word.Word64,
+                             _ChainPoint'height :: !Data.Word.Word64,
+                             _ChainPoint'hash :: !Data.ByteString.ByteString,
+                             _ChainPoint'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ChainPoint where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ChainPoint "slot" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ChainPoint'slot (\ x__ y__ -> x__ {_ChainPoint'slot = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ChainPoint "height" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ChainPoint'height (\ x__ y__ -> x__ {_ChainPoint'height = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ChainPoint "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ChainPoint'hash (\ x__ y__ -> x__ {_ChainPoint'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ChainPoint where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.build.ChainPoint"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \ChainPoint\DC2\DC2\n\
+      \\EOTslot\CAN\SOH \SOH(\EOTR\EOTslot\DC2\SYN\n\
+      \\ACKheight\CAN\STX \SOH(\EOTR\ACKheight\DC2\DC2\n\
+      \\EOThash\CAN\ETX \SOH(\fR\EOThash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        slot__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "slot"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"slot")) ::
+              Data.ProtoLens.FieldDescriptor ChainPoint
+        height__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "height"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"height")) ::
+              Data.ProtoLens.FieldDescriptor ChainPoint
+        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 ChainPoint
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, slot__field_descriptor),
+           (Data.ProtoLens.Tag 2, height__field_descriptor),
+           (Data.ProtoLens.Tag 3, hash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ChainPoint'_unknownFields
+        (\ x__ y__ -> x__ {_ChainPoint'_unknownFields = y__})
+  defMessage
+    = ChainPoint'_constructor
+        {_ChainPoint'slot = Data.ProtoLens.fieldDefault,
+         _ChainPoint'height = Data.ProtoLens.fieldDefault,
+         _ChainPoint'hash = Data.ProtoLens.fieldDefault,
+         _ChainPoint'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ChainPoint -> Data.ProtoLens.Encoding.Bytes.Parser ChainPoint
+        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 "slot"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"slot") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "height"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"height") 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"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"hash") 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) "ChainPoint"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"slot") _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 @"height") _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 @"hash") _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 ChainPoint where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ChainPoint'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_ChainPoint'slot x__)
+                (Control.DeepSeq.deepseq
+                   (_ChainPoint'height x__)
+                   (Control.DeepSeq.deepseq (_ChainPoint'hash x__) ())))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.param' @:: Lens' GetChainParamRequest [Data.Text.Text]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'param' @:: Lens' GetChainParamRequest (Data.Vector.Vector Data.Text.Text)@ -}
+data GetChainParamRequest
+  = GetChainParamRequest'_constructor {_GetChainParamRequest'param :: !(Data.Vector.Vector Data.Text.Text),
+                                       _GetChainParamRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetChainParamRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetChainParamRequest "param" [Data.Text.Text] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainParamRequest'param
+           (\ x__ y__ -> x__ {_GetChainParamRequest'param = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetChainParamRequest "vec'param" (Data.Vector.Vector Data.Text.Text) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainParamRequest'param
+           (\ x__ y__ -> x__ {_GetChainParamRequest'param = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetChainParamRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetChainParamRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC4GetChainParamRequest\DC2\DC4\n\
+      \\ENQparam\CAN\SOH \ETX(\tR\ENQparam"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        param__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "param"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"param")) ::
+              Data.ProtoLens.FieldDescriptor GetChainParamRequest
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, param__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetChainParamRequest'_unknownFields
+        (\ x__ y__ -> x__ {_GetChainParamRequest'_unknownFields = y__})
+  defMessage
+    = GetChainParamRequest'_constructor
+        {_GetChainParamRequest'param = Data.Vector.Generic.empty,
+         _GetChainParamRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetChainParamRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetChainParamRequest
+        loop x mutable'param
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'param <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'param)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'param") frozen'param 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.getText
+                                              (Prelude.fromIntegral len))
+                                        "param"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'param 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'param
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'param <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'param)
+          "GetChainParamRequest"
+  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'param") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData GetChainParamRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetChainParamRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_GetChainParamRequest'param x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.param' @:: Lens' GetChainParamResponse [ChainParam]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'param' @:: Lens' GetChainParamResponse (Data.Vector.Vector ChainParam)@ -}
+data GetChainParamResponse
+  = GetChainParamResponse'_constructor {_GetChainParamResponse'param :: !(Data.Vector.Vector ChainParam),
+                                        _GetChainParamResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetChainParamResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetChainParamResponse "param" [ChainParam] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainParamResponse'param
+           (\ x__ y__ -> x__ {_GetChainParamResponse'param = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetChainParamResponse "vec'param" (Data.Vector.Vector ChainParam) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainParamResponse'param
+           (\ x__ y__ -> x__ {_GetChainParamResponse'param = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetChainParamResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetChainParamResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\NAKGetChainParamResponse\DC27\n\
+      \\ENQparam\CAN\SOH \ETX(\v2!.utxorpc.v1alpha.build.ChainParamR\ENQparam"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        param__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "param"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ChainParam)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"param")) ::
+              Data.ProtoLens.FieldDescriptor GetChainParamResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, param__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetChainParamResponse'_unknownFields
+        (\ x__ y__ -> x__ {_GetChainParamResponse'_unknownFields = y__})
+  defMessage
+    = GetChainParamResponse'_constructor
+        {_GetChainParamResponse'param = Data.Vector.Generic.empty,
+         _GetChainParamResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetChainParamResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ChainParam
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetChainParamResponse
+        loop x mutable'param
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'param <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'param)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'param") frozen'param 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)
+                                        "param"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'param 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'param
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'param <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'param)
+          "GetChainParamResponse"
+  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'param") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData GetChainParamResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetChainParamResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_GetChainParamResponse'param x__) ())
+{- | Fields :
+      -}
+data GetChainTipRequest
+  = GetChainTipRequest'_constructor {_GetChainTipRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetChainTipRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Message GetChainTipRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetChainTipRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC2GetChainTipRequest"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag = let in Data.Map.fromList []
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetChainTipRequest'_unknownFields
+        (\ x__ y__ -> x__ {_GetChainTipRequest'_unknownFields = y__})
+  defMessage
+    = GetChainTipRequest'_constructor
+        {_GetChainTipRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetChainTipRequest
+          -> Data.ProtoLens.Encoding.Bytes.Parser GetChainTipRequest
+        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) "GetChainTipRequest"
+  buildMessage
+    = \ _x
+        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
+             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
+instance Control.DeepSeq.NFData GetChainTipRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetChainTipRequest'_unknownFields x__) ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.tip' @:: Lens' GetChainTipResponse ChainPoint@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.maybe'tip' @:: Lens' GetChainTipResponse (Prelude.Maybe ChainPoint)@ -}
+data GetChainTipResponse
+  = GetChainTipResponse'_constructor {_GetChainTipResponse'tip :: !(Prelude.Maybe ChainPoint),
+                                      _GetChainTipResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetChainTipResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetChainTipResponse "tip" ChainPoint where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainTipResponse'tip
+           (\ x__ y__ -> x__ {_GetChainTipResponse'tip = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField GetChainTipResponse "maybe'tip" (Prelude.Maybe ChainPoint) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetChainTipResponse'tip
+           (\ x__ y__ -> x__ {_GetChainTipResponse'tip = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetChainTipResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetChainTipResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3GetChainTipResponse\DC23\n\
+      \\ETXtip\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\ETXtip"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tip__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tip"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ChainPoint)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'tip")) ::
+              Data.ProtoLens.FieldDescriptor GetChainTipResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, tip__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetChainTipResponse'_unknownFields
+        (\ x__ y__ -> x__ {_GetChainTipResponse'_unknownFields = y__})
+  defMessage
+    = GetChainTipResponse'_constructor
+        {_GetChainTipResponse'tip = Prelude.Nothing,
+         _GetChainTipResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetChainTipResponse
+          -> Data.ProtoLens.Encoding.Bytes.Parser GetChainTipResponse
+        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)
+                                       "tip"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"tip") 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) "GetChainTipResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'tip") _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 GetChainTipResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetChainTipResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_GetChainTipResponse'tip x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.address' @:: Lens' GetUtxoByAddressRequest [Data.ByteString.ByteString]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'address' @:: Lens' GetUtxoByAddressRequest (Data.Vector.Vector Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.acquirePoint' @:: Lens' GetUtxoByAddressRequest ChainPoint@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.maybe'acquirePoint' @:: Lens' GetUtxoByAddressRequest (Prelude.Maybe ChainPoint)@ -}
+data GetUtxoByAddressRequest
+  = GetUtxoByAddressRequest'_constructor {_GetUtxoByAddressRequest'address :: !(Data.Vector.Vector Data.ByteString.ByteString),
+                                          _GetUtxoByAddressRequest'acquirePoint :: !(Prelude.Maybe ChainPoint),
+                                          _GetUtxoByAddressRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetUtxoByAddressRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressRequest "address" [Data.ByteString.ByteString] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressRequest'address
+           (\ x__ y__ -> x__ {_GetUtxoByAddressRequest'address = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressRequest "vec'address" (Data.Vector.Vector Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressRequest'address
+           (\ x__ y__ -> x__ {_GetUtxoByAddressRequest'address = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressRequest "acquirePoint" ChainPoint where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressRequest'acquirePoint
+           (\ x__ y__ -> x__ {_GetUtxoByAddressRequest'acquirePoint = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressRequest "maybe'acquirePoint" (Prelude.Maybe ChainPoint) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressRequest'acquirePoint
+           (\ x__ y__ -> x__ {_GetUtxoByAddressRequest'acquirePoint = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetUtxoByAddressRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetUtxoByAddressRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\ETBGetUtxoByAddressRequest\DC2\CAN\n\
+      \\aaddress\CAN\SOH \ETX(\fR\aaddress\DC2F\n\
+      \\racquire_point\CAN\STX \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\facquirePoint"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        address__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "address"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"address")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByAddressRequest
+        acquirePoint__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "acquire_point"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ChainPoint)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'acquirePoint")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByAddressRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, address__field_descriptor),
+           (Data.ProtoLens.Tag 2, acquirePoint__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetUtxoByAddressRequest'_unknownFields
+        (\ x__ y__ -> x__ {_GetUtxoByAddressRequest'_unknownFields = y__})
+  defMessage
+    = GetUtxoByAddressRequest'_constructor
+        {_GetUtxoByAddressRequest'address = Data.Vector.Generic.empty,
+         _GetUtxoByAddressRequest'acquirePoint = Prelude.Nothing,
+         _GetUtxoByAddressRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetUtxoByAddressRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.ByteString.ByteString
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetUtxoByAddressRequest
+        loop x mutable'address
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'address <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                             mutable'address)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'address") frozen'address 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))
+                                        "address"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'address y)
+                                loop x 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)
+                                       "acquire_point"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"acquirePoint") y x)
+                                  mutable'address
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'address
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'address <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                   Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'address)
+          "GetUtxoByAddressRequest"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                (\ _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))
+                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'address") _x))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view
+                       (Data.ProtoLens.Field.field @"maybe'acquirePoint") _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 GetUtxoByAddressRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetUtxoByAddressRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_GetUtxoByAddressRequest'address x__)
+                (Control.DeepSeq.deepseq
+                   (_GetUtxoByAddressRequest'acquirePoint x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.items' @:: Lens' GetUtxoByAddressResponse [AnyChainUtxo]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'items' @:: Lens' GetUtxoByAddressResponse (Data.Vector.Vector AnyChainUtxo)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.nextToken' @:: Lens' GetUtxoByAddressResponse Data.Text.Text@ -}
+data GetUtxoByAddressResponse
+  = GetUtxoByAddressResponse'_constructor {_GetUtxoByAddressResponse'items :: !(Data.Vector.Vector AnyChainUtxo),
+                                           _GetUtxoByAddressResponse'nextToken :: !Data.Text.Text,
+                                           _GetUtxoByAddressResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetUtxoByAddressResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressResponse "items" [AnyChainUtxo] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressResponse'items
+           (\ x__ y__ -> x__ {_GetUtxoByAddressResponse'items = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressResponse "vec'items" (Data.Vector.Vector AnyChainUtxo) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressResponse'items
+           (\ x__ y__ -> x__ {_GetUtxoByAddressResponse'items = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GetUtxoByAddressResponse "nextToken" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByAddressResponse'nextToken
+           (\ x__ y__ -> x__ {_GetUtxoByAddressResponse'nextToken = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetUtxoByAddressResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetUtxoByAddressResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\CANGetUtxoByAddressResponse\DC29\n\
+      \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.build.AnyChainUtxoR\ENQitems\DC2\GS\n\
+      \\n\
+      \next_token\CAN\STX \SOH(\tR\tnextToken"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        items__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "items"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainUtxo)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"items")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByAddressResponse
+        nextToken__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "next_token"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"nextToken")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByAddressResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, items__field_descriptor),
+           (Data.ProtoLens.Tag 2, nextToken__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetUtxoByAddressResponse'_unknownFields
+        (\ x__ y__ -> x__ {_GetUtxoByAddressResponse'_unknownFields = y__})
+  defMessage
+    = GetUtxoByAddressResponse'_constructor
+        {_GetUtxoByAddressResponse'items = Data.Vector.Generic.empty,
+         _GetUtxoByAddressResponse'nextToken = Data.ProtoLens.fieldDefault,
+         _GetUtxoByAddressResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetUtxoByAddressResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld AnyChainUtxo
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetUtxoByAddressResponse
+        loop x mutable'items
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'items)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'items") frozen'items 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)
+                                        "items"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'items y)
+                                loop x v
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "next_token"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nextToken") y x)
+                                  mutable'items
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'items
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'items)
+          "GetUtxoByAddressResponse"
+  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'items") _x))
+             ((Data.Monoid.<>)
+                (let
+                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nextToken") _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 GetUtxoByAddressResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetUtxoByAddressResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_GetUtxoByAddressResponse'items x__)
+                (Control.DeepSeq.deepseq
+                   (_GetUtxoByAddressResponse'nextToken x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.ref' @:: Lens' GetUtxoByRefRequest [UtxoRef]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'ref' @:: Lens' GetUtxoByRefRequest (Data.Vector.Vector UtxoRef)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.acquirePoint' @:: Lens' GetUtxoByRefRequest ChainPoint@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.maybe'acquirePoint' @:: Lens' GetUtxoByRefRequest (Prelude.Maybe ChainPoint)@ -}
+data GetUtxoByRefRequest
+  = GetUtxoByRefRequest'_constructor {_GetUtxoByRefRequest'ref :: !(Data.Vector.Vector UtxoRef),
+                                      _GetUtxoByRefRequest'acquirePoint :: !(Prelude.Maybe ChainPoint),
+                                      _GetUtxoByRefRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetUtxoByRefRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetUtxoByRefRequest "ref" [UtxoRef] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefRequest'ref
+           (\ x__ y__ -> x__ {_GetUtxoByRefRequest'ref = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetUtxoByRefRequest "vec'ref" (Data.Vector.Vector UtxoRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefRequest'ref
+           (\ x__ y__ -> x__ {_GetUtxoByRefRequest'ref = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GetUtxoByRefRequest "acquirePoint" ChainPoint where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefRequest'acquirePoint
+           (\ x__ y__ -> x__ {_GetUtxoByRefRequest'acquirePoint = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField GetUtxoByRefRequest "maybe'acquirePoint" (Prelude.Maybe ChainPoint) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefRequest'acquirePoint
+           (\ x__ y__ -> x__ {_GetUtxoByRefRequest'acquirePoint = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetUtxoByRefRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetUtxoByRefRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3GetUtxoByRefRequest\DC20\n\
+      \\ETXref\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\ETXref\DC2F\n\
+      \\racquire_point\CAN\STX \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\facquirePoint"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ref__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ref"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor UtxoRef)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"ref")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByRefRequest
+        acquirePoint__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "acquire_point"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ChainPoint)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'acquirePoint")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByRefRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, ref__field_descriptor),
+           (Data.ProtoLens.Tag 2, acquirePoint__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetUtxoByRefRequest'_unknownFields
+        (\ x__ y__ -> x__ {_GetUtxoByRefRequest'_unknownFields = y__})
+  defMessage
+    = GetUtxoByRefRequest'_constructor
+        {_GetUtxoByRefRequest'ref = Data.Vector.Generic.empty,
+         _GetUtxoByRefRequest'acquirePoint = Prelude.Nothing,
+         _GetUtxoByRefRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetUtxoByRefRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UtxoRef
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetUtxoByRefRequest
+        loop x mutable'ref
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'ref)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'ref") frozen'ref 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)
+                                        "ref"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'ref y)
+                                loop x 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)
+                                       "acquire_point"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"acquirePoint") y x)
+                                  mutable'ref
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'ref
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'ref)
+          "GetUtxoByRefRequest"
+  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'ref") _x))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view
+                       (Data.ProtoLens.Field.field @"maybe'acquirePoint") _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 GetUtxoByRefRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetUtxoByRefRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_GetUtxoByRefRequest'ref x__)
+                (Control.DeepSeq.deepseq
+                   (_GetUtxoByRefRequest'acquirePoint x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.items' @:: Lens' GetUtxoByRefResponse [AnyChainUtxo]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'items' @:: Lens' GetUtxoByRefResponse (Data.Vector.Vector AnyChainUtxo)@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.nextToken' @:: Lens' GetUtxoByRefResponse Data.Text.Text@ -}
+data GetUtxoByRefResponse
+  = GetUtxoByRefResponse'_constructor {_GetUtxoByRefResponse'items :: !(Data.Vector.Vector AnyChainUtxo),
+                                       _GetUtxoByRefResponse'nextToken :: !Data.Text.Text,
+                                       _GetUtxoByRefResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GetUtxoByRefResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GetUtxoByRefResponse "items" [AnyChainUtxo] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefResponse'items
+           (\ x__ y__ -> x__ {_GetUtxoByRefResponse'items = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField GetUtxoByRefResponse "vec'items" (Data.Vector.Vector AnyChainUtxo) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefResponse'items
+           (\ x__ y__ -> x__ {_GetUtxoByRefResponse'items = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GetUtxoByRefResponse "nextToken" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GetUtxoByRefResponse'nextToken
+           (\ x__ y__ -> x__ {_GetUtxoByRefResponse'nextToken = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GetUtxoByRefResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.GetUtxoByRefResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC4GetUtxoByRefResponse\DC29\n\
+      \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.build.AnyChainUtxoR\ENQitems\DC2\GS\n\
+      \\n\
+      \next_token\CAN\STX \SOH(\tR\tnextToken"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        items__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "items"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainUtxo)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"items")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByRefResponse
+        nextToken__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "next_token"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"nextToken")) ::
+              Data.ProtoLens.FieldDescriptor GetUtxoByRefResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, items__field_descriptor),
+           (Data.ProtoLens.Tag 2, nextToken__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GetUtxoByRefResponse'_unknownFields
+        (\ x__ y__ -> x__ {_GetUtxoByRefResponse'_unknownFields = y__})
+  defMessage
+    = GetUtxoByRefResponse'_constructor
+        {_GetUtxoByRefResponse'items = Data.Vector.Generic.empty,
+         _GetUtxoByRefResponse'nextToken = Data.ProtoLens.fieldDefault,
+         _GetUtxoByRefResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GetUtxoByRefResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld AnyChainUtxo
+             -> Data.ProtoLens.Encoding.Bytes.Parser GetUtxoByRefResponse
+        loop x mutable'items
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'items)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'items") frozen'items 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)
+                                        "items"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'items y)
+                                loop x v
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "next_token"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nextToken") y x)
+                                  mutable'items
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'items
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'items)
+          "GetUtxoByRefResponse"
+  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'items") _x))
+             ((Data.Monoid.<>)
+                (let
+                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"nextToken") _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 GetUtxoByRefResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GetUtxoByRefResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_GetUtxoByRefResponse'items x__)
+                (Control.DeepSeq.deepseq (_GetUtxoByRefResponse'nextToken x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.refs' @:: Lens' HoldUtxoRequest [UtxoRef]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'refs' @:: Lens' HoldUtxoRequest (Data.Vector.Vector UtxoRef)@ -}
+data HoldUtxoRequest
+  = HoldUtxoRequest'_constructor {_HoldUtxoRequest'refs :: !(Data.Vector.Vector UtxoRef),
+                                  _HoldUtxoRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show HoldUtxoRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField HoldUtxoRequest "refs" [UtxoRef] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _HoldUtxoRequest'refs
+           (\ x__ y__ -> x__ {_HoldUtxoRequest'refs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField HoldUtxoRequest "vec'refs" (Data.Vector.Vector UtxoRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _HoldUtxoRequest'refs
+           (\ x__ y__ -> x__ {_HoldUtxoRequest'refs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message HoldUtxoRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.HoldUtxoRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\SIHoldUtxoRequest\DC22\n\
+      \\EOTrefs\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\EOTrefs"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        refs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "refs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor UtxoRef)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"refs")) ::
+              Data.ProtoLens.FieldDescriptor HoldUtxoRequest
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, refs__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _HoldUtxoRequest'_unknownFields
+        (\ x__ y__ -> x__ {_HoldUtxoRequest'_unknownFields = y__})
+  defMessage
+    = HoldUtxoRequest'_constructor
+        {_HoldUtxoRequest'refs = Data.Vector.Generic.empty,
+         _HoldUtxoRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          HoldUtxoRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UtxoRef
+             -> Data.ProtoLens.Encoding.Bytes.Parser HoldUtxoRequest
+        loop x mutable'refs
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'refs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'refs)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'refs") frozen'refs 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)
+                                        "refs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'refs 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'refs
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'refs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'refs)
+          "HoldUtxoRequest"
+  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'refs") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData HoldUtxoRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_HoldUtxoRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_HoldUtxoRequest'refs x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.lost' @:: Lens' HoldUtxoResponse [UtxoRef]@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.vec'lost' @:: Lens' HoldUtxoResponse (Data.Vector.Vector UtxoRef)@ -}
+data HoldUtxoResponse
+  = HoldUtxoResponse'_constructor {_HoldUtxoResponse'lost :: !(Data.Vector.Vector UtxoRef),
+                                   _HoldUtxoResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show HoldUtxoResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField HoldUtxoResponse "lost" [UtxoRef] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _HoldUtxoResponse'lost
+           (\ x__ y__ -> x__ {_HoldUtxoResponse'lost = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField HoldUtxoResponse "vec'lost" (Data.Vector.Vector UtxoRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _HoldUtxoResponse'lost
+           (\ x__ y__ -> x__ {_HoldUtxoResponse'lost = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message HoldUtxoResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.build.HoldUtxoResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DLEHoldUtxoResponse\DC22\n\
+      \\EOTlost\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\EOTlost"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        lost__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "lost"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor UtxoRef)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"lost")) ::
+              Data.ProtoLens.FieldDescriptor HoldUtxoResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, lost__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _HoldUtxoResponse'_unknownFields
+        (\ x__ y__ -> x__ {_HoldUtxoResponse'_unknownFields = y__})
+  defMessage
+    = HoldUtxoResponse'_constructor
+        {_HoldUtxoResponse'lost = Data.Vector.Generic.empty,
+         _HoldUtxoResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          HoldUtxoResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UtxoRef
+             -> Data.ProtoLens.Encoding.Bytes.Parser HoldUtxoResponse
+        loop x mutable'lost
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'lost <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'lost)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'lost") frozen'lost 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)
+                                        "lost"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'lost 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'lost
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'lost <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'lost)
+          "HoldUtxoResponse"
+  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'lost") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData HoldUtxoResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_HoldUtxoResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_HoldUtxoResponse'lost x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.hash' @:: Lens' UtxoRef Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Build.Build_Fields.index' @:: Lens' UtxoRef Data.Word.Word32@ -}
+data UtxoRef
+  = UtxoRef'_constructor {_UtxoRef'hash :: !Data.ByteString.ByteString,
+                          _UtxoRef'index :: !Data.Word.Word32,
+                          _UtxoRef'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show UtxoRef where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField UtxoRef "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _UtxoRef'hash (\ x__ y__ -> x__ {_UtxoRef'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField UtxoRef "index" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _UtxoRef'index (\ x__ y__ -> x__ {_UtxoRef'index = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message UtxoRef where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.build.UtxoRef"
+  packedMessageDescriptor _
+    = "\n\
+      \\aUtxoRef\DC2\DC2\n\
+      \\EOThash\CAN\SOH \SOH(\fR\EOThash\DC2\DC4\n\
+      \\ENQindex\CAN\STX \SOH(\rR\ENQindex"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        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 UtxoRef
+        index__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "index"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"index")) ::
+              Data.ProtoLens.FieldDescriptor UtxoRef
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, hash__field_descriptor),
+           (Data.ProtoLens.Tag 2, index__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _UtxoRef'_unknownFields
+        (\ x__ y__ -> x__ {_UtxoRef'_unknownFields = y__})
+  defMessage
+    = UtxoRef'_constructor
+        {_UtxoRef'hash = Data.ProtoLens.fieldDefault,
+         _UtxoRef'index = Data.ProtoLens.fieldDefault,
+         _UtxoRef'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: UtxoRef -> Data.ProtoLens.Encoding.Bytes.Parser UtxoRef
+        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))
+                                       "hash"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"hash") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "index"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"index") 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) "UtxoRef"
+  buildMessage
+    = \ _x
+        -> (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 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 @"index") _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 UtxoRef where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_UtxoRef'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_UtxoRef'hash x__)
+                (Control.DeepSeq.deepseq (_UtxoRef'index x__) ()))
+data LedgerStateService = LedgerStateService {}
+instance Data.ProtoLens.Service.Types.Service LedgerStateService where
+  type ServiceName LedgerStateService = "LedgerStateService"
+  type ServicePackage LedgerStateService = "utxorpc.v1alpha.build"
+  type ServiceMethods LedgerStateService = '["getChainParam",
+                                             "getChainTip",
+                                             "getUtxoByAddress",
+                                             "getUtxoByRef",
+                                             "holdUtxo"]
+  packedServiceDescriptor _
+    = "\n\
+      \\DC2LedgerStateService\DC2d\n\
+      \\vGetChainTip\DC2).utxorpc.v1alpha.build.GetChainTipRequest\SUB*.utxorpc.v1alpha.build.GetChainTipResponse\DC2j\n\
+      \\rGetChainParam\DC2+.utxorpc.v1alpha.build.GetChainParamRequest\SUB,.utxorpc.v1alpha.build.GetChainParamResponse\DC2s\n\
+      \\DLEGetUtxoByAddress\DC2..utxorpc.v1alpha.build.GetUtxoByAddressRequest\SUB/.utxorpc.v1alpha.build.GetUtxoByAddressResponse\DC2g\n\
+      \\fGetUtxoByRef\DC2*.utxorpc.v1alpha.build.GetUtxoByRefRequest\SUB+.utxorpc.v1alpha.build.GetUtxoByRefResponse\DC2]\n\
+      \\bHoldUtxo\DC2&.utxorpc.v1alpha.build.HoldUtxoRequest\SUB'.utxorpc.v1alpha.build.HoldUtxoResponse0\SOH"
+instance Data.ProtoLens.Service.Types.HasMethodImpl LedgerStateService "getChainTip" where
+  type MethodName LedgerStateService "getChainTip" = "GetChainTip"
+  type MethodInput LedgerStateService "getChainTip" = GetChainTipRequest
+  type MethodOutput LedgerStateService "getChainTip" = GetChainTipResponse
+  type MethodStreamingType LedgerStateService "getChainTip" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl LedgerStateService "getChainParam" where
+  type MethodName LedgerStateService "getChainParam" = "GetChainParam"
+  type MethodInput LedgerStateService "getChainParam" = GetChainParamRequest
+  type MethodOutput LedgerStateService "getChainParam" = GetChainParamResponse
+  type MethodStreamingType LedgerStateService "getChainParam" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl LedgerStateService "getUtxoByAddress" where
+  type MethodName LedgerStateService "getUtxoByAddress" = "GetUtxoByAddress"
+  type MethodInput LedgerStateService "getUtxoByAddress" = GetUtxoByAddressRequest
+  type MethodOutput LedgerStateService "getUtxoByAddress" = GetUtxoByAddressResponse
+  type MethodStreamingType LedgerStateService "getUtxoByAddress" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl LedgerStateService "getUtxoByRef" where
+  type MethodName LedgerStateService "getUtxoByRef" = "GetUtxoByRef"
+  type MethodInput LedgerStateService "getUtxoByRef" = GetUtxoByRefRequest
+  type MethodOutput LedgerStateService "getUtxoByRef" = GetUtxoByRefResponse
+  type MethodStreamingType LedgerStateService "getUtxoByRef" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl LedgerStateService "holdUtxo" where
+  type MethodName LedgerStateService "holdUtxo" = "HoldUtxo"
+  type MethodInput LedgerStateService "holdUtxo" = HoldUtxoRequest
+  type MethodOutput LedgerStateService "holdUtxo" = HoldUtxoResponse
+  type MethodStreamingType LedgerStateService "holdUtxo" = 'Data.ProtoLens.Service.Types.ServerStreaming
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \!utxorpc/v1alpha/build/build.proto\DC2\NAKutxorpc.v1alpha.build\SUB google/protobuf/field_mask.proto\SUB%utxorpc/v1alpha/cardano/cardano.proto\"L\n\
+    \\n\
+    \ChainPoint\DC2\DC2\n\
+    \\EOTslot\CAN\SOH \SOH(\EOTR\EOTslot\DC2\SYN\n\
+    \\ACKheight\CAN\STX \SOH(\EOTR\ACKheight\DC2\DC2\n\
+    \\EOThash\CAN\ETX \SOH(\fR\EOThash\"\DC4\n\
+    \\DC2GetChainTipRequest\"J\n\
+    \\DC3GetChainTipResponse\DC23\n\
+    \\ETXtip\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\ETXtip\",\n\
+    \\DC4GetChainParamRequest\DC2\DC4\n\
+    \\ENQparam\CAN\SOH \ETX(\tR\ENQparam\"4\n\
+    \\n\
+    \ChainParam\DC2\DLE\n\
+    \\ETXkey\CAN\SOH \SOH(\tR\ETXkey\DC2\DC4\n\
+    \\ENQvalue\CAN\STX \SOH(\fR\ENQvalue\"P\n\
+    \\NAKGetChainParamResponse\DC27\n\
+    \\ENQparam\CAN\SOH \ETX(\v2!.utxorpc.v1alpha.build.ChainParamR\ENQparam\"{\n\
+    \\ETBGetUtxoByAddressRequest\DC2\CAN\n\
+    \\aaddress\CAN\SOH \ETX(\fR\aaddress\DC2F\n\
+    \\racquire_point\CAN\STX \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\facquirePoint\"V\n\
+    \\fAnyChainUtxo\DC2=\n\
+    \\acardano\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputH\NULR\acardanoB\a\n\
+    \\ENQchain\"t\n\
+    \\CANGetUtxoByAddressResponse\DC29\n\
+    \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.build.AnyChainUtxoR\ENQitems\DC2\GS\n\
+    \\n\
+    \next_token\CAN\STX \SOH(\tR\tnextToken\"3\n\
+    \\aUtxoRef\DC2\DC2\n\
+    \\EOThash\CAN\SOH \SOH(\fR\EOThash\DC2\DC4\n\
+    \\ENQindex\CAN\STX \SOH(\rR\ENQindex\"\143\SOH\n\
+    \\DC3GetUtxoByRefRequest\DC20\n\
+    \\ETXref\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\ETXref\DC2F\n\
+    \\racquire_point\CAN\STX \SOH(\v2!.utxorpc.v1alpha.build.ChainPointR\facquirePoint\"p\n\
+    \\DC4GetUtxoByRefResponse\DC29\n\
+    \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.build.AnyChainUtxoR\ENQitems\DC2\GS\n\
+    \\n\
+    \next_token\CAN\STX \SOH(\tR\tnextToken\"E\n\
+    \\SIHoldUtxoRequest\DC22\n\
+    \\EOTrefs\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\EOTrefs\"F\n\
+    \\DLEHoldUtxoResponse\DC22\n\
+    \\EOTlost\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.build.UtxoRefR\EOTlost2\163\EOT\n\
+    \\DC2LedgerStateService\DC2d\n\
+    \\vGetChainTip\DC2).utxorpc.v1alpha.build.GetChainTipRequest\SUB*.utxorpc.v1alpha.build.GetChainTipResponse\DC2j\n\
+    \\rGetChainParam\DC2+.utxorpc.v1alpha.build.GetChainParamRequest\SUB,.utxorpc.v1alpha.build.GetChainParamResponse\DC2s\n\
+    \\DLEGetUtxoByAddress\DC2..utxorpc.v1alpha.build.GetUtxoByAddressRequest\SUB/.utxorpc.v1alpha.build.GetUtxoByAddressResponse\DC2g\n\
+    \\fGetUtxoByRef\DC2*.utxorpc.v1alpha.build.GetUtxoByRefRequest\SUB+.utxorpc.v1alpha.build.GetUtxoByRefResponse\DC2]\n\
+    \\bHoldUtxo\DC2&.utxorpc.v1alpha.build.HoldUtxoRequest\SUB'.utxorpc.v1alpha.build.HoldUtxoResponse0\SOHB\211\SOH\n\
+    \\EMcom.utxorpc.v1alpha.buildB\n\
+    \BuildProtoP\SOHZ4github.com/utxorpc/go-sdk/spec/utxorpc/v1alpha/build\162\STX\ETXUVB\170\STX\NAKUtxorpc.V1alpha.Build\202\STX\NAKUtxorpc\\V1alpha\\Build\226\STX!Utxorpc\\V1alpha\\Build\\GPBMetadata\234\STX\ETBUtxorpc::V1alpha::BuildJ\202\ESC\n\
+    \\ACK\DC2\EOT\STX\NUL^\SOH\n\
+    \9\n\
+    \\SOH\f\DC2\ETX\STX\NUL\DC22// A consistent view of the state of the ledger\n\
+    \\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\EOT\NUL\RS\n\
+    \\t\n\
+    \\STX\ETX\NUL\DC2\ETX\ACK\NUL*\n\
+    \\t\n\
+    \\STX\ETX\SOH\DC2\ETX\a\NUL/\n\
+    \<\n\
+    \\STX\EOT\NUL\DC2\EOT\n\
+    \\NUL\SO\SOH\SUB0 Represents a specific point in the blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\n\
+    \\b\DC2\n\
+    \\ESC\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\v\STX\DC2\"\SO Slot number.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\v\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\v\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\v\DLE\DC1\n\
+    \\FS\n\
+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\f\STX\DC4\"\SI Block height.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ENQ\DC2\ETX\f\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\f\t\SI\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\f\DC2\DC3\n\
+    \\SUB\n\
+    \\EOT\EOT\NUL\STX\STX\DC2\ETX\r\STX\DC1\"\r Block hash.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\ENQ\DC2\ETX\r\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX\r\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX\r\SI\DLE\n\
+    \2\n\
+    \\STX\EOT\SOH\DC2\ETX\DC1\NUL\GS\SUB' Request to get the current chain tip.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX\DC1\b\SUB\n\
+    \8\n\
+    \\STX\EOT\STX\DC2\EOT\DC4\NUL\SYN\SOH\SUB, Response containing the current chain tip.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETX\DC4\b\ESC\n\
+    \!\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETX\NAK\STX\NAK\"\DC4 Current chain tip.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ACK\DC2\ETX\NAK\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\NAK\r\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\NAK\DC3\DC4\n\
+    \7\n\
+    \\STX\EOT\ETX\DC2\EOT\EM\NUL\ESC\SOH\SUB+ Request to get specific chain parameters.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETX\EM\b\FS\n\
+    \,\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETX\SUB\STX\FS\"\US List of requested parameters.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\EOT\DC2\ETX\SUB\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETX\SUB\v\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX\SUB\DC2\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX\SUB\SUB\ESC\n\
+    \@\n\
+    \\STX\EOT\EOT\DC2\EOT\RS\NUL!\SOH\SUB4 Represents a key-value pair for a chain parameter.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\EOT\SOH\DC2\ETX\RS\b\DC2\n\
+    \\GS\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\ETX\US\STX\DC1\"\DLE Parameter key.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\ETX\US\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX\US\t\f\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX\US\SI\DLE\n\
+    \\US\n\
+    \\EOT\EOT\EOT\STX\SOH\DC2\ETX \STX\DC2\"\DC2 Parameter value.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ENQ\DC2\ETX \STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\ETX \b\r\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\ETX \DLE\DC1\n\
+    \A\n\
+    \\STX\EOT\ENQ\DC2\EOT$\NUL&\SOH\SUB5 Response containing the requested chain parameters.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ENQ\SOH\DC2\ETX$\b\GS\n\
+    \2\n\
+    \\EOT\EOT\ENQ\STX\NUL\DC2\ETX%\STX \"% List of requested chain parameters.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\ETX%\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ACK\DC2\ETX%\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\ETX%\SYN\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\ETX%\RS\US\n\
+    \A\n\
+    \\STX\EOT\ACK\DC2\EOT)\NUL,\SOH\SUB5 Request to get UTxOs by their associated addresses.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ACK\SOH\DC2\ETX)\b\US\n\
+    \*\n\
+    \\EOT\EOT\ACK\STX\NUL\DC2\ETX*\STX\GS\"\GS List of addresses to query.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\ETX*\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\ETX*\v\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\ETX*\DC1\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\ETX*\ESC\FS\n\
+    \0\n\
+    \\EOT\EOT\ACK\STX\SOH\DC2\ETX+\STX\US\"# Point in the chain to query from.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\ACK\DC2\ETX+\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\ETX+\r\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\ETX+\GS\RS\n\
+    \J\n\
+    \\STX\EOT\a\DC2\EOT/\NUL3\SOH\SUB> An evenlope that holds an UTxO from any of compatible chains\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\a\SOH\DC2\ETX/\b\DC4\n\
+    \\f\n\
+    \\EOT\EOT\a\b\NUL\DC2\EOT0\STX2\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\a\b\NUL\SOH\DC2\ETX0\b\r\n\
+    \\v\n\
+    \\EOT\EOT\a\STX\NUL\DC2\ETX1\EOT1\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ACK\DC2\ETX1\EOT$\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\ETX1%,\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\ETX1/0\n\
+    \T\n\
+    \\STX\EOT\b\DC2\EOT6\NUL9\SOH\SUBH Response containing the UTxOs associated with the requested addresses.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\b\SOH\DC2\ETX6\b \n\
+    \\GS\n\
+    \\EOT\EOT\b\STX\NUL\DC2\ETX7\STX\"\"\DLE List of UTxOs.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\EOT\DC2\ETX7\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ACK\DC2\ETX7\v\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\SOH\DC2\ETX7\CAN\GS\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ETX\DC2\ETX7 !\n\
+    \$\n\
+    \\EOT\EOT\b\STX\SOH\DC2\ETX8\STX\CAN\"\ETB Token for pagination.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\ENQ\DC2\ETX8\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\SOH\DC2\ETX8\t\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\ETX\DC2\ETX8\SYN\ETB\n\
+    \/\n\
+    \\STX\EOT\t\DC2\EOT<\NUL?\SOH\SUB# Represents a reference to a UTxO.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\t\SOH\DC2\ETX<\b\SI\n\
+    \ \n\
+    \\EOT\EOT\t\STX\NUL\DC2\ETX=\STX\DC1\"\DC3 Transaction hash.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ENQ\DC2\ETX=\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\SOH\DC2\ETX=\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ETX\DC2\ETX=\SI\DLE\n\
+    \\FS\n\
+    \\EOT\EOT\t\STX\SOH\DC2\ETX>\STX\DC3\"\SI Output index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ENQ\DC2\ETX>\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\SOH\DC2\ETX>\t\SO\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ETX\DC2\ETX>\DC1\DC2\n\
+    \7\n\
+    \\STX\EOT\n\
+    \\DC2\EOTB\NULE\SOH\SUB+ Request to get UTxOs by their references.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\n\
+    \\SOH\DC2\ETXB\b\ESC\n\
+    \0\n\
+    \\EOT\EOT\n\
+    \\STX\NUL\DC2\ETXC\STX\ESC\"# List of UTxO references to query.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\EOT\DC2\ETXC\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ACK\DC2\ETXC\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\SOH\DC2\ETXC\DC3\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ETX\DC2\ETXC\EM\SUB\n\
+    \0\n\
+    \\EOT\EOT\n\
+    \\STX\SOH\DC2\ETXD\STX\US\"# Point in the chain to query from.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ACK\DC2\ETXD\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\SOH\DC2\ETXD\r\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ETX\DC2\ETXD\GS\RS\n\
+    \U\n\
+    \\STX\EOT\v\DC2\EOTH\NULK\SOH\SUBI Response containing the UTxOs associated with the requested references.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\v\SOH\DC2\ETXH\b\FS\n\
+    \\GS\n\
+    \\EOT\EOT\v\STX\NUL\DC2\ETXI\STX\"\"\DLE List of UTxOs.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\EOT\DC2\ETXI\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ACK\DC2\ETXI\v\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\SOH\DC2\ETXI\CAN\GS\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ETX\DC2\ETXI !\n\
+    \$\n\
+    \\EOT\EOT\v\STX\SOH\DC2\ETXJ\STX\CAN\"\ETB Token for pagination.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\ETXJ\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\SOH\DC2\ETXJ\t\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\ETX\DC2\ETXJ\SYN\ETB\n\
+    \$\n\
+    \\STX\EOT\f\DC2\EOTN\NULP\SOH\SUB\CAN Request to hold UTxOs.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\f\SOH\DC2\ETXN\b\ETB\n\
+    \/\n\
+    \\EOT\EOT\f\STX\NUL\DC2\ETXO\STX\FS\"\" List of UTxO references to hold.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\EOT\DC2\ETXO\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\ACK\DC2\ETXO\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\SOH\DC2\ETXO\DC3\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\ETX\DC2\ETXO\SUB\ESC\n\
+    \?\n\
+    \\STX\EOT\r\DC2\EOTS\NULU\SOH\SUB3 Response containing information about lost UTxOs.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\r\SOH\DC2\ETXS\b\CAN\n\
+    \,\n\
+    \\EOT\EOT\r\STX\NUL\DC2\ETXT\STX\FS\"\US List of lost UTxO references.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\EOT\DC2\ETXT\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\ACK\DC2\ETXT\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\SOH\DC2\ETXT\DC3\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\ETX\DC2\ETXT\SUB\ESC\n\
+    \F\n\
+    \\STX\ACK\NUL\DC2\EOTX\NUL^\SOH\SUB: Service definition for querying the state of the ledger.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ACK\NUL\SOH\DC2\ETXX\b\SUB\n\
+    \)\n\
+    \\EOT\ACK\NUL\STX\NUL\DC2\ETXY\STXD\"\FS Get the current chain tip.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\SOH\DC2\ETXY\ACK\DC1\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\STX\DC2\ETXY\DC2$\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\ETX\DC2\ETXY/B\n\
+    \-\n\
+    \\EOT\ACK\NUL\STX\SOH\DC2\ETXZ\STXJ\"  Get specific chain parameters.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\SOH\DC2\ETXZ\ACK\DC3\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\STX\DC2\ETXZ\DC4(\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\ETX\DC2\ETXZ3H\n\
+    \7\n\
+    \\EOT\ACK\NUL\STX\STX\DC2\ETX[\STXS\"* Get UTxOs by their associated addresses.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\SOH\DC2\ETX[\ACK\SYN\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\STX\DC2\ETX[\ETB.\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\ETX\DC2\ETX[9Q\n\
+    \-\n\
+    \\EOT\ACK\NUL\STX\ETX\DC2\ETX\\\STXG\"  Get UTxOs by their references.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\SOH\DC2\ETX\\\ACK\DC2\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\STX\DC2\ETX\\\DC3&\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\ETX\DC2\ETX\\1E\n\
+    \>\n\
+    \\EOT\ACK\NUL\STX\EOT\DC2\ETX]\STXB\"1 Hold UTxOs and receive updates about lost UTxOs\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\EOT\SOH\DC2\ETX]\ACK\SO\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\EOT\STX\DC2\ETX]\SI\RS\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\EOT\ACK\DC2\ETX])/\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\EOT\ETX\DC2\ETX]0@b\ACKproto3"
diff --git a/Proto/Utxorpc/V1alpha/Build/Build_Fields.hs b/Proto/Utxorpc/V1alpha/Build/Build_Fields.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Build/Build_Fields.hs
@@ -0,0 +1,173 @@
+{- This file was auto-generated from utxorpc/v1alpha/build/build.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.Utxorpc.V1alpha.Build.Build_Fields where
+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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+acquirePoint ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "acquirePoint" a) =>
+  Lens.Family2.LensLike' f s a
+acquirePoint = Data.ProtoLens.Field.field @"acquirePoint"
+address ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "address" a) =>
+  Lens.Family2.LensLike' f s a
+address = Data.ProtoLens.Field.field @"address"
+cardano ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "cardano" a) =>
+  Lens.Family2.LensLike' f s a
+cardano = Data.ProtoLens.Field.field @"cardano"
+hash ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "hash" a) =>
+  Lens.Family2.LensLike' f s a
+hash = Data.ProtoLens.Field.field @"hash"
+height ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "height" a) =>
+  Lens.Family2.LensLike' f s a
+height = Data.ProtoLens.Field.field @"height"
+index ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "index" a) =>
+  Lens.Family2.LensLike' f s a
+index = Data.ProtoLens.Field.field @"index"
+items ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "items" a) =>
+  Lens.Family2.LensLike' f s a
+items = Data.ProtoLens.Field.field @"items"
+key ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "key" a) =>
+  Lens.Family2.LensLike' f s a
+key = Data.ProtoLens.Field.field @"key"
+lost ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "lost" a) =>
+  Lens.Family2.LensLike' f s a
+lost = Data.ProtoLens.Field.field @"lost"
+maybe'acquirePoint ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'acquirePoint" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'acquirePoint
+  = Data.ProtoLens.Field.field @"maybe'acquirePoint"
+maybe'cardano ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'cardano" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'cardano = Data.ProtoLens.Field.field @"maybe'cardano"
+maybe'chain ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'chain" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'chain = Data.ProtoLens.Field.field @"maybe'chain"
+maybe'tip ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'tip" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'tip = Data.ProtoLens.Field.field @"maybe'tip"
+nextToken ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "nextToken" a) =>
+  Lens.Family2.LensLike' f s a
+nextToken = Data.ProtoLens.Field.field @"nextToken"
+param ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "param" a) =>
+  Lens.Family2.LensLike' f s a
+param = Data.ProtoLens.Field.field @"param"
+ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ref" a) =>
+  Lens.Family2.LensLike' f s a
+ref = Data.ProtoLens.Field.field @"ref"
+refs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "refs" a) =>
+  Lens.Family2.LensLike' f s a
+refs = Data.ProtoLens.Field.field @"refs"
+slot ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "slot" a) =>
+  Lens.Family2.LensLike' f s a
+slot = Data.ProtoLens.Field.field @"slot"
+tip ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "tip" a) =>
+  Lens.Family2.LensLike' f s a
+tip = Data.ProtoLens.Field.field @"tip"
+value ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "value" a) =>
+  Lens.Family2.LensLike' f s a
+value = Data.ProtoLens.Field.field @"value"
+vec'address ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'address" a) =>
+  Lens.Family2.LensLike' f s a
+vec'address = Data.ProtoLens.Field.field @"vec'address"
+vec'items ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'items" a) =>
+  Lens.Family2.LensLike' f s a
+vec'items = Data.ProtoLens.Field.field @"vec'items"
+vec'lost ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'lost" a) =>
+  Lens.Family2.LensLike' f s a
+vec'lost = Data.ProtoLens.Field.field @"vec'lost"
+vec'param ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'param" a) =>
+  Lens.Family2.LensLike' f s a
+vec'param = Data.ProtoLens.Field.field @"vec'param"
+vec'ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'ref" a) =>
+  Lens.Family2.LensLike' f s a
+vec'ref = Data.ProtoLens.Field.field @"vec'ref"
+vec'refs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'refs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'refs = Data.ProtoLens.Field.field @"vec'refs"
diff --git a/Proto/Utxorpc/V1alpha/Cardano/Cardano.hs b/Proto/Utxorpc/V1alpha/Cardano/Cardano.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Cardano/Cardano.hs
@@ -0,0 +1,12775 @@
+{- This file was auto-generated from utxorpc/v1alpha/cardano/cardano.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.Utxorpc.V1alpha.Cardano.Cardano (
+        AddressPattern(), Asset(), AssetPattern(), AuxData(), BigInt(),
+        BigInt'BigInt(..), _BigInt'Int, _BigInt'BigUInt, _BigInt'BigNInt,
+        Block(), BlockBody(), BlockHeader(), Certificate(),
+        Certificate'Certificate(..), _Certificate'StakeRegistration,
+        _Certificate'StakeDeregistration, _Certificate'StakeDelegation,
+        _Certificate'PoolRegistration, _Certificate'PoolRetirement,
+        _Certificate'GenesisKeyDelegation, _Certificate'MirCert,
+        Collateral(), Constr(), DatumPattern(), GenesisKeyDelegationCert(),
+        Metadata(), Metadatum(), Metadatum'Metadatum(..), _Metadatum'Int,
+        _Metadatum'Bytes, _Metadatum'Text, _Metadatum'Array,
+        _Metadatum'Map, MetadatumArray(), MetadatumMap(), MetadatumPair(),
+        MirCert(), MirSource(..), MirSource(), MirSource'UnrecognizedValue,
+        MirTarget(), Multiasset(), NativeScript(),
+        NativeScript'NativeScript(..), _NativeScript'ScriptPubkey,
+        _NativeScript'ScriptAll, _NativeScript'ScriptAny,
+        _NativeScript'ScriptNOfK, _NativeScript'InvalidBefore,
+        _NativeScript'InvalidHereafter, NativeScriptList(),
+        OutputPattern(), PlutusData(), PlutusData'PlutusData(..),
+        _PlutusData'Constr, _PlutusData'Map, _PlutusData'BigInt,
+        _PlutusData'BoundedBytes, _PlutusData'Array, PlutusDataArray(),
+        PlutusDataMap(), PlutusDataPair(), PoolMetadata(),
+        PoolRegistrationCert(), PoolRetirementCert(), RationalNumber(),
+        Redeemer(), RedeemerPurpose(..), RedeemerPurpose(),
+        RedeemerPurpose'UnrecognizedValue, Relay(), Script(),
+        Script'Script(..), _Script'Native, _Script'PlutusV1,
+        _Script'PlutusV2, ScriptNOfK(), StakeCredential(),
+        StakeCredential'StakeCredential(..), _StakeCredential'AddrKeyHash,
+        _StakeCredential'ScriptHash, StakeDelegationCert(), Tx(),
+        TxInput(), TxOutput(), TxPattern(), TxPattern'TxPattern(..),
+        _TxPattern'AnyOutput, _TxPattern'AnyAddress, _TxPattern'AnyAsset,
+        _TxPattern'AnyDatum, TxValidity(), VKeyWitness(), Withdrawal(),
+        WitnessSet()
+    ) 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.Utxorpc.V1alpha.Cardano.Cardano_Fields.byronAddress' @:: Lens' AddressPattern Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.paymentPart' @:: Lens' AddressPattern Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.delegationPart' @:: Lens' AddressPattern Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.paymentIsScript' @:: Lens' AddressPattern Prelude.Bool@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.delegationIsScript' @:: Lens' AddressPattern Prelude.Bool@ -}
+data AddressPattern
+  = AddressPattern'_constructor {_AddressPattern'byronAddress :: !Data.ByteString.ByteString,
+                                 _AddressPattern'paymentPart :: !Data.ByteString.ByteString,
+                                 _AddressPattern'delegationPart :: !Data.ByteString.ByteString,
+                                 _AddressPattern'paymentIsScript :: !Prelude.Bool,
+                                 _AddressPattern'delegationIsScript :: !Prelude.Bool,
+                                 _AddressPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AddressPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField AddressPattern "byronAddress" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AddressPattern'byronAddress
+           (\ x__ y__ -> x__ {_AddressPattern'byronAddress = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AddressPattern "paymentPart" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AddressPattern'paymentPart
+           (\ x__ y__ -> x__ {_AddressPattern'paymentPart = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AddressPattern "delegationPart" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AddressPattern'delegationPart
+           (\ x__ y__ -> x__ {_AddressPattern'delegationPart = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AddressPattern "paymentIsScript" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AddressPattern'paymentIsScript
+           (\ x__ y__ -> x__ {_AddressPattern'paymentIsScript = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AddressPattern "delegationIsScript" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AddressPattern'delegationIsScript
+           (\ x__ y__ -> x__ {_AddressPattern'delegationIsScript = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message AddressPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.AddressPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\SOAddressPattern\DC2#\n\
+      \\rbyron_address\CAN\SOH \SOH(\fR\fbyronAddress\DC2!\n\
+      \\fpayment_part\CAN\STX \SOH(\fR\vpaymentPart\DC2'\n\
+      \\SIdelegation_part\CAN\ETX \SOH(\fR\SOdelegationPart\DC2*\n\
+      \\DC1payment_is_script\CAN\EOT \SOH(\bR\SIpaymentIsScript\DC20\n\
+      \\DC4delegation_is_script\CAN\ENQ \SOH(\bR\DC2delegationIsScript"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        byronAddress__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "byron_address"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"byronAddress")) ::
+              Data.ProtoLens.FieldDescriptor AddressPattern
+        paymentPart__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "payment_part"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"paymentPart")) ::
+              Data.ProtoLens.FieldDescriptor AddressPattern
+        delegationPart__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "delegation_part"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"delegationPart")) ::
+              Data.ProtoLens.FieldDescriptor AddressPattern
+        paymentIsScript__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "payment_is_script"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"paymentIsScript")) ::
+              Data.ProtoLens.FieldDescriptor AddressPattern
+        delegationIsScript__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "delegation_is_script"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"delegationIsScript")) ::
+              Data.ProtoLens.FieldDescriptor AddressPattern
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, byronAddress__field_descriptor),
+           (Data.ProtoLens.Tag 2, paymentPart__field_descriptor),
+           (Data.ProtoLens.Tag 3, delegationPart__field_descriptor),
+           (Data.ProtoLens.Tag 4, paymentIsScript__field_descriptor),
+           (Data.ProtoLens.Tag 5, delegationIsScript__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AddressPattern'_unknownFields
+        (\ x__ y__ -> x__ {_AddressPattern'_unknownFields = y__})
+  defMessage
+    = AddressPattern'_constructor
+        {_AddressPattern'byronAddress = Data.ProtoLens.fieldDefault,
+         _AddressPattern'paymentPart = Data.ProtoLens.fieldDefault,
+         _AddressPattern'delegationPart = Data.ProtoLens.fieldDefault,
+         _AddressPattern'paymentIsScript = Data.ProtoLens.fieldDefault,
+         _AddressPattern'delegationIsScript = Data.ProtoLens.fieldDefault,
+         _AddressPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AddressPattern
+          -> Data.ProtoLens.Encoding.Bytes.Parser AddressPattern
+        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))
+                                       "byron_address"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"byronAddress") 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_part"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"paymentPart") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "delegation_part"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"delegationPart") y x)
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "payment_is_script"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"paymentIsScript") y x)
+                        40
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "delegation_is_script"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"delegationIsScript") 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) "AddressPattern"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v
+                  = Lens.Family2.view (Data.ProtoLens.Field.field @"byronAddress") _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 @"paymentPart") _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 @"delegationPart") _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 @"paymentIsScript") _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 @"delegationIsScript") _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.ProtoLens.Encoding.Wire.buildFieldSet
+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
+instance Control.DeepSeq.NFData AddressPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AddressPattern'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_AddressPattern'byronAddress x__)
+                (Control.DeepSeq.deepseq
+                   (_AddressPattern'paymentPart x__)
+                   (Control.DeepSeq.deepseq
+                      (_AddressPattern'delegationPart x__)
+                      (Control.DeepSeq.deepseq
+                         (_AddressPattern'paymentIsScript x__)
+                         (Control.DeepSeq.deepseq
+                            (_AddressPattern'delegationIsScript x__) ())))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.name' @:: Lens' Asset Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.outputCoin' @:: Lens' Asset Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.mintCoin' @:: Lens' Asset Data.Int.Int64@ -}
+data Asset
+  = Asset'_constructor {_Asset'name :: !Data.ByteString.ByteString,
+                        _Asset'outputCoin :: !Data.Word.Word64,
+                        _Asset'mintCoin :: !Data.Int.Int64,
+                        _Asset'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Asset where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Asset "name" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Asset'name (\ x__ y__ -> x__ {_Asset'name = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Asset "outputCoin" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Asset'outputCoin (\ x__ y__ -> x__ {_Asset'outputCoin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Asset "mintCoin" Data.Int.Int64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Asset'mintCoin (\ x__ y__ -> x__ {_Asset'mintCoin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Asset where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Asset"
+  packedMessageDescriptor _
+    = "\n\
+      \\ENQAsset\DC2\DC2\n\
+      \\EOTname\CAN\SOH \SOH(\fR\EOTname\DC2\US\n\
+      \\voutput_coin\CAN\STX \SOH(\EOTR\n\
+      \outputCoin\DC2\ESC\n\
+      \\tmint_coin\CAN\ETX \SOH(\ETXR\bmintCoin"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        name__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
+              Data.ProtoLens.FieldDescriptor Asset
+        outputCoin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "output_coin"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"outputCoin")) ::
+              Data.ProtoLens.FieldDescriptor Asset
+        mintCoin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "mint_coin"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"mintCoin")) ::
+              Data.ProtoLens.FieldDescriptor Asset
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, name__field_descriptor),
+           (Data.ProtoLens.Tag 2, outputCoin__field_descriptor),
+           (Data.ProtoLens.Tag 3, mintCoin__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Asset'_unknownFields
+        (\ x__ y__ -> x__ {_Asset'_unknownFields = y__})
+  defMessage
+    = Asset'_constructor
+        {_Asset'name = Data.ProtoLens.fieldDefault,
+         _Asset'outputCoin = Data.ProtoLens.fieldDefault,
+         _Asset'mintCoin = Data.ProtoLens.fieldDefault,
+         _Asset'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Asset -> Data.ProtoLens.Encoding.Bytes.Parser Asset
+        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))
+                                       "name"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "output_coin"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outputCoin") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "mint_coin"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"mintCoin") 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) "Asset"
+  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 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 @"outputCoin") _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 @"mintCoin") _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 Asset where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Asset'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Asset'name x__)
+                (Control.DeepSeq.deepseq
+                   (_Asset'outputCoin x__)
+                   (Control.DeepSeq.deepseq (_Asset'mintCoin x__) ())))
+{- | Fields :
+      -}
+data AssetPattern
+  = AssetPattern'_constructor {_AssetPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AssetPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Message AssetPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.AssetPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\fAssetPattern"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag = let in Data.Map.fromList []
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AssetPattern'_unknownFields
+        (\ x__ y__ -> x__ {_AssetPattern'_unknownFields = y__})
+  defMessage
+    = AssetPattern'_constructor {_AssetPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AssetPattern -> Data.ProtoLens.Encoding.Bytes.Parser AssetPattern
+        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) "AssetPattern"
+  buildMessage
+    = \ _x
+        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
+             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
+instance Control.DeepSeq.NFData AssetPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq (_AssetPattern'_unknownFields x__) ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.metadata' @:: Lens' AuxData [Metadata]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'metadata' @:: Lens' AuxData (Data.Vector.Vector Metadata)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scripts' @:: Lens' AuxData [Script]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'scripts' @:: Lens' AuxData (Data.Vector.Vector Script)@ -}
+data AuxData
+  = AuxData'_constructor {_AuxData'metadata :: !(Data.Vector.Vector Metadata),
+                          _AuxData'scripts :: !(Data.Vector.Vector Script),
+                          _AuxData'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AuxData where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField AuxData "metadata" [Metadata] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AuxData'metadata (\ x__ y__ -> x__ {_AuxData'metadata = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField AuxData "vec'metadata" (Data.Vector.Vector Metadata) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AuxData'metadata (\ x__ y__ -> x__ {_AuxData'metadata = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AuxData "scripts" [Script] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AuxData'scripts (\ x__ y__ -> x__ {_AuxData'scripts = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField AuxData "vec'scripts" (Data.Vector.Vector Script) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AuxData'scripts (\ x__ y__ -> x__ {_AuxData'scripts = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message AuxData where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.AuxData"
+  packedMessageDescriptor _
+    = "\n\
+      \\aAuxData\DC2=\n\
+      \\bmetadata\CAN\SOH \ETX(\v2!.utxorpc.v1alpha.cardano.MetadataR\bmetadata\DC29\n\
+      \\ascripts\CAN\STX \ETX(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ascripts"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        metadata__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "metadata"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadata)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"metadata")) ::
+              Data.ProtoLens.FieldDescriptor AuxData
+        scripts__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "scripts"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Script)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"scripts")) ::
+              Data.ProtoLens.FieldDescriptor AuxData
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, metadata__field_descriptor),
+           (Data.ProtoLens.Tag 2, scripts__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AuxData'_unknownFields
+        (\ x__ y__ -> x__ {_AuxData'_unknownFields = y__})
+  defMessage
+    = AuxData'_constructor
+        {_AuxData'metadata = Data.Vector.Generic.empty,
+         _AuxData'scripts = Data.Vector.Generic.empty,
+         _AuxData'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AuxData
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Metadata
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Script
+                -> Data.ProtoLens.Encoding.Bytes.Parser AuxData
+        loop x mutable'metadata mutable'scripts
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'metadata <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                              mutable'metadata)
+                      frozen'scripts <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                             mutable'scripts)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'metadata") frozen'metadata
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'scripts") frozen'scripts 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)
+                                        "metadata"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'metadata y)
+                                loop x v mutable'scripts
+                        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)
+                                        "scripts"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'scripts y)
+                                loop x mutable'metadata v
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'metadata mutable'scripts
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'metadata <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                    Data.ProtoLens.Encoding.Growing.new
+              mutable'scripts <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                   Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'metadata mutable'scripts)
+          "AuxData"
+  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'metadata") _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'scripts") _x))
+                (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
+instance Control.DeepSeq.NFData AuxData where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AuxData'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_AuxData'metadata x__)
+                (Control.DeepSeq.deepseq (_AuxData'scripts x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'bigInt' @:: Lens' BigInt (Prelude.Maybe BigInt'BigInt)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'int' @:: Lens' BigInt (Prelude.Maybe Data.Int.Int64)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.int' @:: Lens' BigInt Data.Int.Int64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'bigUInt' @:: Lens' BigInt (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.bigUInt' @:: Lens' BigInt Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'bigNInt' @:: Lens' BigInt (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.bigNInt' @:: Lens' BigInt Data.ByteString.ByteString@ -}
+data BigInt
+  = BigInt'_constructor {_BigInt'bigInt :: !(Prelude.Maybe BigInt'BigInt),
+                         _BigInt'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show BigInt where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data BigInt'BigInt
+  = BigInt'Int !Data.Int.Int64 |
+    BigInt'BigUInt !Data.ByteString.ByteString |
+    BigInt'BigNInt !Data.ByteString.ByteString
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField BigInt "maybe'bigInt" (Prelude.Maybe BigInt'BigInt) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField BigInt "maybe'int" (Prelude.Maybe Data.Int.Int64) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (BigInt'Int x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap BigInt'Int y__))
+instance Data.ProtoLens.Field.HasField BigInt "int" Data.Int.Int64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (BigInt'Int x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap BigInt'Int y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField BigInt "maybe'bigUInt" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (BigInt'BigUInt x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap BigInt'BigUInt y__))
+instance Data.ProtoLens.Field.HasField BigInt "bigUInt" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (BigInt'BigUInt x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap BigInt'BigUInt y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField BigInt "maybe'bigNInt" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (BigInt'BigNInt x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap BigInt'BigNInt y__))
+instance Data.ProtoLens.Field.HasField BigInt "bigNInt" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BigInt'bigInt (\ x__ y__ -> x__ {_BigInt'bigInt = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (BigInt'BigNInt x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap BigInt'BigNInt y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Message BigInt where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.BigInt"
+  packedMessageDescriptor _
+    = "\n\
+      \\ACKBigInt\DC2\DC2\n\
+      \\ETXint\CAN\SOH \SOH(\ETXH\NULR\ETXint\DC2\FS\n\
+      \\tbig_u_int\CAN\STX \SOH(\fH\NULR\abigUInt\DC2\FS\n\
+      \\tbig_n_int\CAN\ETX \SOH(\fH\NULR\abigNIntB\t\n\
+      \\abig_int"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        int__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "int"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'int")) ::
+              Data.ProtoLens.FieldDescriptor BigInt
+        bigUInt__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "big_u_int"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'bigUInt")) ::
+              Data.ProtoLens.FieldDescriptor BigInt
+        bigNInt__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "big_n_int"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'bigNInt")) ::
+              Data.ProtoLens.FieldDescriptor BigInt
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, int__field_descriptor),
+           (Data.ProtoLens.Tag 2, bigUInt__field_descriptor),
+           (Data.ProtoLens.Tag 3, bigNInt__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _BigInt'_unknownFields
+        (\ x__ y__ -> x__ {_BigInt'_unknownFields = y__})
+  defMessage
+    = BigInt'_constructor
+        {_BigInt'bigInt = Prelude.Nothing, _BigInt'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: BigInt -> Data.ProtoLens.Encoding.Bytes.Parser BigInt
+        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)
+                                       "int"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"int") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "big_u_int"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"bigUInt") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "big_n_int"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"bigNInt") 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) "BigInt"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'bigInt") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (BigInt'Int v))
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                       ((Prelude..)
+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral v)
+                (Prelude.Just (BigInt'BigUInt 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)
+                (Prelude.Just (BigInt'BigNInt v))
+                  -> (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 BigInt where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_BigInt'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_BigInt'bigInt x__) ())
+instance Control.DeepSeq.NFData BigInt'BigInt where
+  rnf (BigInt'Int x__) = Control.DeepSeq.rnf x__
+  rnf (BigInt'BigUInt x__) = Control.DeepSeq.rnf x__
+  rnf (BigInt'BigNInt x__) = Control.DeepSeq.rnf x__
+_BigInt'Int ::
+  Data.ProtoLens.Prism.Prism' BigInt'BigInt Data.Int.Int64
+_BigInt'Int
+  = Data.ProtoLens.Prism.prism'
+      BigInt'Int
+      (\ p__
+         -> case p__ of
+              (BigInt'Int p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_BigInt'BigUInt ::
+  Data.ProtoLens.Prism.Prism' BigInt'BigInt Data.ByteString.ByteString
+_BigInt'BigUInt
+  = Data.ProtoLens.Prism.prism'
+      BigInt'BigUInt
+      (\ p__
+         -> case p__ of
+              (BigInt'BigUInt p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_BigInt'BigNInt ::
+  Data.ProtoLens.Prism.Prism' BigInt'BigInt Data.ByteString.ByteString
+_BigInt'BigNInt
+  = Data.ProtoLens.Prism.prism'
+      BigInt'BigNInt
+      (\ p__
+         -> case p__ of
+              (BigInt'BigNInt p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.header' @:: Lens' Block BlockHeader@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'header' @:: Lens' Block (Prelude.Maybe BlockHeader)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.body' @:: Lens' Block BlockBody@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'body' @:: Lens' Block (Prelude.Maybe BlockBody)@ -}
+data Block
+  = Block'_constructor {_Block'header :: !(Prelude.Maybe BlockHeader),
+                        _Block'body :: !(Prelude.Maybe BlockBody),
+                        _Block'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Block where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Block "header" BlockHeader where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Block'header (\ x__ y__ -> x__ {_Block'header = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Block "maybe'header" (Prelude.Maybe BlockHeader) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Block'header (\ x__ y__ -> x__ {_Block'header = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Block "body" BlockBody where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Block'body (\ x__ y__ -> x__ {_Block'body = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Block "maybe'body" (Prelude.Maybe BlockBody) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Block'body (\ x__ y__ -> x__ {_Block'body = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Block where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Block"
+  packedMessageDescriptor _
+    = "\n\
+      \\ENQBlock\DC2<\n\
+      \\ACKheader\CAN\SOH \SOH(\v2$.utxorpc.v1alpha.cardano.BlockHeaderR\ACKheader\DC26\n\
+      \\EOTbody\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.BlockBodyR\EOTbody"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        header__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "header"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockHeader)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'header")) ::
+              Data.ProtoLens.FieldDescriptor Block
+        body__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "body"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockBody)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'body")) ::
+              Data.ProtoLens.FieldDescriptor Block
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, header__field_descriptor),
+           (Data.ProtoLens.Tag 2, body__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Block'_unknownFields
+        (\ x__ y__ -> x__ {_Block'_unknownFields = y__})
+  defMessage
+    = Block'_constructor
+        {_Block'header = Prelude.Nothing, _Block'body = Prelude.Nothing,
+         _Block'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Block -> Data.ProtoLens.Encoding.Bytes.Parser Block
+        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)
+                                       "header"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"header") 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)
+                                       "body"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"body") 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) "Block"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'header") _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'body") _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 Block where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Block'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Block'header x__) (Control.DeepSeq.deepseq (_Block'body x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.tx' @:: Lens' BlockBody [Tx]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'tx' @:: Lens' BlockBody (Data.Vector.Vector Tx)@ -}
+data BlockBody
+  = BlockBody'_constructor {_BlockBody'tx :: !(Data.Vector.Vector Tx),
+                            _BlockBody'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show BlockBody where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField BlockBody "tx" [Tx] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockBody'tx (\ x__ y__ -> x__ {_BlockBody'tx = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField BlockBody "vec'tx" (Data.Vector.Vector Tx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockBody'tx (\ x__ y__ -> x__ {_BlockBody'tx = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message BlockBody where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.BlockBody"
+  packedMessageDescriptor _
+    = "\n\
+      \\tBlockBody\DC2+\n\
+      \\STXtx\CAN\SOH \ETX(\v2\ESC.utxorpc.v1alpha.cardano.TxR\STXtx"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tx__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tx"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Tx)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"tx")) ::
+              Data.ProtoLens.FieldDescriptor BlockBody
+      in Data.Map.fromList [(Data.ProtoLens.Tag 1, tx__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _BlockBody'_unknownFields
+        (\ x__ y__ -> x__ {_BlockBody'_unknownFields = y__})
+  defMessage
+    = BlockBody'_constructor
+        {_BlockBody'tx = Data.Vector.Generic.empty,
+         _BlockBody'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          BlockBody
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Tx
+             -> Data.ProtoLens.Encoding.Bytes.Parser BlockBody
+        loop x mutable'tx
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'tx <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'tx)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'tx") frozen'tx 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)
+                                        "tx"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'tx 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'tx
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'tx <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                              Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'tx)
+          "BlockBody"
+  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'tx") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData BlockBody where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_BlockBody'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_BlockBody'tx x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.slot' @:: Lens' BlockHeader Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.hash' @:: Lens' BlockHeader Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.height' @:: Lens' BlockHeader Data.Word.Word64@ -}
+data BlockHeader
+  = BlockHeader'_constructor {_BlockHeader'slot :: !Data.Word.Word64,
+                              _BlockHeader'hash :: !Data.ByteString.ByteString,
+                              _BlockHeader'height :: !Data.Word.Word64,
+                              _BlockHeader'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show BlockHeader where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField BlockHeader "slot" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockHeader'slot (\ x__ y__ -> x__ {_BlockHeader'slot = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField BlockHeader "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockHeader'hash (\ x__ y__ -> x__ {_BlockHeader'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField BlockHeader "height" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockHeader'height (\ x__ y__ -> x__ {_BlockHeader'height = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message BlockHeader where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.BlockHeader"
+  packedMessageDescriptor _
+    = "\n\
+      \\vBlockHeader\DC2\DC2\n\
+      \\EOTslot\CAN\SOH \SOH(\EOTR\EOTslot\DC2\DC2\n\
+      \\EOThash\CAN\STX \SOH(\fR\EOThash\DC2\SYN\n\
+      \\ACKheight\CAN\ETX \SOH(\EOTR\ACKheight"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        slot__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "slot"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"slot")) ::
+              Data.ProtoLens.FieldDescriptor BlockHeader
+        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 BlockHeader
+        height__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "height"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"height")) ::
+              Data.ProtoLens.FieldDescriptor BlockHeader
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, slot__field_descriptor),
+           (Data.ProtoLens.Tag 2, hash__field_descriptor),
+           (Data.ProtoLens.Tag 3, height__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _BlockHeader'_unknownFields
+        (\ x__ y__ -> x__ {_BlockHeader'_unknownFields = y__})
+  defMessage
+    = BlockHeader'_constructor
+        {_BlockHeader'slot = Data.ProtoLens.fieldDefault,
+         _BlockHeader'hash = Data.ProtoLens.fieldDefault,
+         _BlockHeader'height = Data.ProtoLens.fieldDefault,
+         _BlockHeader'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          BlockHeader -> Data.ProtoLens.Encoding.Bytes.Parser BlockHeader
+        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 "slot"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"slot") y x)
+                        18
+                          -> 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)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       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) "BlockHeader"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"slot") _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 @"hash") _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 @"height") _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 BlockHeader where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_BlockHeader'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_BlockHeader'slot x__)
+                (Control.DeepSeq.deepseq
+                   (_BlockHeader'hash x__)
+                   (Control.DeepSeq.deepseq (_BlockHeader'height x__) ())))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'certificate' @:: Lens' Certificate (Prelude.Maybe Certificate'Certificate)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeRegistration' @:: Lens' Certificate (Prelude.Maybe StakeCredential)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.stakeRegistration' @:: Lens' Certificate StakeCredential@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeDeregistration' @:: Lens' Certificate (Prelude.Maybe StakeCredential)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.stakeDeregistration' @:: Lens' Certificate StakeCredential@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeDelegation' @:: Lens' Certificate (Prelude.Maybe StakeDelegationCert)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.stakeDelegation' @:: Lens' Certificate StakeDelegationCert@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'poolRegistration' @:: Lens' Certificate (Prelude.Maybe PoolRegistrationCert)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolRegistration' @:: Lens' Certificate PoolRegistrationCert@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'poolRetirement' @:: Lens' Certificate (Prelude.Maybe PoolRetirementCert)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolRetirement' @:: Lens' Certificate PoolRetirementCert@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'genesisKeyDelegation' @:: Lens' Certificate (Prelude.Maybe GenesisKeyDelegationCert)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.genesisKeyDelegation' @:: Lens' Certificate GenesisKeyDelegationCert@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'mirCert' @:: Lens' Certificate (Prelude.Maybe MirCert)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.mirCert' @:: Lens' Certificate MirCert@ -}
+data Certificate
+  = Certificate'_constructor {_Certificate'certificate :: !(Prelude.Maybe Certificate'Certificate),
+                              _Certificate'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Certificate where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data Certificate'Certificate
+  = Certificate'StakeRegistration !StakeCredential |
+    Certificate'StakeDeregistration !StakeCredential |
+    Certificate'StakeDelegation !StakeDelegationCert |
+    Certificate'PoolRegistration !PoolRegistrationCert |
+    Certificate'PoolRetirement !PoolRetirementCert |
+    Certificate'GenesisKeyDelegation !GenesisKeyDelegationCert |
+    Certificate'MirCert !MirCert
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField Certificate "maybe'certificate" (Prelude.Maybe Certificate'Certificate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Certificate "maybe'stakeRegistration" (Prelude.Maybe StakeCredential) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'StakeRegistration x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'StakeRegistration y__))
+instance Data.ProtoLens.Field.HasField Certificate "stakeRegistration" StakeCredential where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'StakeRegistration x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'StakeRegistration y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'stakeDeregistration" (Prelude.Maybe StakeCredential) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'StakeDeregistration x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'StakeDeregistration y__))
+instance Data.ProtoLens.Field.HasField Certificate "stakeDeregistration" StakeCredential where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'StakeDeregistration x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'StakeDeregistration y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'stakeDelegation" (Prelude.Maybe StakeDelegationCert) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'StakeDelegation x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'StakeDelegation y__))
+instance Data.ProtoLens.Field.HasField Certificate "stakeDelegation" StakeDelegationCert where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'StakeDelegation x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'StakeDelegation y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'poolRegistration" (Prelude.Maybe PoolRegistrationCert) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'PoolRegistration x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'PoolRegistration y__))
+instance Data.ProtoLens.Field.HasField Certificate "poolRegistration" PoolRegistrationCert where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'PoolRegistration x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'PoolRegistration y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'poolRetirement" (Prelude.Maybe PoolRetirementCert) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'PoolRetirement x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'PoolRetirement y__))
+instance Data.ProtoLens.Field.HasField Certificate "poolRetirement" PoolRetirementCert where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'PoolRetirement x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'PoolRetirement y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'genesisKeyDelegation" (Prelude.Maybe GenesisKeyDelegationCert) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'GenesisKeyDelegation x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'GenesisKeyDelegation y__))
+instance Data.ProtoLens.Field.HasField Certificate "genesisKeyDelegation" GenesisKeyDelegationCert where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'GenesisKeyDelegation x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'GenesisKeyDelegation y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Certificate "maybe'mirCert" (Prelude.Maybe MirCert) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Certificate'MirCert x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Certificate'MirCert y__))
+instance Data.ProtoLens.Field.HasField Certificate "mirCert" MirCert where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Certificate'certificate
+           (\ x__ y__ -> x__ {_Certificate'certificate = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Certificate'MirCert x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Certificate'MirCert y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message Certificate where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.Certificate"
+  packedMessageDescriptor _
+    = "\n\
+      \\vCertificate\DC2Y\n\
+      \\DC2stake_registration\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialH\NULR\DC1stakeRegistration\DC2]\n\
+      \\DC4stake_deregistration\CAN\STX \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialH\NULR\DC3stakeDeregistration\DC2Y\n\
+      \\DLEstake_delegation\CAN\ETX \SOH(\v2,.utxorpc.v1alpha.cardano.StakeDelegationCertH\NULR\SIstakeDelegation\DC2\\\n\
+      \\DC1pool_registration\CAN\EOT \SOH(\v2-.utxorpc.v1alpha.cardano.PoolRegistrationCertH\NULR\DLEpoolRegistration\DC2V\n\
+      \\SIpool_retirement\CAN\ENQ \SOH(\v2+.utxorpc.v1alpha.cardano.PoolRetirementCertH\NULR\SOpoolRetirement\DC2i\n\
+      \\SYNgenesis_key_delegation\CAN\ACK \SOH(\v21.utxorpc.v1alpha.cardano.GenesisKeyDelegationCertH\NULR\DC4genesisKeyDelegation\DC2=\n\
+      \\bmir_cert\CAN\a \SOH(\v2 .utxorpc.v1alpha.cardano.MirCertH\NULR\amirCertB\r\n\
+      \\vcertificate"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        stakeRegistration__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stake_registration"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor StakeCredential)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'stakeRegistration")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        stakeDeregistration__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stake_deregistration"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor StakeCredential)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'stakeDeregistration")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        stakeDelegation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stake_delegation"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor StakeDelegationCert)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'stakeDelegation")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        poolRegistration__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_registration"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PoolRegistrationCert)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'poolRegistration")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        poolRetirement__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_retirement"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PoolRetirementCert)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'poolRetirement")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        genesisKeyDelegation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "genesis_key_delegation"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor GenesisKeyDelegationCert)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'genesisKeyDelegation")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+        mirCert__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "mir_cert"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MirCert)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'mirCert")) ::
+              Data.ProtoLens.FieldDescriptor Certificate
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, stakeRegistration__field_descriptor),
+           (Data.ProtoLens.Tag 2, stakeDeregistration__field_descriptor),
+           (Data.ProtoLens.Tag 3, stakeDelegation__field_descriptor),
+           (Data.ProtoLens.Tag 4, poolRegistration__field_descriptor),
+           (Data.ProtoLens.Tag 5, poolRetirement__field_descriptor),
+           (Data.ProtoLens.Tag 6, genesisKeyDelegation__field_descriptor),
+           (Data.ProtoLens.Tag 7, mirCert__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Certificate'_unknownFields
+        (\ x__ y__ -> x__ {_Certificate'_unknownFields = y__})
+  defMessage
+    = Certificate'_constructor
+        {_Certificate'certificate = Prelude.Nothing,
+         _Certificate'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Certificate -> Data.ProtoLens.Encoding.Bytes.Parser Certificate
+        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)
+                                       "stake_registration"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"stakeRegistration") 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)
+                                       "stake_deregistration"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"stakeDeregistration") 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)
+                                       "stake_delegation"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"stakeDelegation") 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)
+                                       "pool_registration"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"poolRegistration") 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)
+                                       "pool_retirement"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"poolRetirement") 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)
+                                       "genesis_key_delegation"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"genesisKeyDelegation") 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)
+                                       "mir_cert"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"mirCert") 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) "Certificate"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'certificate") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (Certificate'StakeRegistration 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 (Certificate'StakeDeregistration 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 (Certificate'StakeDelegation 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 (Certificate'PoolRegistration 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 (Certificate'PoolRetirement 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)
+                (Prelude.Just (Certificate'GenesisKeyDelegation v))
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
+                       ((Prelude..)
+                          (\ bs
+                             -> (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                          Data.ProtoLens.encodeMessage v)
+                (Prelude.Just (Certificate'MirCert v))
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
+                       ((Prelude..)
+                          (\ bs
+                             -> (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                          Data.ProtoLens.encodeMessage v))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData Certificate where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Certificate'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_Certificate'certificate x__) ())
+instance Control.DeepSeq.NFData Certificate'Certificate where
+  rnf (Certificate'StakeRegistration x__) = Control.DeepSeq.rnf x__
+  rnf (Certificate'StakeDeregistration x__) = Control.DeepSeq.rnf x__
+  rnf (Certificate'StakeDelegation x__) = Control.DeepSeq.rnf x__
+  rnf (Certificate'PoolRegistration x__) = Control.DeepSeq.rnf x__
+  rnf (Certificate'PoolRetirement x__) = Control.DeepSeq.rnf x__
+  rnf (Certificate'GenesisKeyDelegation x__)
+    = Control.DeepSeq.rnf x__
+  rnf (Certificate'MirCert x__) = Control.DeepSeq.rnf x__
+_Certificate'StakeRegistration ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate StakeCredential
+_Certificate'StakeRegistration
+  = Data.ProtoLens.Prism.prism'
+      Certificate'StakeRegistration
+      (\ p__
+         -> case p__ of
+              (Certificate'StakeRegistration p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'StakeDeregistration ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate StakeCredential
+_Certificate'StakeDeregistration
+  = Data.ProtoLens.Prism.prism'
+      Certificate'StakeDeregistration
+      (\ p__
+         -> case p__ of
+              (Certificate'StakeDeregistration p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'StakeDelegation ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate StakeDelegationCert
+_Certificate'StakeDelegation
+  = Data.ProtoLens.Prism.prism'
+      Certificate'StakeDelegation
+      (\ p__
+         -> case p__ of
+              (Certificate'StakeDelegation p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'PoolRegistration ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate PoolRegistrationCert
+_Certificate'PoolRegistration
+  = Data.ProtoLens.Prism.prism'
+      Certificate'PoolRegistration
+      (\ p__
+         -> case p__ of
+              (Certificate'PoolRegistration p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'PoolRetirement ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate PoolRetirementCert
+_Certificate'PoolRetirement
+  = Data.ProtoLens.Prism.prism'
+      Certificate'PoolRetirement
+      (\ p__
+         -> case p__ of
+              (Certificate'PoolRetirement p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'GenesisKeyDelegation ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate GenesisKeyDelegationCert
+_Certificate'GenesisKeyDelegation
+  = Data.ProtoLens.Prism.prism'
+      Certificate'GenesisKeyDelegation
+      (\ p__
+         -> case p__ of
+              (Certificate'GenesisKeyDelegation p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Certificate'MirCert ::
+  Data.ProtoLens.Prism.Prism' Certificate'Certificate MirCert
+_Certificate'MirCert
+  = Data.ProtoLens.Prism.prism'
+      Certificate'MirCert
+      (\ p__
+         -> case p__ of
+              (Certificate'MirCert p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.collateral' @:: Lens' Collateral [TxInput]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'collateral' @:: Lens' Collateral (Data.Vector.Vector TxInput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.collateralReturn' @:: Lens' Collateral TxOutput@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'collateralReturn' @:: Lens' Collateral (Prelude.Maybe TxOutput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.totalCollateral' @:: Lens' Collateral Data.Word.Word64@ -}
+data Collateral
+  = Collateral'_constructor {_Collateral'collateral :: !(Data.Vector.Vector TxInput),
+                             _Collateral'collateralReturn :: !(Prelude.Maybe TxOutput),
+                             _Collateral'totalCollateral :: !Data.Word.Word64,
+                             _Collateral'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Collateral where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Collateral "collateral" [TxInput] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Collateral'collateral
+           (\ x__ y__ -> x__ {_Collateral'collateral = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Collateral "vec'collateral" (Data.Vector.Vector TxInput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Collateral'collateral
+           (\ x__ y__ -> x__ {_Collateral'collateral = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Collateral "collateralReturn" TxOutput where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Collateral'collateralReturn
+           (\ x__ y__ -> x__ {_Collateral'collateralReturn = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Collateral "maybe'collateralReturn" (Prelude.Maybe TxOutput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Collateral'collateralReturn
+           (\ x__ y__ -> x__ {_Collateral'collateralReturn = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Collateral "totalCollateral" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Collateral'totalCollateral
+           (\ x__ y__ -> x__ {_Collateral'totalCollateral = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Collateral where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Collateral"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Collateral\DC2@\n\
+      \\n\
+      \collateral\CAN\SOH \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\n\
+      \collateral\DC2N\n\
+      \\DC1collateral_return\CAN\STX \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputR\DLEcollateralReturn\DC2)\n\
+      \\DLEtotal_collateral\CAN\ETX \SOH(\EOTR\SItotalCollateral"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        collateral__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "collateral"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxInput)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"collateral")) ::
+              Data.ProtoLens.FieldDescriptor Collateral
+        collateralReturn__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "collateral_return"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxOutput)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'collateralReturn")) ::
+              Data.ProtoLens.FieldDescriptor Collateral
+        totalCollateral__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "total_collateral"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"totalCollateral")) ::
+              Data.ProtoLens.FieldDescriptor Collateral
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, collateral__field_descriptor),
+           (Data.ProtoLens.Tag 2, collateralReturn__field_descriptor),
+           (Data.ProtoLens.Tag 3, totalCollateral__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Collateral'_unknownFields
+        (\ x__ y__ -> x__ {_Collateral'_unknownFields = y__})
+  defMessage
+    = Collateral'_constructor
+        {_Collateral'collateral = Data.Vector.Generic.empty,
+         _Collateral'collateralReturn = Prelude.Nothing,
+         _Collateral'totalCollateral = Data.ProtoLens.fieldDefault,
+         _Collateral'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Collateral
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxInput
+             -> Data.ProtoLens.Encoding.Bytes.Parser Collateral
+        loop x mutable'collateral
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'collateral <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                mutable'collateral)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'collateral") frozen'collateral
+                              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)
+                                        "collateral"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'collateral y)
+                                loop x 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)
+                                       "collateral_return"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"collateralReturn") y x)
+                                  mutable'collateral
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "total_collateral"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"totalCollateral") y x)
+                                  mutable'collateral
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'collateral
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'collateral <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'collateral)
+          "Collateral"
+  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'collateral") _x))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view
+                       (Data.ProtoLens.Field.field @"maybe'collateralReturn") _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 @"totalCollateral") _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 Collateral where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Collateral'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Collateral'collateral x__)
+                (Control.DeepSeq.deepseq
+                   (_Collateral'collateralReturn x__)
+                   (Control.DeepSeq.deepseq (_Collateral'totalCollateral x__) ())))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.tag' @:: Lens' Constr Data.Word.Word32@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.anyConstructor' @:: Lens' Constr Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.fields' @:: Lens' Constr [PlutusData]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'fields' @:: Lens' Constr (Data.Vector.Vector PlutusData)@ -}
+data Constr
+  = Constr'_constructor {_Constr'tag :: !Data.Word.Word32,
+                         _Constr'anyConstructor :: !Data.Word.Word64,
+                         _Constr'fields :: !(Data.Vector.Vector PlutusData),
+                         _Constr'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Constr where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Constr "tag" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Constr'tag (\ x__ y__ -> x__ {_Constr'tag = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Constr "anyConstructor" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Constr'anyConstructor
+           (\ x__ y__ -> x__ {_Constr'anyConstructor = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Constr "fields" [PlutusData] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Constr'fields (\ x__ y__ -> x__ {_Constr'fields = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Constr "vec'fields" (Data.Vector.Vector PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Constr'fields (\ x__ y__ -> x__ {_Constr'fields = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Constr where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Constr"
+  packedMessageDescriptor _
+    = "\n\
+      \\ACKConstr\DC2\DLE\n\
+      \\ETXtag\CAN\SOH \SOH(\rR\ETXtag\DC2'\n\
+      \\SIany_constructor\CAN\STX \SOH(\EOTR\SOanyConstructor\DC2;\n\
+      \\ACKfields\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ACKfields"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tag__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tag"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"tag")) ::
+              Data.ProtoLens.FieldDescriptor Constr
+        anyConstructor__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_constructor"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"anyConstructor")) ::
+              Data.ProtoLens.FieldDescriptor Constr
+        fields__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "fields"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"fields")) ::
+              Data.ProtoLens.FieldDescriptor Constr
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, tag__field_descriptor),
+           (Data.ProtoLens.Tag 2, anyConstructor__field_descriptor),
+           (Data.ProtoLens.Tag 3, fields__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Constr'_unknownFields
+        (\ x__ y__ -> x__ {_Constr'_unknownFields = y__})
+  defMessage
+    = Constr'_constructor
+        {_Constr'tag = Data.ProtoLens.fieldDefault,
+         _Constr'anyConstructor = Data.ProtoLens.fieldDefault,
+         _Constr'fields = Data.Vector.Generic.empty,
+         _Constr'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Constr
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PlutusData
+             -> Data.ProtoLens.Encoding.Bytes.Parser Constr
+        loop x mutable'fields
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'fields <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'fields)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'fields") frozen'fields 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)
+                                       "tag"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"tag") y x)
+                                  mutable'fields
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "any_constructor"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"anyConstructor") y x)
+                                  mutable'fields
+                        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)
+                                        "fields"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'fields 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'fields
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'fields <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'fields)
+          "Constr"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"tag") _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 @"anyConstructor") _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.<>)
+                   (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'fields") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Constr where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Constr'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Constr'tag x__)
+                (Control.DeepSeq.deepseq
+                   (_Constr'anyConstructor x__)
+                   (Control.DeepSeq.deepseq (_Constr'fields x__) ())))
+{- | Fields :
+      -}
+data DatumPattern
+  = DatumPattern'_constructor {_DatumPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show DatumPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Message DatumPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.DatumPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\fDatumPattern"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag = let in Data.Map.fromList []
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _DatumPattern'_unknownFields
+        (\ x__ y__ -> x__ {_DatumPattern'_unknownFields = y__})
+  defMessage
+    = DatumPattern'_constructor {_DatumPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          DatumPattern -> Data.ProtoLens.Encoding.Bytes.Parser DatumPattern
+        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) "DatumPattern"
+  buildMessage
+    = \ _x
+        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
+             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
+instance Control.DeepSeq.NFData DatumPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq (_DatumPattern'_unknownFields x__) ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.genesisHash' @:: Lens' GenesisKeyDelegationCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.genesisDelegateHash' @:: Lens' GenesisKeyDelegationCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vrfKeyhash' @:: Lens' GenesisKeyDelegationCert Data.ByteString.ByteString@ -}
+data GenesisKeyDelegationCert
+  = GenesisKeyDelegationCert'_constructor {_GenesisKeyDelegationCert'genesisHash :: !Data.ByteString.ByteString,
+                                           _GenesisKeyDelegationCert'genesisDelegateHash :: !Data.ByteString.ByteString,
+                                           _GenesisKeyDelegationCert'vrfKeyhash :: !Data.ByteString.ByteString,
+                                           _GenesisKeyDelegationCert'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show GenesisKeyDelegationCert where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField GenesisKeyDelegationCert "genesisHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GenesisKeyDelegationCert'genesisHash
+           (\ x__ y__ -> x__ {_GenesisKeyDelegationCert'genesisHash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GenesisKeyDelegationCert "genesisDelegateHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GenesisKeyDelegationCert'genesisDelegateHash
+           (\ x__ y__
+              -> x__ {_GenesisKeyDelegationCert'genesisDelegateHash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField GenesisKeyDelegationCert "vrfKeyhash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _GenesisKeyDelegationCert'vrfKeyhash
+           (\ x__ y__ -> x__ {_GenesisKeyDelegationCert'vrfKeyhash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message GenesisKeyDelegationCert where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.GenesisKeyDelegationCert"
+  packedMessageDescriptor _
+    = "\n\
+      \\CANGenesisKeyDelegationCert\DC2!\n\
+      \\fgenesis_hash\CAN\SOH \SOH(\fR\vgenesisHash\DC22\n\
+      \\NAKgenesis_delegate_hash\CAN\STX \SOH(\fR\DC3genesisDelegateHash\DC2\US\n\
+      \\vvrf_keyhash\CAN\ETX \SOH(\fR\n\
+      \vrfKeyhash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        genesisHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "genesis_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"genesisHash")) ::
+              Data.ProtoLens.FieldDescriptor GenesisKeyDelegationCert
+        genesisDelegateHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "genesis_delegate_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"genesisDelegateHash")) ::
+              Data.ProtoLens.FieldDescriptor GenesisKeyDelegationCert
+        vrfKeyhash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "vrf_keyhash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"vrfKeyhash")) ::
+              Data.ProtoLens.FieldDescriptor GenesisKeyDelegationCert
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, genesisHash__field_descriptor),
+           (Data.ProtoLens.Tag 2, genesisDelegateHash__field_descriptor),
+           (Data.ProtoLens.Tag 3, vrfKeyhash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _GenesisKeyDelegationCert'_unknownFields
+        (\ x__ y__ -> x__ {_GenesisKeyDelegationCert'_unknownFields = y__})
+  defMessage
+    = GenesisKeyDelegationCert'_constructor
+        {_GenesisKeyDelegationCert'genesisHash = Data.ProtoLens.fieldDefault,
+         _GenesisKeyDelegationCert'genesisDelegateHash = Data.ProtoLens.fieldDefault,
+         _GenesisKeyDelegationCert'vrfKeyhash = Data.ProtoLens.fieldDefault,
+         _GenesisKeyDelegationCert'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          GenesisKeyDelegationCert
+          -> Data.ProtoLens.Encoding.Bytes.Parser GenesisKeyDelegationCert
+        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))
+                                       "genesis_hash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"genesisHash") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "genesis_delegate_hash"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"genesisDelegateHash") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "vrf_keyhash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"vrfKeyhash") 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) "GenesisKeyDelegationCert"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v
+                  = Lens.Family2.view (Data.ProtoLens.Field.field @"genesisHash") _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 @"genesisDelegateHash") _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 @"vrfKeyhash") _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 GenesisKeyDelegationCert where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_GenesisKeyDelegationCert'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_GenesisKeyDelegationCert'genesisHash x__)
+                (Control.DeepSeq.deepseq
+                   (_GenesisKeyDelegationCert'genesisDelegateHash x__)
+                   (Control.DeepSeq.deepseq
+                      (_GenesisKeyDelegationCert'vrfKeyhash x__) ())))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.label' @:: Lens' Metadata Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.value' @:: Lens' Metadata Metadatum@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'value' @:: Lens' Metadata (Prelude.Maybe Metadatum)@ -}
+data Metadata
+  = Metadata'_constructor {_Metadata'label :: !Data.Word.Word64,
+                           _Metadata'value :: !(Prelude.Maybe Metadatum),
+                           _Metadata'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Metadata where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Metadata "label" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'label (\ x__ y__ -> x__ {_Metadata'label = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Metadata "value" Metadatum where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'value (\ x__ y__ -> x__ {_Metadata'value = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Metadata "maybe'value" (Prelude.Maybe Metadatum) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'value (\ x__ y__ -> x__ {_Metadata'value = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Metadata where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Metadata"
+  packedMessageDescriptor _
+    = "\n\
+      \\bMetadata\DC2\DC4\n\
+      \\ENQlabel\CAN\SOH \SOH(\EOTR\ENQlabel\DC28\n\
+      \\ENQvalue\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQvalue"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        label__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "label"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"label")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+        value__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "value"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadatum)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'value")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, label__field_descriptor),
+           (Data.ProtoLens.Tag 2, value__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Metadata'_unknownFields
+        (\ x__ y__ -> x__ {_Metadata'_unknownFields = y__})
+  defMessage
+    = Metadata'_constructor
+        {_Metadata'label = Data.ProtoLens.fieldDefault,
+         _Metadata'value = Prelude.Nothing, _Metadata'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Metadata -> Data.ProtoLens.Encoding.Bytes.Parser Metadata
+        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 "label"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"label") 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) "Metadata"
+  buildMessage
+    = \ _x
+        -> (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 8)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt _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 Metadata where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Metadata'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Metadata'label x__)
+                (Control.DeepSeq.deepseq (_Metadata'value x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'metadatum' @:: Lens' Metadatum (Prelude.Maybe Metadatum'Metadatum)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'int' @:: Lens' Metadatum (Prelude.Maybe Data.Int.Int64)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.int' @:: Lens' Metadatum Data.Int.Int64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'bytes' @:: Lens' Metadatum (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.bytes' @:: Lens' Metadatum Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'text' @:: Lens' Metadatum (Prelude.Maybe Data.Text.Text)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.text' @:: Lens' Metadatum Data.Text.Text@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'array' @:: Lens' Metadatum (Prelude.Maybe MetadatumArray)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.array' @:: Lens' Metadatum MetadatumArray@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'map' @:: Lens' Metadatum (Prelude.Maybe MetadatumMap)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.map' @:: Lens' Metadatum MetadatumMap@ -}
+data Metadatum
+  = Metadatum'_constructor {_Metadatum'metadatum :: !(Prelude.Maybe Metadatum'Metadatum),
+                            _Metadatum'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Metadatum where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data Metadatum'Metadatum
+  = Metadatum'Int !Data.Int.Int64 |
+    Metadatum'Bytes !Data.ByteString.ByteString |
+    Metadatum'Text !Data.Text.Text |
+    Metadatum'Array !MetadatumArray |
+    Metadatum'Map !MetadatumMap
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'metadatum" (Prelude.Maybe Metadatum'Metadatum) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'int" (Prelude.Maybe Data.Int.Int64) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Metadatum'Int x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Metadatum'Int y__))
+instance Data.ProtoLens.Field.HasField Metadatum "int" Data.Int.Int64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Metadatum'Int x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Metadatum'Int y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'bytes" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Metadatum'Bytes x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Metadatum'Bytes y__))
+instance Data.ProtoLens.Field.HasField Metadatum "bytes" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Metadatum'Bytes x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Metadatum'Bytes y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'text" (Prelude.Maybe Data.Text.Text) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Metadatum'Text x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Metadatum'Text y__))
+instance Data.ProtoLens.Field.HasField Metadatum "text" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Metadatum'Text x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Metadatum'Text y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'array" (Prelude.Maybe MetadatumArray) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Metadatum'Array x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Metadatum'Array y__))
+instance Data.ProtoLens.Field.HasField Metadatum "array" MetadatumArray where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Metadatum'Array x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Metadatum'Array y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Metadatum "maybe'map" (Prelude.Maybe MetadatumMap) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Metadatum'Map x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Metadatum'Map y__))
+instance Data.ProtoLens.Field.HasField Metadatum "map" MetadatumMap where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadatum'metadatum
+           (\ x__ y__ -> x__ {_Metadatum'metadatum = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Metadatum'Map x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Metadatum'Map y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message Metadatum where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Metadatum"
+  packedMessageDescriptor _
+    = "\n\
+      \\tMetadatum\DC2\DC2\n\
+      \\ETXint\CAN\SOH \SOH(\ETXH\NULR\ETXint\DC2\SYN\n\
+      \\ENQbytes\CAN\STX \SOH(\fH\NULR\ENQbytes\DC2\DC4\n\
+      \\EOTtext\CAN\ETX \SOH(\tH\NULR\EOTtext\DC2?\n\
+      \\ENQarray\CAN\EOT \SOH(\v2'.utxorpc.v1alpha.cardano.MetadatumArrayH\NULR\ENQarray\DC29\n\
+      \\ETXmap\CAN\ENQ \SOH(\v2%.utxorpc.v1alpha.cardano.MetadatumMapH\NULR\ETXmapB\v\n\
+      \\tmetadatum"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        int__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "int"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'int")) ::
+              Data.ProtoLens.FieldDescriptor Metadatum
+        bytes__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "bytes"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'bytes")) ::
+              Data.ProtoLens.FieldDescriptor Metadatum
+        text__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "text"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'text")) ::
+              Data.ProtoLens.FieldDescriptor Metadatum
+        array__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "array"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MetadatumArray)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'array")) ::
+              Data.ProtoLens.FieldDescriptor Metadatum
+        map__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "map"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MetadatumMap)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'map")) ::
+              Data.ProtoLens.FieldDescriptor Metadatum
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, int__field_descriptor),
+           (Data.ProtoLens.Tag 2, bytes__field_descriptor),
+           (Data.ProtoLens.Tag 3, text__field_descriptor),
+           (Data.ProtoLens.Tag 4, array__field_descriptor),
+           (Data.ProtoLens.Tag 5, map__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Metadatum'_unknownFields
+        (\ x__ y__ -> x__ {_Metadatum'_unknownFields = y__})
+  defMessage
+    = Metadatum'_constructor
+        {_Metadatum'metadatum = Prelude.Nothing,
+         _Metadatum'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Metadatum -> Data.ProtoLens.Encoding.Bytes.Parser Metadatum
+        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)
+                                       "int"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"int") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "bytes"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"bytes") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "text"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"text") 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)
+                                       "array"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"array") 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)
+                                       "map"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"map") 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) "Metadatum"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'metadatum") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (Metadatum'Int v))
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                       ((Prelude..)
+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral v)
+                (Prelude.Just (Metadatum'Bytes 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)
+                (Prelude.Just (Metadatum'Text 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.Text.Encoding.encodeUtf8 v)
+                (Prelude.Just (Metadatum'Array 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 (Metadatum'Map 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 Metadatum where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Metadatum'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_Metadatum'metadatum x__) ())
+instance Control.DeepSeq.NFData Metadatum'Metadatum where
+  rnf (Metadatum'Int x__) = Control.DeepSeq.rnf x__
+  rnf (Metadatum'Bytes x__) = Control.DeepSeq.rnf x__
+  rnf (Metadatum'Text x__) = Control.DeepSeq.rnf x__
+  rnf (Metadatum'Array x__) = Control.DeepSeq.rnf x__
+  rnf (Metadatum'Map x__) = Control.DeepSeq.rnf x__
+_Metadatum'Int ::
+  Data.ProtoLens.Prism.Prism' Metadatum'Metadatum Data.Int.Int64
+_Metadatum'Int
+  = Data.ProtoLens.Prism.prism'
+      Metadatum'Int
+      (\ p__
+         -> case p__ of
+              (Metadatum'Int p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Metadatum'Bytes ::
+  Data.ProtoLens.Prism.Prism' Metadatum'Metadatum Data.ByteString.ByteString
+_Metadatum'Bytes
+  = Data.ProtoLens.Prism.prism'
+      Metadatum'Bytes
+      (\ p__
+         -> case p__ of
+              (Metadatum'Bytes p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Metadatum'Text ::
+  Data.ProtoLens.Prism.Prism' Metadatum'Metadatum Data.Text.Text
+_Metadatum'Text
+  = Data.ProtoLens.Prism.prism'
+      Metadatum'Text
+      (\ p__
+         -> case p__ of
+              (Metadatum'Text p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Metadatum'Array ::
+  Data.ProtoLens.Prism.Prism' Metadatum'Metadatum MetadatumArray
+_Metadatum'Array
+  = Data.ProtoLens.Prism.prism'
+      Metadatum'Array
+      (\ p__
+         -> case p__ of
+              (Metadatum'Array p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Metadatum'Map ::
+  Data.ProtoLens.Prism.Prism' Metadatum'Metadatum MetadatumMap
+_Metadatum'Map
+  = Data.ProtoLens.Prism.prism'
+      Metadatum'Map
+      (\ p__
+         -> case p__ of
+              (Metadatum'Map p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.items' @:: Lens' MetadatumArray [Metadatum]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'items' @:: Lens' MetadatumArray (Data.Vector.Vector Metadatum)@ -}
+data MetadatumArray
+  = MetadatumArray'_constructor {_MetadatumArray'items :: !(Data.Vector.Vector Metadatum),
+                                 _MetadatumArray'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MetadatumArray where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MetadatumArray "items" [Metadatum] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumArray'items
+           (\ x__ y__ -> x__ {_MetadatumArray'items = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField MetadatumArray "vec'items" (Data.Vector.Vector Metadatum) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumArray'items
+           (\ x__ y__ -> x__ {_MetadatumArray'items = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MetadatumArray where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.MetadatumArray"
+  packedMessageDescriptor _
+    = "\n\
+      \\SOMetadatumArray\DC28\n\
+      \\ENQitems\CAN\SOH \ETX(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQitems"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        items__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "items"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadatum)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"items")) ::
+              Data.ProtoLens.FieldDescriptor MetadatumArray
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, items__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MetadatumArray'_unknownFields
+        (\ x__ y__ -> x__ {_MetadatumArray'_unknownFields = y__})
+  defMessage
+    = MetadatumArray'_constructor
+        {_MetadatumArray'items = Data.Vector.Generic.empty,
+         _MetadatumArray'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          MetadatumArray
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Metadatum
+             -> Data.ProtoLens.Encoding.Bytes.Parser MetadatumArray
+        loop x mutable'items
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'items)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'items") frozen'items 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)
+                                        "items"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'items 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'items
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'items)
+          "MetadatumArray"
+  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'items") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData MetadatumArray where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MetadatumArray'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_MetadatumArray'items x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.pairs' @:: Lens' MetadatumMap [MetadatumPair]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'pairs' @:: Lens' MetadatumMap (Data.Vector.Vector MetadatumPair)@ -}
+data MetadatumMap
+  = MetadatumMap'_constructor {_MetadatumMap'pairs :: !(Data.Vector.Vector MetadatumPair),
+                               _MetadatumMap'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MetadatumMap where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MetadatumMap "pairs" [MetadatumPair] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumMap'pairs (\ x__ y__ -> x__ {_MetadatumMap'pairs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField MetadatumMap "vec'pairs" (Data.Vector.Vector MetadatumPair) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumMap'pairs (\ x__ y__ -> x__ {_MetadatumMap'pairs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MetadatumMap where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.MetadatumMap"
+  packedMessageDescriptor _
+    = "\n\
+      \\fMetadatumMap\DC2<\n\
+      \\ENQpairs\CAN\SOH \ETX(\v2&.utxorpc.v1alpha.cardano.MetadatumPairR\ENQpairs"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        pairs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pairs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MetadatumPair)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"pairs")) ::
+              Data.ProtoLens.FieldDescriptor MetadatumMap
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, pairs__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MetadatumMap'_unknownFields
+        (\ x__ y__ -> x__ {_MetadatumMap'_unknownFields = y__})
+  defMessage
+    = MetadatumMap'_constructor
+        {_MetadatumMap'pairs = Data.Vector.Generic.empty,
+         _MetadatumMap'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          MetadatumMap
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MetadatumPair
+             -> Data.ProtoLens.Encoding.Bytes.Parser MetadatumMap
+        loop x mutable'pairs
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'pairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'pairs)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'pairs") frozen'pairs 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)
+                                        "pairs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'pairs 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'pairs
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'pairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'pairs)
+          "MetadatumMap"
+  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'pairs") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData MetadatumMap where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MetadatumMap'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_MetadatumMap'pairs x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.key' @:: Lens' MetadatumPair Metadatum@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'key' @:: Lens' MetadatumPair (Prelude.Maybe Metadatum)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.value' @:: Lens' MetadatumPair Metadatum@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'value' @:: Lens' MetadatumPair (Prelude.Maybe Metadatum)@ -}
+data MetadatumPair
+  = MetadatumPair'_constructor {_MetadatumPair'key :: !(Prelude.Maybe Metadatum),
+                                _MetadatumPair'value :: !(Prelude.Maybe Metadatum),
+                                _MetadatumPair'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MetadatumPair where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MetadatumPair "key" Metadatum where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumPair'key (\ x__ y__ -> x__ {_MetadatumPair'key = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField MetadatumPair "maybe'key" (Prelude.Maybe Metadatum) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumPair'key (\ x__ y__ -> x__ {_MetadatumPair'key = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MetadatumPair "value" Metadatum where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumPair'value
+           (\ x__ y__ -> x__ {_MetadatumPair'value = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField MetadatumPair "maybe'value" (Prelude.Maybe Metadatum) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MetadatumPair'value
+           (\ x__ y__ -> x__ {_MetadatumPair'value = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MetadatumPair where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.MetadatumPair"
+  packedMessageDescriptor _
+    = "\n\
+      \\rMetadatumPair\DC24\n\
+      \\ETXkey\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ETXkey\DC28\n\
+      \\ENQvalue\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQvalue"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        key__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "key"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadatum)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'key")) ::
+              Data.ProtoLens.FieldDescriptor MetadatumPair
+        value__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "value"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadatum)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'value")) ::
+              Data.ProtoLens.FieldDescriptor MetadatumPair
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, key__field_descriptor),
+           (Data.ProtoLens.Tag 2, value__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MetadatumPair'_unknownFields
+        (\ x__ y__ -> x__ {_MetadatumPair'_unknownFields = y__})
+  defMessage
+    = MetadatumPair'_constructor
+        {_MetadatumPair'key = Prelude.Nothing,
+         _MetadatumPair'value = Prelude.Nothing,
+         _MetadatumPair'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          MetadatumPair -> Data.ProtoLens.Encoding.Bytes.Parser MetadatumPair
+        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)
+                                       "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) "MetadatumPair"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'key") _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'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 MetadatumPair where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MetadatumPair'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_MetadatumPair'key x__)
+                (Control.DeepSeq.deepseq (_MetadatumPair'value x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.from' @:: Lens' MirCert MirSource@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.to' @:: Lens' MirCert [MirTarget]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'to' @:: Lens' MirCert (Data.Vector.Vector MirTarget)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.otherPot' @:: Lens' MirCert Data.Word.Word64@ -}
+data MirCert
+  = MirCert'_constructor {_MirCert'from :: !MirSource,
+                          _MirCert'to :: !(Data.Vector.Vector MirTarget),
+                          _MirCert'otherPot :: !Data.Word.Word64,
+                          _MirCert'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MirCert where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MirCert "from" MirSource where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirCert'from (\ x__ y__ -> x__ {_MirCert'from = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MirCert "to" [MirTarget] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirCert'to (\ x__ y__ -> x__ {_MirCert'to = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField MirCert "vec'to" (Data.Vector.Vector MirTarget) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirCert'to (\ x__ y__ -> x__ {_MirCert'to = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MirCert "otherPot" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirCert'otherPot (\ x__ y__ -> x__ {_MirCert'otherPot = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MirCert where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.MirCert"
+  packedMessageDescriptor _
+    = "\n\
+      \\aMirCert\DC26\n\
+      \\EOTfrom\CAN\SOH \SOH(\SO2\".utxorpc.v1alpha.cardano.MirSourceR\EOTfrom\DC22\n\
+      \\STXto\CAN\STX \ETX(\v2\".utxorpc.v1alpha.cardano.MirTargetR\STXto\DC2\ESC\n\
+      \\tother_pot\CAN\ETX \SOH(\EOTR\botherPot"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        from__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "from"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor MirSource)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"from")) ::
+              Data.ProtoLens.FieldDescriptor MirCert
+        to__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "to"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MirTarget)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"to")) ::
+              Data.ProtoLens.FieldDescriptor MirCert
+        otherPot__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "other_pot"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"otherPot")) ::
+              Data.ProtoLens.FieldDescriptor MirCert
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, from__field_descriptor),
+           (Data.ProtoLens.Tag 2, to__field_descriptor),
+           (Data.ProtoLens.Tag 3, otherPot__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MirCert'_unknownFields
+        (\ x__ y__ -> x__ {_MirCert'_unknownFields = y__})
+  defMessage
+    = MirCert'_constructor
+        {_MirCert'from = Data.ProtoLens.fieldDefault,
+         _MirCert'to = Data.Vector.Generic.empty,
+         _MirCert'otherPot = Data.ProtoLens.fieldDefault,
+         _MirCert'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          MirCert
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MirTarget
+             -> Data.ProtoLens.Encoding.Bytes.Parser MirCert
+        loop x mutable'to
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'to <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'to)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'to") frozen'to 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))
+                                       "from"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"from") y x)
+                                  mutable'to
+                        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)
+                                        "to"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'to y)
+                                loop x v
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "other_pot"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"otherPot") y x)
+                                  mutable'to
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'to
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'to <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                              Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'to)
+          "MirCert"
+  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 8)
+                      ((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 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'to") _x))
+                ((Data.Monoid.<>)
+                   (let
+                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"otherPot") _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 MirCert where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MirCert'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_MirCert'from x__)
+                (Control.DeepSeq.deepseq
+                   (_MirCert'to x__)
+                   (Control.DeepSeq.deepseq (_MirCert'otherPot x__) ())))
+newtype MirSource'UnrecognizedValue
+  = MirSource'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data MirSource
+  = MIR_SOURCE_UNSPECIFIED |
+    MIR_SOURCE_RESERVES |
+    MIR_SOURCE_TREASURY |
+    MirSource'Unrecognized !MirSource'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum MirSource where
+  maybeToEnum 0 = Prelude.Just MIR_SOURCE_UNSPECIFIED
+  maybeToEnum 1 = Prelude.Just MIR_SOURCE_RESERVES
+  maybeToEnum 2 = Prelude.Just MIR_SOURCE_TREASURY
+  maybeToEnum k
+    = Prelude.Just
+        (MirSource'Unrecognized
+           (MirSource'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum MIR_SOURCE_UNSPECIFIED = "MIR_SOURCE_UNSPECIFIED"
+  showEnum MIR_SOURCE_RESERVES = "MIR_SOURCE_RESERVES"
+  showEnum MIR_SOURCE_TREASURY = "MIR_SOURCE_TREASURY"
+  showEnum (MirSource'Unrecognized (MirSource'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "MIR_SOURCE_UNSPECIFIED"
+    = Prelude.Just MIR_SOURCE_UNSPECIFIED
+    | (Prelude.==) k "MIR_SOURCE_RESERVES"
+    = Prelude.Just MIR_SOURCE_RESERVES
+    | (Prelude.==) k "MIR_SOURCE_TREASURY"
+    = Prelude.Just MIR_SOURCE_TREASURY
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded MirSource where
+  minBound = MIR_SOURCE_UNSPECIFIED
+  maxBound = MIR_SOURCE_TREASURY
+instance Prelude.Enum MirSource where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum MirSource: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum MIR_SOURCE_UNSPECIFIED = 0
+  fromEnum MIR_SOURCE_RESERVES = 1
+  fromEnum MIR_SOURCE_TREASURY = 2
+  fromEnum (MirSource'Unrecognized (MirSource'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ MIR_SOURCE_TREASURY
+    = Prelude.error
+        "MirSource.succ: bad argument MIR_SOURCE_TREASURY. This value would be out of bounds."
+  succ MIR_SOURCE_UNSPECIFIED = MIR_SOURCE_RESERVES
+  succ MIR_SOURCE_RESERVES = MIR_SOURCE_TREASURY
+  succ (MirSource'Unrecognized _)
+    = Prelude.error "MirSource.succ: bad argument: unrecognized value"
+  pred MIR_SOURCE_UNSPECIFIED
+    = Prelude.error
+        "MirSource.pred: bad argument MIR_SOURCE_UNSPECIFIED. This value would be out of bounds."
+  pred MIR_SOURCE_RESERVES = MIR_SOURCE_UNSPECIFIED
+  pred MIR_SOURCE_TREASURY = MIR_SOURCE_RESERVES
+  pred (MirSource'Unrecognized _)
+    = Prelude.error "MirSource.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 MirSource where
+  fieldDefault = MIR_SOURCE_UNSPECIFIED
+instance Control.DeepSeq.NFData MirSource where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.stakeCredential' @:: Lens' MirTarget StakeCredential@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeCredential' @:: Lens' MirTarget (Prelude.Maybe StakeCredential)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.deltaCoin' @:: Lens' MirTarget Data.Int.Int64@ -}
+data MirTarget
+  = MirTarget'_constructor {_MirTarget'stakeCredential :: !(Prelude.Maybe StakeCredential),
+                            _MirTarget'deltaCoin :: !Data.Int.Int64,
+                            _MirTarget'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MirTarget where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MirTarget "stakeCredential" StakeCredential where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirTarget'stakeCredential
+           (\ x__ y__ -> x__ {_MirTarget'stakeCredential = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField MirTarget "maybe'stakeCredential" (Prelude.Maybe StakeCredential) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirTarget'stakeCredential
+           (\ x__ y__ -> x__ {_MirTarget'stakeCredential = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MirTarget "deltaCoin" Data.Int.Int64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MirTarget'deltaCoin
+           (\ x__ y__ -> x__ {_MirTarget'deltaCoin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MirTarget where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.MirTarget"
+  packedMessageDescriptor _
+    = "\n\
+      \\tMirTarget\DC2S\n\
+      \\DLEstake_credential\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialR\SIstakeCredential\DC2\GS\n\
+      \\n\
+      \delta_coin\CAN\STX \SOH(\ETXR\tdeltaCoin"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        stakeCredential__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stake_credential"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor StakeCredential)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'stakeCredential")) ::
+              Data.ProtoLens.FieldDescriptor MirTarget
+        deltaCoin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "delta_coin"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"deltaCoin")) ::
+              Data.ProtoLens.FieldDescriptor MirTarget
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, stakeCredential__field_descriptor),
+           (Data.ProtoLens.Tag 2, deltaCoin__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MirTarget'_unknownFields
+        (\ x__ y__ -> x__ {_MirTarget'_unknownFields = y__})
+  defMessage
+    = MirTarget'_constructor
+        {_MirTarget'stakeCredential = Prelude.Nothing,
+         _MirTarget'deltaCoin = Data.ProtoLens.fieldDefault,
+         _MirTarget'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: MirTarget -> Data.ProtoLens.Encoding.Bytes.Parser MirTarget
+        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)
+                                       "stake_credential"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"stakeCredential") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "delta_coin"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deltaCoin") 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) "MirTarget"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'stakeCredential") _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 @"deltaCoin") _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 MirTarget where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MirTarget'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_MirTarget'stakeCredential x__)
+                (Control.DeepSeq.deepseq (_MirTarget'deltaCoin x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.policyId' @:: Lens' Multiasset Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.assets' @:: Lens' Multiasset [Asset]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'assets' @:: Lens' Multiasset (Data.Vector.Vector Asset)@ -}
+data Multiasset
+  = Multiasset'_constructor {_Multiasset'policyId :: !Data.ByteString.ByteString,
+                             _Multiasset'assets :: !(Data.Vector.Vector Asset),
+                             _Multiasset'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Multiasset where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Multiasset "policyId" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Multiasset'policyId
+           (\ x__ y__ -> x__ {_Multiasset'policyId = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Multiasset "assets" [Asset] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Multiasset'assets (\ x__ y__ -> x__ {_Multiasset'assets = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Multiasset "vec'assets" (Data.Vector.Vector Asset) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Multiasset'assets (\ x__ y__ -> x__ {_Multiasset'assets = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Multiasset where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Multiasset"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Multiasset\DC2\ESC\n\
+      \\tpolicy_id\CAN\SOH \SOH(\fR\bpolicyId\DC26\n\
+      \\ACKassets\CAN\STX \ETX(\v2\RS.utxorpc.v1alpha.cardano.AssetR\ACKassets"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        policyId__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "policy_id"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"policyId")) ::
+              Data.ProtoLens.FieldDescriptor Multiasset
+        assets__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "assets"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Asset)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"assets")) ::
+              Data.ProtoLens.FieldDescriptor Multiasset
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, policyId__field_descriptor),
+           (Data.ProtoLens.Tag 2, assets__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Multiasset'_unknownFields
+        (\ x__ y__ -> x__ {_Multiasset'_unknownFields = y__})
+  defMessage
+    = Multiasset'_constructor
+        {_Multiasset'policyId = Data.ProtoLens.fieldDefault,
+         _Multiasset'assets = Data.Vector.Generic.empty,
+         _Multiasset'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Multiasset
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Asset
+             -> Data.ProtoLens.Encoding.Bytes.Parser Multiasset
+        loop x mutable'assets
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'assets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'assets)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'assets") frozen'assets 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))
+                                       "policy_id"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"policyId") y x)
+                                  mutable'assets
+                        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)
+                                        "assets"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'assets 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'assets
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'assets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'assets)
+          "Multiasset"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"policyId") _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.<>)
+                (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'assets") _x))
+                (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
+instance Control.DeepSeq.NFData Multiasset where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Multiasset'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Multiasset'policyId x__)
+                (Control.DeepSeq.deepseq (_Multiasset'assets x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'nativeScript' @:: Lens' NativeScript (Prelude.Maybe NativeScript'NativeScript)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'scriptPubkey' @:: Lens' NativeScript (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scriptPubkey' @:: Lens' NativeScript Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'scriptAll' @:: Lens' NativeScript (Prelude.Maybe NativeScriptList)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scriptAll' @:: Lens' NativeScript NativeScriptList@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'scriptAny' @:: Lens' NativeScript (Prelude.Maybe NativeScriptList)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scriptAny' @:: Lens' NativeScript NativeScriptList@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'scriptNOfK' @:: Lens' NativeScript (Prelude.Maybe ScriptNOfK)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scriptNOfK' @:: Lens' NativeScript ScriptNOfK@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'invalidBefore' @:: Lens' NativeScript (Prelude.Maybe Data.Word.Word64)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.invalidBefore' @:: Lens' NativeScript Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'invalidHereafter' @:: Lens' NativeScript (Prelude.Maybe Data.Word.Word64)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.invalidHereafter' @:: Lens' NativeScript Data.Word.Word64@ -}
+data NativeScript
+  = NativeScript'_constructor {_NativeScript'nativeScript :: !(Prelude.Maybe NativeScript'NativeScript),
+                               _NativeScript'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show NativeScript where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data NativeScript'NativeScript
+  = NativeScript'ScriptPubkey !Data.ByteString.ByteString |
+    NativeScript'ScriptAll !NativeScriptList |
+    NativeScript'ScriptAny !NativeScriptList |
+    NativeScript'ScriptNOfK !ScriptNOfK |
+    NativeScript'InvalidBefore !Data.Word.Word64 |
+    NativeScript'InvalidHereafter !Data.Word.Word64
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'nativeScript" (Prelude.Maybe NativeScript'NativeScript) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'scriptPubkey" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'ScriptPubkey x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'ScriptPubkey y__))
+instance Data.ProtoLens.Field.HasField NativeScript "scriptPubkey" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'ScriptPubkey x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'ScriptPubkey y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'scriptAll" (Prelude.Maybe NativeScriptList) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'ScriptAll x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'ScriptAll y__))
+instance Data.ProtoLens.Field.HasField NativeScript "scriptAll" NativeScriptList where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'ScriptAll x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'ScriptAll y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'scriptAny" (Prelude.Maybe NativeScriptList) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'ScriptAny x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'ScriptAny y__))
+instance Data.ProtoLens.Field.HasField NativeScript "scriptAny" NativeScriptList where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'ScriptAny x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'ScriptAny y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'scriptNOfK" (Prelude.Maybe ScriptNOfK) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'ScriptNOfK x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'ScriptNOfK y__))
+instance Data.ProtoLens.Field.HasField NativeScript "scriptNOfK" ScriptNOfK where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'ScriptNOfK x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'ScriptNOfK y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'invalidBefore" (Prelude.Maybe Data.Word.Word64) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'InvalidBefore x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'InvalidBefore y__))
+instance Data.ProtoLens.Field.HasField NativeScript "invalidBefore" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'InvalidBefore x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'InvalidBefore y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField NativeScript "maybe'invalidHereafter" (Prelude.Maybe Data.Word.Word64) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (NativeScript'InvalidHereafter x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap NativeScript'InvalidHereafter y__))
+instance Data.ProtoLens.Field.HasField NativeScript "invalidHereafter" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScript'nativeScript
+           (\ x__ y__ -> x__ {_NativeScript'nativeScript = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (NativeScript'InvalidHereafter x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap NativeScript'InvalidHereafter y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Message NativeScript where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.NativeScript"
+  packedMessageDescriptor _
+    = "\n\
+      \\fNativeScript\DC2%\n\
+      \\rscript_pubkey\CAN\SOH \SOH(\fH\NULR\fscriptPubkey\DC2J\n\
+      \\n\
+      \script_all\CAN\STX \SOH(\v2).utxorpc.v1alpha.cardano.NativeScriptListH\NULR\tscriptAll\DC2J\n\
+      \\n\
+      \script_any\CAN\ETX \SOH(\v2).utxorpc.v1alpha.cardano.NativeScriptListH\NULR\tscriptAny\DC2H\n\
+      \\rscript_n_of_k\CAN\EOT \SOH(\v2#.utxorpc.v1alpha.cardano.ScriptNOfKH\NULR\n\
+      \scriptNOfK\DC2'\n\
+      \\SOinvalid_before\CAN\ENQ \SOH(\EOTH\NULR\rinvalidBefore\DC2-\n\
+      \\DC1invalid_hereafter\CAN\ACK \SOH(\EOTH\NULR\DLEinvalidHereafterB\SI\n\
+      \\rnative_script"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        scriptPubkey__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script_pubkey"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'scriptPubkey")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+        scriptAll__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script_all"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor NativeScriptList)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'scriptAll")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+        scriptAny__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script_any"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor NativeScriptList)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'scriptAny")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+        scriptNOfK__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script_n_of_k"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ScriptNOfK)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'scriptNOfK")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+        invalidBefore__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "invalid_before"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'invalidBefore")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+        invalidHereafter__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "invalid_hereafter"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'invalidHereafter")) ::
+              Data.ProtoLens.FieldDescriptor NativeScript
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, scriptPubkey__field_descriptor),
+           (Data.ProtoLens.Tag 2, scriptAll__field_descriptor),
+           (Data.ProtoLens.Tag 3, scriptAny__field_descriptor),
+           (Data.ProtoLens.Tag 4, scriptNOfK__field_descriptor),
+           (Data.ProtoLens.Tag 5, invalidBefore__field_descriptor),
+           (Data.ProtoLens.Tag 6, invalidHereafter__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _NativeScript'_unknownFields
+        (\ x__ y__ -> x__ {_NativeScript'_unknownFields = y__})
+  defMessage
+    = NativeScript'_constructor
+        {_NativeScript'nativeScript = Prelude.Nothing,
+         _NativeScript'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          NativeScript -> Data.ProtoLens.Encoding.Bytes.Parser NativeScript
+        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))
+                                       "script_pubkey"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"scriptPubkey") 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)
+                                       "script_all"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scriptAll") 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)
+                                       "script_any"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scriptAny") 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)
+                                       "script_n_of_k"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scriptNOfK") y x)
+                        40
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "invalid_before"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"invalidBefore") y x)
+                        48
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "invalid_hereafter"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"invalidHereafter") 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) "NativeScript"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'nativeScript") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (NativeScript'ScriptPubkey 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 (NativeScript'ScriptAll 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 (NativeScript'ScriptAny 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 (NativeScript'ScriptNOfK 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 (NativeScript'InvalidBefore v))
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt v)
+                (Prelude.Just (NativeScript'InvalidHereafter v))
+                  -> (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 NativeScript where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_NativeScript'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_NativeScript'nativeScript x__) ())
+instance Control.DeepSeq.NFData NativeScript'NativeScript where
+  rnf (NativeScript'ScriptPubkey x__) = Control.DeepSeq.rnf x__
+  rnf (NativeScript'ScriptAll x__) = Control.DeepSeq.rnf x__
+  rnf (NativeScript'ScriptAny x__) = Control.DeepSeq.rnf x__
+  rnf (NativeScript'ScriptNOfK x__) = Control.DeepSeq.rnf x__
+  rnf (NativeScript'InvalidBefore x__) = Control.DeepSeq.rnf x__
+  rnf (NativeScript'InvalidHereafter x__) = Control.DeepSeq.rnf x__
+_NativeScript'ScriptPubkey ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript Data.ByteString.ByteString
+_NativeScript'ScriptPubkey
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'ScriptPubkey
+      (\ p__
+         -> case p__ of
+              (NativeScript'ScriptPubkey p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_NativeScript'ScriptAll ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript NativeScriptList
+_NativeScript'ScriptAll
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'ScriptAll
+      (\ p__
+         -> case p__ of
+              (NativeScript'ScriptAll p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_NativeScript'ScriptAny ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript NativeScriptList
+_NativeScript'ScriptAny
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'ScriptAny
+      (\ p__
+         -> case p__ of
+              (NativeScript'ScriptAny p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_NativeScript'ScriptNOfK ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript ScriptNOfK
+_NativeScript'ScriptNOfK
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'ScriptNOfK
+      (\ p__
+         -> case p__ of
+              (NativeScript'ScriptNOfK p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_NativeScript'InvalidBefore ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript Data.Word.Word64
+_NativeScript'InvalidBefore
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'InvalidBefore
+      (\ p__
+         -> case p__ of
+              (NativeScript'InvalidBefore p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_NativeScript'InvalidHereafter ::
+  Data.ProtoLens.Prism.Prism' NativeScript'NativeScript Data.Word.Word64
+_NativeScript'InvalidHereafter
+  = Data.ProtoLens.Prism.prism'
+      NativeScript'InvalidHereafter
+      (\ p__
+         -> case p__ of
+              (NativeScript'InvalidHereafter p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.items' @:: Lens' NativeScriptList [NativeScript]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'items' @:: Lens' NativeScriptList (Data.Vector.Vector NativeScript)@ -}
+data NativeScriptList
+  = NativeScriptList'_constructor {_NativeScriptList'items :: !(Data.Vector.Vector NativeScript),
+                                   _NativeScriptList'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show NativeScriptList where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField NativeScriptList "items" [NativeScript] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScriptList'items
+           (\ x__ y__ -> x__ {_NativeScriptList'items = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField NativeScriptList "vec'items" (Data.Vector.Vector NativeScript) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _NativeScriptList'items
+           (\ x__ y__ -> x__ {_NativeScriptList'items = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message NativeScriptList where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.NativeScriptList"
+  packedMessageDescriptor _
+    = "\n\
+      \\DLENativeScriptList\DC2;\n\
+      \\ENQitems\CAN\SOH \ETX(\v2%.utxorpc.v1alpha.cardano.NativeScriptR\ENQitems"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        items__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "items"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor NativeScript)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"items")) ::
+              Data.ProtoLens.FieldDescriptor NativeScriptList
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, items__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _NativeScriptList'_unknownFields
+        (\ x__ y__ -> x__ {_NativeScriptList'_unknownFields = y__})
+  defMessage
+    = NativeScriptList'_constructor
+        {_NativeScriptList'items = Data.Vector.Generic.empty,
+         _NativeScriptList'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          NativeScriptList
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NativeScript
+             -> Data.ProtoLens.Encoding.Bytes.Parser NativeScriptList
+        loop x mutable'items
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'items)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'items") frozen'items 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)
+                                        "items"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'items 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'items
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'items)
+          "NativeScriptList"
+  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'items") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData NativeScriptList where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_NativeScriptList'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_NativeScriptList'items x__) ())
+{- | Fields :
+      -}
+data OutputPattern
+  = OutputPattern'_constructor {_OutputPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show OutputPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Message OutputPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.OutputPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\rOutputPattern"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag = let in Data.Map.fromList []
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _OutputPattern'_unknownFields
+        (\ x__ y__ -> x__ {_OutputPattern'_unknownFields = y__})
+  defMessage
+    = OutputPattern'_constructor {_OutputPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          OutputPattern -> Data.ProtoLens.Encoding.Bytes.Parser OutputPattern
+        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) "OutputPattern"
+  buildMessage
+    = \ _x
+        -> Data.ProtoLens.Encoding.Wire.buildFieldSet
+             (Lens.Family2.view Data.ProtoLens.unknownFields _x)
+instance Control.DeepSeq.NFData OutputPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq (_OutputPattern'_unknownFields x__) ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'plutusData' @:: Lens' PlutusData (Prelude.Maybe PlutusData'PlutusData)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'constr' @:: Lens' PlutusData (Prelude.Maybe Constr)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.constr' @:: Lens' PlutusData Constr@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'map' @:: Lens' PlutusData (Prelude.Maybe PlutusDataMap)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.map' @:: Lens' PlutusData PlutusDataMap@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'bigInt' @:: Lens' PlutusData (Prelude.Maybe BigInt)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.bigInt' @:: Lens' PlutusData BigInt@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'boundedBytes' @:: Lens' PlutusData (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.boundedBytes' @:: Lens' PlutusData Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'array' @:: Lens' PlutusData (Prelude.Maybe PlutusDataArray)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.array' @:: Lens' PlutusData PlutusDataArray@ -}
+data PlutusData
+  = PlutusData'_constructor {_PlutusData'plutusData :: !(Prelude.Maybe PlutusData'PlutusData),
+                             _PlutusData'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PlutusData where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data PlutusData'PlutusData
+  = PlutusData'Constr !Constr |
+    PlutusData'Map !PlutusDataMap |
+    PlutusData'BigInt !BigInt |
+    PlutusData'BoundedBytes !Data.ByteString.ByteString |
+    PlutusData'Array !PlutusDataArray
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'plutusData" (Prelude.Maybe PlutusData'PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'constr" (Prelude.Maybe Constr) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (PlutusData'Constr x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap PlutusData'Constr y__))
+instance Data.ProtoLens.Field.HasField PlutusData "constr" Constr where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (PlutusData'Constr x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap PlutusData'Constr y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'map" (Prelude.Maybe PlutusDataMap) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (PlutusData'Map x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap PlutusData'Map y__))
+instance Data.ProtoLens.Field.HasField PlutusData "map" PlutusDataMap where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (PlutusData'Map x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap PlutusData'Map y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'bigInt" (Prelude.Maybe BigInt) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (PlutusData'BigInt x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap PlutusData'BigInt y__))
+instance Data.ProtoLens.Field.HasField PlutusData "bigInt" BigInt where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (PlutusData'BigInt x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap PlutusData'BigInt y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'boundedBytes" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (PlutusData'BoundedBytes x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap PlutusData'BoundedBytes y__))
+instance Data.ProtoLens.Field.HasField PlutusData "boundedBytes" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (PlutusData'BoundedBytes x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap PlutusData'BoundedBytes y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField PlutusData "maybe'array" (Prelude.Maybe PlutusDataArray) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (PlutusData'Array x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap PlutusData'Array y__))
+instance Data.ProtoLens.Field.HasField PlutusData "array" PlutusDataArray where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusData'plutusData
+           (\ x__ y__ -> x__ {_PlutusData'plutusData = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (PlutusData'Array x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap PlutusData'Array y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message PlutusData where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.PlutusData"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \PlutusData\DC29\n\
+      \\ACKconstr\CAN\SOH \SOH(\v2\US.utxorpc.v1alpha.cardano.ConstrH\NULR\ACKconstr\DC2:\n\
+      \\ETXmap\CAN\STX \SOH(\v2&.utxorpc.v1alpha.cardano.PlutusDataMapH\NULR\ETXmap\DC2:\n\
+      \\abig_int\CAN\ETX \SOH(\v2\US.utxorpc.v1alpha.cardano.BigIntH\NULR\ACKbigInt\DC2%\n\
+      \\rbounded_bytes\CAN\EOT \SOH(\fH\NULR\fboundedBytes\DC2@\n\
+      \\ENQarray\CAN\ENQ \SOH(\v2(.utxorpc.v1alpha.cardano.PlutusDataArrayH\NULR\ENQarrayB\r\n\
+      \\vplutus_data"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        constr__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "constr"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Constr)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'constr")) ::
+              Data.ProtoLens.FieldDescriptor PlutusData
+        map__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "map"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusDataMap)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'map")) ::
+              Data.ProtoLens.FieldDescriptor PlutusData
+        bigInt__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "big_int"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BigInt)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'bigInt")) ::
+              Data.ProtoLens.FieldDescriptor PlutusData
+        boundedBytes__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "bounded_bytes"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'boundedBytes")) ::
+              Data.ProtoLens.FieldDescriptor PlutusData
+        array__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "array"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusDataArray)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'array")) ::
+              Data.ProtoLens.FieldDescriptor PlutusData
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, constr__field_descriptor),
+           (Data.ProtoLens.Tag 2, map__field_descriptor),
+           (Data.ProtoLens.Tag 3, bigInt__field_descriptor),
+           (Data.ProtoLens.Tag 4, boundedBytes__field_descriptor),
+           (Data.ProtoLens.Tag 5, array__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PlutusData'_unknownFields
+        (\ x__ y__ -> x__ {_PlutusData'_unknownFields = y__})
+  defMessage
+    = PlutusData'_constructor
+        {_PlutusData'plutusData = Prelude.Nothing,
+         _PlutusData'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PlutusData -> Data.ProtoLens.Encoding.Bytes.Parser PlutusData
+        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)
+                                       "constr"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"constr") 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)
+                                       "map"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"map") 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)
+                                       "big_int"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"bigInt") y x)
+                        34
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "bounded_bytes"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"boundedBytes") 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)
+                                       "array"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"array") 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) "PlutusData"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'plutusData") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (PlutusData'Constr 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 (PlutusData'Map 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 (PlutusData'BigInt 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 (PlutusData'BoundedBytes v))
+                  -> (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)
+                (Prelude.Just (PlutusData'Array 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 PlutusData where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PlutusData'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_PlutusData'plutusData x__) ())
+instance Control.DeepSeq.NFData PlutusData'PlutusData where
+  rnf (PlutusData'Constr x__) = Control.DeepSeq.rnf x__
+  rnf (PlutusData'Map x__) = Control.DeepSeq.rnf x__
+  rnf (PlutusData'BigInt x__) = Control.DeepSeq.rnf x__
+  rnf (PlutusData'BoundedBytes x__) = Control.DeepSeq.rnf x__
+  rnf (PlutusData'Array x__) = Control.DeepSeq.rnf x__
+_PlutusData'Constr ::
+  Data.ProtoLens.Prism.Prism' PlutusData'PlutusData Constr
+_PlutusData'Constr
+  = Data.ProtoLens.Prism.prism'
+      PlutusData'Constr
+      (\ p__
+         -> case p__ of
+              (PlutusData'Constr p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_PlutusData'Map ::
+  Data.ProtoLens.Prism.Prism' PlutusData'PlutusData PlutusDataMap
+_PlutusData'Map
+  = Data.ProtoLens.Prism.prism'
+      PlutusData'Map
+      (\ p__
+         -> case p__ of
+              (PlutusData'Map p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_PlutusData'BigInt ::
+  Data.ProtoLens.Prism.Prism' PlutusData'PlutusData BigInt
+_PlutusData'BigInt
+  = Data.ProtoLens.Prism.prism'
+      PlutusData'BigInt
+      (\ p__
+         -> case p__ of
+              (PlutusData'BigInt p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_PlutusData'BoundedBytes ::
+  Data.ProtoLens.Prism.Prism' PlutusData'PlutusData Data.ByteString.ByteString
+_PlutusData'BoundedBytes
+  = Data.ProtoLens.Prism.prism'
+      PlutusData'BoundedBytes
+      (\ p__
+         -> case p__ of
+              (PlutusData'BoundedBytes p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_PlutusData'Array ::
+  Data.ProtoLens.Prism.Prism' PlutusData'PlutusData PlutusDataArray
+_PlutusData'Array
+  = Data.ProtoLens.Prism.prism'
+      PlutusData'Array
+      (\ p__
+         -> case p__ of
+              (PlutusData'Array p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.items' @:: Lens' PlutusDataArray [PlutusData]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'items' @:: Lens' PlutusDataArray (Data.Vector.Vector PlutusData)@ -}
+data PlutusDataArray
+  = PlutusDataArray'_constructor {_PlutusDataArray'items :: !(Data.Vector.Vector PlutusData),
+                                  _PlutusDataArray'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PlutusDataArray where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PlutusDataArray "items" [PlutusData] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataArray'items
+           (\ x__ y__ -> x__ {_PlutusDataArray'items = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField PlutusDataArray "vec'items" (Data.Vector.Vector PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataArray'items
+           (\ x__ y__ -> x__ {_PlutusDataArray'items = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PlutusDataArray where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PlutusDataArray"
+  packedMessageDescriptor _
+    = "\n\
+      \\SIPlutusDataArray\DC29\n\
+      \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQitems"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        items__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "items"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"items")) ::
+              Data.ProtoLens.FieldDescriptor PlutusDataArray
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, items__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PlutusDataArray'_unknownFields
+        (\ x__ y__ -> x__ {_PlutusDataArray'_unknownFields = y__})
+  defMessage
+    = PlutusDataArray'_constructor
+        {_PlutusDataArray'items = Data.Vector.Generic.empty,
+         _PlutusDataArray'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PlutusDataArray
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PlutusData
+             -> Data.ProtoLens.Encoding.Bytes.Parser PlutusDataArray
+        loop x mutable'items
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'items)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'items") frozen'items 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)
+                                        "items"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'items 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'items
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'items <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'items)
+          "PlutusDataArray"
+  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'items") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData PlutusDataArray where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PlutusDataArray'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_PlutusDataArray'items x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.pairs' @:: Lens' PlutusDataMap [PlutusDataPair]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'pairs' @:: Lens' PlutusDataMap (Data.Vector.Vector PlutusDataPair)@ -}
+data PlutusDataMap
+  = PlutusDataMap'_constructor {_PlutusDataMap'pairs :: !(Data.Vector.Vector PlutusDataPair),
+                                _PlutusDataMap'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PlutusDataMap where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PlutusDataMap "pairs" [PlutusDataPair] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataMap'pairs
+           (\ x__ y__ -> x__ {_PlutusDataMap'pairs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField PlutusDataMap "vec'pairs" (Data.Vector.Vector PlutusDataPair) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataMap'pairs
+           (\ x__ y__ -> x__ {_PlutusDataMap'pairs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PlutusDataMap where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PlutusDataMap"
+  packedMessageDescriptor _
+    = "\n\
+      \\rPlutusDataMap\DC2=\n\
+      \\ENQpairs\CAN\SOH \ETX(\v2'.utxorpc.v1alpha.cardano.PlutusDataPairR\ENQpairs"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        pairs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pairs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusDataPair)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"pairs")) ::
+              Data.ProtoLens.FieldDescriptor PlutusDataMap
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, pairs__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PlutusDataMap'_unknownFields
+        (\ x__ y__ -> x__ {_PlutusDataMap'_unknownFields = y__})
+  defMessage
+    = PlutusDataMap'_constructor
+        {_PlutusDataMap'pairs = Data.Vector.Generic.empty,
+         _PlutusDataMap'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PlutusDataMap
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PlutusDataPair
+             -> Data.ProtoLens.Encoding.Bytes.Parser PlutusDataMap
+        loop x mutable'pairs
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'pairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'pairs)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'pairs") frozen'pairs 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)
+                                        "pairs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'pairs 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'pairs
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'pairs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'pairs)
+          "PlutusDataMap"
+  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'pairs") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData PlutusDataMap where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PlutusDataMap'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_PlutusDataMap'pairs x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.key' @:: Lens' PlutusDataPair PlutusData@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'key' @:: Lens' PlutusDataPair (Prelude.Maybe PlutusData)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.value' @:: Lens' PlutusDataPair PlutusData@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'value' @:: Lens' PlutusDataPair (Prelude.Maybe PlutusData)@ -}
+data PlutusDataPair
+  = PlutusDataPair'_constructor {_PlutusDataPair'key :: !(Prelude.Maybe PlutusData),
+                                 _PlutusDataPair'value :: !(Prelude.Maybe PlutusData),
+                                 _PlutusDataPair'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PlutusDataPair where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PlutusDataPair "key" PlutusData where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataPair'key (\ x__ y__ -> x__ {_PlutusDataPair'key = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField PlutusDataPair "maybe'key" (Prelude.Maybe PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataPair'key (\ x__ y__ -> x__ {_PlutusDataPair'key = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PlutusDataPair "value" PlutusData where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataPair'value
+           (\ x__ y__ -> x__ {_PlutusDataPair'value = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField PlutusDataPair "maybe'value" (Prelude.Maybe PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PlutusDataPair'value
+           (\ x__ y__ -> x__ {_PlutusDataPair'value = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PlutusDataPair where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PlutusDataPair"
+  packedMessageDescriptor _
+    = "\n\
+      \\SOPlutusDataPair\DC25\n\
+      \\ETXkey\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ETXkey\DC29\n\
+      \\ENQvalue\CAN\STX \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQvalue"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        key__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "key"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'key")) ::
+              Data.ProtoLens.FieldDescriptor PlutusDataPair
+        value__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "value"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'value")) ::
+              Data.ProtoLens.FieldDescriptor PlutusDataPair
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, key__field_descriptor),
+           (Data.ProtoLens.Tag 2, value__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PlutusDataPair'_unknownFields
+        (\ x__ y__ -> x__ {_PlutusDataPair'_unknownFields = y__})
+  defMessage
+    = PlutusDataPair'_constructor
+        {_PlutusDataPair'key = Prelude.Nothing,
+         _PlutusDataPair'value = Prelude.Nothing,
+         _PlutusDataPair'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PlutusDataPair
+          -> Data.ProtoLens.Encoding.Bytes.Parser PlutusDataPair
+        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)
+                                       "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) "PlutusDataPair"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'key") _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'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 PlutusDataPair where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PlutusDataPair'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_PlutusDataPair'key x__)
+                (Control.DeepSeq.deepseq (_PlutusDataPair'value x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.url' @:: Lens' PoolMetadata Data.Text.Text@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.hash' @:: Lens' PoolMetadata Data.ByteString.ByteString@ -}
+data PoolMetadata
+  = PoolMetadata'_constructor {_PoolMetadata'url :: !Data.Text.Text,
+                               _PoolMetadata'hash :: !Data.ByteString.ByteString,
+                               _PoolMetadata'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PoolMetadata where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PoolMetadata "url" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolMetadata'url (\ x__ y__ -> x__ {_PoolMetadata'url = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolMetadata "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolMetadata'hash (\ x__ y__ -> x__ {_PoolMetadata'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PoolMetadata where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PoolMetadata"
+  packedMessageDescriptor _
+    = "\n\
+      \\fPoolMetadata\DC2\DLE\n\
+      \\ETXurl\CAN\SOH \SOH(\tR\ETXurl\DC2\DC2\n\
+      \\EOThash\CAN\STX \SOH(\fR\EOThash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        url__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "url"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"url")) ::
+              Data.ProtoLens.FieldDescriptor PoolMetadata
+        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 PoolMetadata
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, url__field_descriptor),
+           (Data.ProtoLens.Tag 2, hash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PoolMetadata'_unknownFields
+        (\ x__ y__ -> x__ {_PoolMetadata'_unknownFields = y__})
+  defMessage
+    = PoolMetadata'_constructor
+        {_PoolMetadata'url = Data.ProtoLens.fieldDefault,
+         _PoolMetadata'hash = Data.ProtoLens.fieldDefault,
+         _PoolMetadata'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PoolMetadata -> Data.ProtoLens.Encoding.Bytes.Parser PoolMetadata
+        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.getText
+                                             (Prelude.fromIntegral len))
+                                       "url"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"url") y x)
+                        18
+                          -> 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)
+                        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) "PoolMetadata"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"url") _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 @"hash") _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 PoolMetadata where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PoolMetadata'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_PoolMetadata'url x__)
+                (Control.DeepSeq.deepseq (_PoolMetadata'hash x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.operator' @:: Lens' PoolRegistrationCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vrfKeyhash' @:: Lens' PoolRegistrationCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.pledge' @:: Lens' PoolRegistrationCert Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.cost' @:: Lens' PoolRegistrationCert Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.margin' @:: Lens' PoolRegistrationCert RationalNumber@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'margin' @:: Lens' PoolRegistrationCert (Prelude.Maybe RationalNumber)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.rewardAccount' @:: Lens' PoolRegistrationCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolOwners' @:: Lens' PoolRegistrationCert [Data.ByteString.ByteString]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'poolOwners' @:: Lens' PoolRegistrationCert (Data.Vector.Vector Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.relays' @:: Lens' PoolRegistrationCert [Relay]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'relays' @:: Lens' PoolRegistrationCert (Data.Vector.Vector Relay)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolMetadata' @:: Lens' PoolRegistrationCert PoolMetadata@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'poolMetadata' @:: Lens' PoolRegistrationCert (Prelude.Maybe PoolMetadata)@ -}
+data PoolRegistrationCert
+  = PoolRegistrationCert'_constructor {_PoolRegistrationCert'operator :: !Data.ByteString.ByteString,
+                                       _PoolRegistrationCert'vrfKeyhash :: !Data.ByteString.ByteString,
+                                       _PoolRegistrationCert'pledge :: !Data.Word.Word64,
+                                       _PoolRegistrationCert'cost :: !Data.Word.Word64,
+                                       _PoolRegistrationCert'margin :: !(Prelude.Maybe RationalNumber),
+                                       _PoolRegistrationCert'rewardAccount :: !Data.ByteString.ByteString,
+                                       _PoolRegistrationCert'poolOwners :: !(Data.Vector.Vector Data.ByteString.ByteString),
+                                       _PoolRegistrationCert'relays :: !(Data.Vector.Vector Relay),
+                                       _PoolRegistrationCert'poolMetadata :: !(Prelude.Maybe PoolMetadata),
+                                       _PoolRegistrationCert'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PoolRegistrationCert where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "operator" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'operator
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'operator = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "vrfKeyhash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'vrfKeyhash
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'vrfKeyhash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "pledge" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'pledge
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'pledge = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "cost" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'cost
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'cost = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "margin" RationalNumber where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'margin
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'margin = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "maybe'margin" (Prelude.Maybe RationalNumber) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'margin
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'margin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "rewardAccount" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'rewardAccount
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'rewardAccount = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "poolOwners" [Data.ByteString.ByteString] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'poolOwners
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'poolOwners = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "vec'poolOwners" (Data.Vector.Vector Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'poolOwners
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'poolOwners = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "relays" [Relay] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'relays
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'relays = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "vec'relays" (Data.Vector.Vector Relay) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'relays
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'relays = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "poolMetadata" PoolMetadata where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'poolMetadata
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'poolMetadata = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField PoolRegistrationCert "maybe'poolMetadata" (Prelude.Maybe PoolMetadata) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRegistrationCert'poolMetadata
+           (\ x__ y__ -> x__ {_PoolRegistrationCert'poolMetadata = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PoolRegistrationCert where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PoolRegistrationCert"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC4PoolRegistrationCert\DC2\SUB\n\
+      \\boperator\CAN\SOH \SOH(\fR\boperator\DC2\US\n\
+      \\vvrf_keyhash\CAN\STX \SOH(\fR\n\
+      \vrfKeyhash\DC2\SYN\n\
+      \\ACKpledge\CAN\ETX \SOH(\EOTR\ACKpledge\DC2\DC2\n\
+      \\EOTcost\CAN\EOT \SOH(\EOTR\EOTcost\DC2?\n\
+      \\ACKmargin\CAN\ENQ \SOH(\v2'.utxorpc.v1alpha.cardano.RationalNumberR\ACKmargin\DC2%\n\
+      \\SOreward_account\CAN\ACK \SOH(\fR\rrewardAccount\DC2\US\n\
+      \\vpool_owners\CAN\a \ETX(\fR\n\
+      \poolOwners\DC26\n\
+      \\ACKrelays\CAN\b \ETX(\v2\RS.utxorpc.v1alpha.cardano.RelayR\ACKrelays\DC2J\n\
+      \\rpool_metadata\CAN\t \SOH(\v2%.utxorpc.v1alpha.cardano.PoolMetadataR\fpoolMetadata"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        operator__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "operator"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"operator")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        vrfKeyhash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "vrf_keyhash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"vrfKeyhash")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        pledge__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pledge"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"pledge")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        cost__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cost"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"cost")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        margin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "margin"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor RationalNumber)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'margin")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        rewardAccount__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "reward_account"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"rewardAccount")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        poolOwners__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_owners"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"poolOwners")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        relays__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "relays"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Relay)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"relays")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+        poolMetadata__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_metadata"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PoolMetadata)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'poolMetadata")) ::
+              Data.ProtoLens.FieldDescriptor PoolRegistrationCert
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, operator__field_descriptor),
+           (Data.ProtoLens.Tag 2, vrfKeyhash__field_descriptor),
+           (Data.ProtoLens.Tag 3, pledge__field_descriptor),
+           (Data.ProtoLens.Tag 4, cost__field_descriptor),
+           (Data.ProtoLens.Tag 5, margin__field_descriptor),
+           (Data.ProtoLens.Tag 6, rewardAccount__field_descriptor),
+           (Data.ProtoLens.Tag 7, poolOwners__field_descriptor),
+           (Data.ProtoLens.Tag 8, relays__field_descriptor),
+           (Data.ProtoLens.Tag 9, poolMetadata__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PoolRegistrationCert'_unknownFields
+        (\ x__ y__ -> x__ {_PoolRegistrationCert'_unknownFields = y__})
+  defMessage
+    = PoolRegistrationCert'_constructor
+        {_PoolRegistrationCert'operator = Data.ProtoLens.fieldDefault,
+         _PoolRegistrationCert'vrfKeyhash = Data.ProtoLens.fieldDefault,
+         _PoolRegistrationCert'pledge = Data.ProtoLens.fieldDefault,
+         _PoolRegistrationCert'cost = Data.ProtoLens.fieldDefault,
+         _PoolRegistrationCert'margin = Prelude.Nothing,
+         _PoolRegistrationCert'rewardAccount = Data.ProtoLens.fieldDefault,
+         _PoolRegistrationCert'poolOwners = Data.Vector.Generic.empty,
+         _PoolRegistrationCert'relays = Data.Vector.Generic.empty,
+         _PoolRegistrationCert'poolMetadata = Prelude.Nothing,
+         _PoolRegistrationCert'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PoolRegistrationCert
+          -> 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 Relay
+                -> Data.ProtoLens.Encoding.Bytes.Parser PoolRegistrationCert
+        loop x mutable'poolOwners mutable'relays
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'poolOwners <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                mutable'poolOwners)
+                      frozen'relays <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'relays)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'poolOwners") frozen'poolOwners
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'relays") frozen'relays 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))
+                                       "operator"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"operator") y x)
+                                  mutable'poolOwners mutable'relays
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "vrf_keyhash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"vrfKeyhash") y x)
+                                  mutable'poolOwners mutable'relays
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "pledge"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"pledge") y x)
+                                  mutable'poolOwners mutable'relays
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "cost"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"cost") y x)
+                                  mutable'poolOwners mutable'relays
+                        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)
+                                       "margin"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"margin") y x)
+                                  mutable'poolOwners mutable'relays
+                        50
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "reward_account"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"rewardAccount") y x)
+                                  mutable'poolOwners mutable'relays
+                        58
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.getBytes
+                                              (Prelude.fromIntegral len))
+                                        "pool_owners"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'poolOwners y)
+                                loop x v mutable'relays
+                        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)
+                                        "relays"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'relays y)
+                                loop x mutable'poolOwners v
+                        74
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "pool_metadata"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"poolMetadata") y x)
+                                  mutable'poolOwners mutable'relays
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'poolOwners mutable'relays
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'poolOwners <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      Data.ProtoLens.Encoding.Growing.new
+              mutable'relays <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'poolOwners mutable'relays)
+          "PoolRegistrationCert"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"operator") _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 @"vrfKeyhash") _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 @"pledge") _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 @"cost") _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.<>)
+                         (case
+                              Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'margin") _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 @"rewardAccount") _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.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                                  (\ _v
+                                     -> (Data.Monoid.<>)
+                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
+                                          ((\ 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'poolOwners") _x))
+                               ((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'relays") _x))
+                                  ((Data.Monoid.<>)
+                                     (case
+                                          Lens.Family2.view
+                                            (Data.ProtoLens.Field.field @"maybe'poolMetadata") _x
+                                      of
+                                        Prelude.Nothing -> Data.Monoid.mempty
+                                        (Prelude.Just _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 _v))
+                                     (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                                        (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))))
+instance Control.DeepSeq.NFData PoolRegistrationCert where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PoolRegistrationCert'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_PoolRegistrationCert'operator x__)
+                (Control.DeepSeq.deepseq
+                   (_PoolRegistrationCert'vrfKeyhash x__)
+                   (Control.DeepSeq.deepseq
+                      (_PoolRegistrationCert'pledge x__)
+                      (Control.DeepSeq.deepseq
+                         (_PoolRegistrationCert'cost x__)
+                         (Control.DeepSeq.deepseq
+                            (_PoolRegistrationCert'margin x__)
+                            (Control.DeepSeq.deepseq
+                               (_PoolRegistrationCert'rewardAccount x__)
+                               (Control.DeepSeq.deepseq
+                                  (_PoolRegistrationCert'poolOwners x__)
+                                  (Control.DeepSeq.deepseq
+                                     (_PoolRegistrationCert'relays x__)
+                                     (Control.DeepSeq.deepseq
+                                        (_PoolRegistrationCert'poolMetadata x__) ())))))))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolKeyhash' @:: Lens' PoolRetirementCert Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.epoch' @:: Lens' PoolRetirementCert Data.Word.Word64@ -}
+data PoolRetirementCert
+  = PoolRetirementCert'_constructor {_PoolRetirementCert'poolKeyhash :: !Data.ByteString.ByteString,
+                                     _PoolRetirementCert'epoch :: !Data.Word.Word64,
+                                     _PoolRetirementCert'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show PoolRetirementCert where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField PoolRetirementCert "poolKeyhash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRetirementCert'poolKeyhash
+           (\ x__ y__ -> x__ {_PoolRetirementCert'poolKeyhash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField PoolRetirementCert "epoch" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _PoolRetirementCert'epoch
+           (\ x__ y__ -> x__ {_PoolRetirementCert'epoch = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message PoolRetirementCert where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.PoolRetirementCert"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC2PoolRetirementCert\DC2!\n\
+      \\fpool_keyhash\CAN\SOH \SOH(\fR\vpoolKeyhash\DC2\DC4\n\
+      \\ENQepoch\CAN\STX \SOH(\EOTR\ENQepoch"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        poolKeyhash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_keyhash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"poolKeyhash")) ::
+              Data.ProtoLens.FieldDescriptor PoolRetirementCert
+        epoch__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "epoch"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"epoch")) ::
+              Data.ProtoLens.FieldDescriptor PoolRetirementCert
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, poolKeyhash__field_descriptor),
+           (Data.ProtoLens.Tag 2, epoch__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _PoolRetirementCert'_unknownFields
+        (\ x__ y__ -> x__ {_PoolRetirementCert'_unknownFields = y__})
+  defMessage
+    = PoolRetirementCert'_constructor
+        {_PoolRetirementCert'poolKeyhash = Data.ProtoLens.fieldDefault,
+         _PoolRetirementCert'epoch = Data.ProtoLens.fieldDefault,
+         _PoolRetirementCert'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          PoolRetirementCert
+          -> Data.ProtoLens.Encoding.Bytes.Parser PoolRetirementCert
+        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))
+                                       "pool_keyhash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"poolKeyhash") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "epoch"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"epoch") 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) "PoolRetirementCert"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v
+                  = Lens.Family2.view (Data.ProtoLens.Field.field @"poolKeyhash") _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 @"epoch") _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 PoolRetirementCert where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_PoolRetirementCert'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_PoolRetirementCert'poolKeyhash x__)
+                (Control.DeepSeq.deepseq (_PoolRetirementCert'epoch x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.numerator' @:: Lens' RationalNumber Data.Int.Int32@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.denominator' @:: Lens' RationalNumber Data.Word.Word32@ -}
+data RationalNumber
+  = RationalNumber'_constructor {_RationalNumber'numerator :: !Data.Int.Int32,
+                                 _RationalNumber'denominator :: !Data.Word.Word32,
+                                 _RationalNumber'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show RationalNumber where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField RationalNumber "numerator" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _RationalNumber'numerator
+           (\ x__ y__ -> x__ {_RationalNumber'numerator = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField RationalNumber "denominator" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _RationalNumber'denominator
+           (\ x__ y__ -> x__ {_RationalNumber'denominator = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message RationalNumber where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.RationalNumber"
+  packedMessageDescriptor _
+    = "\n\
+      \\SORationalNumber\DC2\FS\n\
+      \\tnumerator\CAN\SOH \SOH(\ENQR\tnumerator\DC2 \n\
+      \\vdenominator\CAN\STX \SOH(\rR\vdenominator"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        numerator__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "numerator"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"numerator")) ::
+              Data.ProtoLens.FieldDescriptor RationalNumber
+        denominator__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "denominator"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"denominator")) ::
+              Data.ProtoLens.FieldDescriptor RationalNumber
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, numerator__field_descriptor),
+           (Data.ProtoLens.Tag 2, denominator__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _RationalNumber'_unknownFields
+        (\ x__ y__ -> x__ {_RationalNumber'_unknownFields = y__})
+  defMessage
+    = RationalNumber'_constructor
+        {_RationalNumber'numerator = Data.ProtoLens.fieldDefault,
+         _RationalNumber'denominator = Data.ProtoLens.fieldDefault,
+         _RationalNumber'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          RationalNumber
+          -> Data.ProtoLens.Encoding.Bytes.Parser RationalNumber
+        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)
+                                       "numerator"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"numerator") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "denominator"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"denominator") 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) "RationalNumber"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"numerator") _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 @"denominator") _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 RationalNumber where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_RationalNumber'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_RationalNumber'numerator x__)
+                (Control.DeepSeq.deepseq (_RationalNumber'denominator x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.purpose' @:: Lens' Redeemer RedeemerPurpose@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.datum' @:: Lens' Redeemer PlutusData@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'datum' @:: Lens' Redeemer (Prelude.Maybe PlutusData)@ -}
+data Redeemer
+  = Redeemer'_constructor {_Redeemer'purpose :: !RedeemerPurpose,
+                           _Redeemer'datum :: !(Prelude.Maybe PlutusData),
+                           _Redeemer'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Redeemer where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Redeemer "purpose" RedeemerPurpose where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Redeemer'purpose (\ x__ y__ -> x__ {_Redeemer'purpose = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Redeemer "datum" PlutusData where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Redeemer'datum (\ x__ y__ -> x__ {_Redeemer'datum = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Redeemer "maybe'datum" (Prelude.Maybe PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Redeemer'datum (\ x__ y__ -> x__ {_Redeemer'datum = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Redeemer where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Redeemer"
+  packedMessageDescriptor _
+    = "\n\
+      \\bRedeemer\DC2B\n\
+      \\apurpose\CAN\SOH \SOH(\SO2(.utxorpc.v1alpha.cardano.RedeemerPurposeR\apurpose\DC29\n\
+      \\ENQdatum\CAN\STX \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQdatum"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        purpose__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "purpose"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor RedeemerPurpose)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"purpose")) ::
+              Data.ProtoLens.FieldDescriptor Redeemer
+        datum__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "datum"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'datum")) ::
+              Data.ProtoLens.FieldDescriptor Redeemer
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, purpose__field_descriptor),
+           (Data.ProtoLens.Tag 2, datum__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Redeemer'_unknownFields
+        (\ x__ y__ -> x__ {_Redeemer'_unknownFields = y__})
+  defMessage
+    = Redeemer'_constructor
+        {_Redeemer'purpose = Data.ProtoLens.fieldDefault,
+         _Redeemer'datum = Prelude.Nothing, _Redeemer'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Redeemer -> Data.ProtoLens.Encoding.Bytes.Parser Redeemer
+        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))
+                                       "purpose"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"purpose") 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)
+                                       "datum"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"datum") 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) "Redeemer"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"purpose") _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'datum") _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 Redeemer where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Redeemer'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Redeemer'purpose x__)
+                (Control.DeepSeq.deepseq (_Redeemer'datum x__) ()))
+newtype RedeemerPurpose'UnrecognizedValue
+  = RedeemerPurpose'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data RedeemerPurpose
+  = REDEEMER_PURPOSE_UNSPECIFIED |
+    REDEEMER_PURPOSE_SPEND |
+    REDEEMER_PURPOSE_MINT |
+    REDEEMER_PURPOSE_CERT |
+    REDEEMER_PURPOSE_REWARD |
+    RedeemerPurpose'Unrecognized !RedeemerPurpose'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum RedeemerPurpose where
+  maybeToEnum 0 = Prelude.Just REDEEMER_PURPOSE_UNSPECIFIED
+  maybeToEnum 1 = Prelude.Just REDEEMER_PURPOSE_SPEND
+  maybeToEnum 2 = Prelude.Just REDEEMER_PURPOSE_MINT
+  maybeToEnum 3 = Prelude.Just REDEEMER_PURPOSE_CERT
+  maybeToEnum 4 = Prelude.Just REDEEMER_PURPOSE_REWARD
+  maybeToEnum k
+    = Prelude.Just
+        (RedeemerPurpose'Unrecognized
+           (RedeemerPurpose'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum REDEEMER_PURPOSE_UNSPECIFIED
+    = "REDEEMER_PURPOSE_UNSPECIFIED"
+  showEnum REDEEMER_PURPOSE_SPEND = "REDEEMER_PURPOSE_SPEND"
+  showEnum REDEEMER_PURPOSE_MINT = "REDEEMER_PURPOSE_MINT"
+  showEnum REDEEMER_PURPOSE_CERT = "REDEEMER_PURPOSE_CERT"
+  showEnum REDEEMER_PURPOSE_REWARD = "REDEEMER_PURPOSE_REWARD"
+  showEnum
+    (RedeemerPurpose'Unrecognized (RedeemerPurpose'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "REDEEMER_PURPOSE_UNSPECIFIED"
+    = Prelude.Just REDEEMER_PURPOSE_UNSPECIFIED
+    | (Prelude.==) k "REDEEMER_PURPOSE_SPEND"
+    = Prelude.Just REDEEMER_PURPOSE_SPEND
+    | (Prelude.==) k "REDEEMER_PURPOSE_MINT"
+    = Prelude.Just REDEEMER_PURPOSE_MINT
+    | (Prelude.==) k "REDEEMER_PURPOSE_CERT"
+    = Prelude.Just REDEEMER_PURPOSE_CERT
+    | (Prelude.==) k "REDEEMER_PURPOSE_REWARD"
+    = Prelude.Just REDEEMER_PURPOSE_REWARD
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded RedeemerPurpose where
+  minBound = REDEEMER_PURPOSE_UNSPECIFIED
+  maxBound = REDEEMER_PURPOSE_REWARD
+instance Prelude.Enum RedeemerPurpose where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum RedeemerPurpose: "
+              (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum REDEEMER_PURPOSE_UNSPECIFIED = 0
+  fromEnum REDEEMER_PURPOSE_SPEND = 1
+  fromEnum REDEEMER_PURPOSE_MINT = 2
+  fromEnum REDEEMER_PURPOSE_CERT = 3
+  fromEnum REDEEMER_PURPOSE_REWARD = 4
+  fromEnum
+    (RedeemerPurpose'Unrecognized (RedeemerPurpose'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ REDEEMER_PURPOSE_REWARD
+    = Prelude.error
+        "RedeemerPurpose.succ: bad argument REDEEMER_PURPOSE_REWARD. This value would be out of bounds."
+  succ REDEEMER_PURPOSE_UNSPECIFIED = REDEEMER_PURPOSE_SPEND
+  succ REDEEMER_PURPOSE_SPEND = REDEEMER_PURPOSE_MINT
+  succ REDEEMER_PURPOSE_MINT = REDEEMER_PURPOSE_CERT
+  succ REDEEMER_PURPOSE_CERT = REDEEMER_PURPOSE_REWARD
+  succ (RedeemerPurpose'Unrecognized _)
+    = Prelude.error
+        "RedeemerPurpose.succ: bad argument: unrecognized value"
+  pred REDEEMER_PURPOSE_UNSPECIFIED
+    = Prelude.error
+        "RedeemerPurpose.pred: bad argument REDEEMER_PURPOSE_UNSPECIFIED. This value would be out of bounds."
+  pred REDEEMER_PURPOSE_SPEND = REDEEMER_PURPOSE_UNSPECIFIED
+  pred REDEEMER_PURPOSE_MINT = REDEEMER_PURPOSE_SPEND
+  pred REDEEMER_PURPOSE_CERT = REDEEMER_PURPOSE_MINT
+  pred REDEEMER_PURPOSE_REWARD = REDEEMER_PURPOSE_CERT
+  pred (RedeemerPurpose'Unrecognized _)
+    = Prelude.error
+        "RedeemerPurpose.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 RedeemerPurpose where
+  fieldDefault = REDEEMER_PURPOSE_UNSPECIFIED
+instance Control.DeepSeq.NFData RedeemerPurpose where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.ipV4' @:: Lens' Relay Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.ipV6' @:: Lens' Relay Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.dnsName' @:: Lens' Relay Data.Text.Text@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.port' @:: Lens' Relay Data.Word.Word32@ -}
+data Relay
+  = Relay'_constructor {_Relay'ipV4 :: !Data.ByteString.ByteString,
+                        _Relay'ipV6 :: !Data.ByteString.ByteString,
+                        _Relay'dnsName :: !Data.Text.Text,
+                        _Relay'port :: !Data.Word.Word32,
+                        _Relay'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Relay where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Relay "ipV4" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relay'ipV4 (\ x__ y__ -> x__ {_Relay'ipV4 = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relay "ipV6" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relay'ipV6 (\ x__ y__ -> x__ {_Relay'ipV6 = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relay "dnsName" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relay'dnsName (\ x__ y__ -> x__ {_Relay'dnsName = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relay "port" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relay'port (\ x__ y__ -> x__ {_Relay'port = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Relay where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Relay"
+  packedMessageDescriptor _
+    = "\n\
+      \\ENQRelay\DC2\DC3\n\
+      \\ENQip_v4\CAN\SOH \SOH(\fR\EOTipV4\DC2\DC3\n\
+      \\ENQip_v6\CAN\STX \SOH(\fR\EOTipV6\DC2\EM\n\
+      \\bdns_name\CAN\ETX \SOH(\tR\adnsName\DC2\DC2\n\
+      \\EOTport\CAN\EOT \SOH(\rR\EOTport"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ipV4__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ip_v4"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"ipV4")) ::
+              Data.ProtoLens.FieldDescriptor Relay
+        ipV6__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ip_v6"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"ipV6")) ::
+              Data.ProtoLens.FieldDescriptor Relay
+        dnsName__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "dns_name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"dnsName")) ::
+              Data.ProtoLens.FieldDescriptor Relay
+        port__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "port"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"port")) ::
+              Data.ProtoLens.FieldDescriptor Relay
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, ipV4__field_descriptor),
+           (Data.ProtoLens.Tag 2, ipV6__field_descriptor),
+           (Data.ProtoLens.Tag 3, dnsName__field_descriptor),
+           (Data.ProtoLens.Tag 4, port__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Relay'_unknownFields
+        (\ x__ y__ -> x__ {_Relay'_unknownFields = y__})
+  defMessage
+    = Relay'_constructor
+        {_Relay'ipV4 = Data.ProtoLens.fieldDefault,
+         _Relay'ipV6 = Data.ProtoLens.fieldDefault,
+         _Relay'dnsName = Data.ProtoLens.fieldDefault,
+         _Relay'port = Data.ProtoLens.fieldDefault,
+         _Relay'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Relay -> Data.ProtoLens.Encoding.Bytes.Parser Relay
+        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))
+                                       "ip_v4"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"ipV4") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "ip_v6"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"ipV6") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "dns_name"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"dnsName") y x)
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "port"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"port") 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) "Relay"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"ipV4") _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 @"ipV6") _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 @"dnsName") _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 @"port") _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 Relay where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Relay'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Relay'ipV4 x__)
+                (Control.DeepSeq.deepseq
+                   (_Relay'ipV6 x__)
+                   (Control.DeepSeq.deepseq
+                      (_Relay'dnsName x__)
+                      (Control.DeepSeq.deepseq (_Relay'port x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'script' @:: Lens' Script (Prelude.Maybe Script'Script)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'native' @:: Lens' Script (Prelude.Maybe NativeScript)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.native' @:: Lens' Script NativeScript@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'plutusV1' @:: Lens' Script (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.plutusV1' @:: Lens' Script Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'plutusV2' @:: Lens' Script (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.plutusV2' @:: Lens' Script Data.ByteString.ByteString@ -}
+data Script
+  = Script'_constructor {_Script'script :: !(Prelude.Maybe Script'Script),
+                         _Script'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Script where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data Script'Script
+  = Script'Native !NativeScript |
+    Script'PlutusV1 !Data.ByteString.ByteString |
+    Script'PlutusV2 !Data.ByteString.ByteString
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField Script "maybe'script" (Prelude.Maybe Script'Script) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Script "maybe'native" (Prelude.Maybe NativeScript) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Script'Native x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Script'Native y__))
+instance Data.ProtoLens.Field.HasField Script "native" NativeScript where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Script'Native x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Script'Native y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Script "maybe'plutusV1" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Script'PlutusV1 x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Script'PlutusV1 y__))
+instance Data.ProtoLens.Field.HasField Script "plutusV1" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Script'PlutusV1 x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Script'PlutusV1 y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField Script "maybe'plutusV2" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Script'PlutusV2 x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Script'PlutusV2 y__))
+instance Data.ProtoLens.Field.HasField Script "plutusV2" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Script'script (\ x__ y__ -> x__ {_Script'script = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Script'PlutusV2 x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Script'PlutusV2 y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Message Script where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Script"
+  packedMessageDescriptor _
+    = "\n\
+      \\ACKScript\DC2?\n\
+      \\ACKnative\CAN\SOH \SOH(\v2%.utxorpc.v1alpha.cardano.NativeScriptH\NULR\ACKnative\DC2\GS\n\
+      \\tplutus_v1\CAN\STX \SOH(\fH\NULR\bplutusV1\DC2\GS\n\
+      \\tplutus_v2\CAN\ETX \SOH(\fH\NULR\bplutusV2B\b\n\
+      \\ACKscript"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        native__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "native"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor NativeScript)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'native")) ::
+              Data.ProtoLens.FieldDescriptor Script
+        plutusV1__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "plutus_v1"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'plutusV1")) ::
+              Data.ProtoLens.FieldDescriptor Script
+        plutusV2__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "plutus_v2"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'plutusV2")) ::
+              Data.ProtoLens.FieldDescriptor Script
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, native__field_descriptor),
+           (Data.ProtoLens.Tag 2, plutusV1__field_descriptor),
+           (Data.ProtoLens.Tag 3, plutusV2__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Script'_unknownFields
+        (\ x__ y__ -> x__ {_Script'_unknownFields = y__})
+  defMessage
+    = Script'_constructor
+        {_Script'script = Prelude.Nothing, _Script'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Script -> Data.ProtoLens.Encoding.Bytes.Parser Script
+        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)
+                                       "native"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"native") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "plutus_v1"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"plutusV1") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "plutus_v2"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"plutusV2") 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) "Script"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'script") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (Script'Native 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 (Script'PlutusV1 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)
+                (Prelude.Just (Script'PlutusV2 v))
+                  -> (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 Script where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Script'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_Script'script x__) ())
+instance Control.DeepSeq.NFData Script'Script where
+  rnf (Script'Native x__) = Control.DeepSeq.rnf x__
+  rnf (Script'PlutusV1 x__) = Control.DeepSeq.rnf x__
+  rnf (Script'PlutusV2 x__) = Control.DeepSeq.rnf x__
+_Script'Native ::
+  Data.ProtoLens.Prism.Prism' Script'Script NativeScript
+_Script'Native
+  = Data.ProtoLens.Prism.prism'
+      Script'Native
+      (\ p__
+         -> case p__ of
+              (Script'Native p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Script'PlutusV1 ::
+  Data.ProtoLens.Prism.Prism' Script'Script Data.ByteString.ByteString
+_Script'PlutusV1
+  = Data.ProtoLens.Prism.prism'
+      Script'PlutusV1
+      (\ p__
+         -> case p__ of
+              (Script'PlutusV1 p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Script'PlutusV2 ::
+  Data.ProtoLens.Prism.Prism' Script'Script Data.ByteString.ByteString
+_Script'PlutusV2
+  = Data.ProtoLens.Prism.prism'
+      Script'PlutusV2
+      (\ p__
+         -> case p__ of
+              (Script'PlutusV2 p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.k' @:: Lens' ScriptNOfK Data.Word.Word32@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scripts' @:: Lens' ScriptNOfK [NativeScript]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'scripts' @:: Lens' ScriptNOfK (Data.Vector.Vector NativeScript)@ -}
+data ScriptNOfK
+  = ScriptNOfK'_constructor {_ScriptNOfK'k :: !Data.Word.Word32,
+                             _ScriptNOfK'scripts :: !(Data.Vector.Vector NativeScript),
+                             _ScriptNOfK'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ScriptNOfK where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ScriptNOfK "k" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ScriptNOfK'k (\ x__ y__ -> x__ {_ScriptNOfK'k = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ScriptNOfK "scripts" [NativeScript] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ScriptNOfK'scripts (\ x__ y__ -> x__ {_ScriptNOfK'scripts = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField ScriptNOfK "vec'scripts" (Data.Vector.Vector NativeScript) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ScriptNOfK'scripts (\ x__ y__ -> x__ {_ScriptNOfK'scripts = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ScriptNOfK where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.ScriptNOfK"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \ScriptNOfK\DC2\f\n\
+      \\SOHk\CAN\SOH \SOH(\rR\SOHk\DC2?\n\
+      \\ascripts\CAN\STX \ETX(\v2%.utxorpc.v1alpha.cardano.NativeScriptR\ascripts"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        k__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "k"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"k")) ::
+              Data.ProtoLens.FieldDescriptor ScriptNOfK
+        scripts__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "scripts"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor NativeScript)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"scripts")) ::
+              Data.ProtoLens.FieldDescriptor ScriptNOfK
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, k__field_descriptor),
+           (Data.ProtoLens.Tag 2, scripts__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ScriptNOfK'_unknownFields
+        (\ x__ y__ -> x__ {_ScriptNOfK'_unknownFields = y__})
+  defMessage
+    = ScriptNOfK'_constructor
+        {_ScriptNOfK'k = Data.ProtoLens.fieldDefault,
+         _ScriptNOfK'scripts = Data.Vector.Generic.empty,
+         _ScriptNOfK'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ScriptNOfK
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld NativeScript
+             -> Data.ProtoLens.Encoding.Bytes.Parser ScriptNOfK
+        loop x mutable'scripts
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'scripts <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                             mutable'scripts)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'scripts") frozen'scripts 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)
+                                       "k"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"k") y x)
+                                  mutable'scripts
+                        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)
+                                        "scripts"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'scripts 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'scripts
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'scripts <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                   Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'scripts)
+          "ScriptNOfK"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"k") _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'scripts") _x))
+                (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))
+instance Control.DeepSeq.NFData ScriptNOfK where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ScriptNOfK'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_ScriptNOfK'k x__)
+                (Control.DeepSeq.deepseq (_ScriptNOfK'scripts x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeCredential' @:: Lens' StakeCredential (Prelude.Maybe StakeCredential'StakeCredential)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'addrKeyHash' @:: Lens' StakeCredential (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.addrKeyHash' @:: Lens' StakeCredential Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'scriptHash' @:: Lens' StakeCredential (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.scriptHash' @:: Lens' StakeCredential Data.ByteString.ByteString@ -}
+data StakeCredential
+  = StakeCredential'_constructor {_StakeCredential'stakeCredential :: !(Prelude.Maybe StakeCredential'StakeCredential),
+                                  _StakeCredential'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show StakeCredential where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data StakeCredential'StakeCredential
+  = StakeCredential'AddrKeyHash !Data.ByteString.ByteString |
+    StakeCredential'ScriptHash !Data.ByteString.ByteString
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField StakeCredential "maybe'stakeCredential" (Prelude.Maybe StakeCredential'StakeCredential) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeCredential'stakeCredential
+           (\ x__ y__ -> x__ {_StakeCredential'stakeCredential = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField StakeCredential "maybe'addrKeyHash" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeCredential'stakeCredential
+           (\ x__ y__ -> x__ {_StakeCredential'stakeCredential = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (StakeCredential'AddrKeyHash x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap StakeCredential'AddrKeyHash y__))
+instance Data.ProtoLens.Field.HasField StakeCredential "addrKeyHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeCredential'stakeCredential
+           (\ x__ y__ -> x__ {_StakeCredential'stakeCredential = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (StakeCredential'AddrKeyHash x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap StakeCredential'AddrKeyHash y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField StakeCredential "maybe'scriptHash" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeCredential'stakeCredential
+           (\ x__ y__ -> x__ {_StakeCredential'stakeCredential = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (StakeCredential'ScriptHash x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap StakeCredential'ScriptHash y__))
+instance Data.ProtoLens.Field.HasField StakeCredential "scriptHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeCredential'stakeCredential
+           (\ x__ y__ -> x__ {_StakeCredential'stakeCredential = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (StakeCredential'ScriptHash x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap StakeCredential'ScriptHash y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Message StakeCredential where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.StakeCredential"
+  packedMessageDescriptor _
+    = "\n\
+      \\SIStakeCredential\DC2$\n\
+      \\raddr_key_hash\CAN\SOH \SOH(\fH\NULR\vaddrKeyHash\DC2!\n\
+      \\vscript_hash\CAN\STX \SOH(\fH\NULR\n\
+      \scriptHashB\DC2\n\
+      \\DLEstake_credential"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        addrKeyHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "addr_key_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'addrKeyHash")) ::
+              Data.ProtoLens.FieldDescriptor StakeCredential
+        scriptHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'scriptHash")) ::
+              Data.ProtoLens.FieldDescriptor StakeCredential
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, addrKeyHash__field_descriptor),
+           (Data.ProtoLens.Tag 2, scriptHash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _StakeCredential'_unknownFields
+        (\ x__ y__ -> x__ {_StakeCredential'_unknownFields = y__})
+  defMessage
+    = StakeCredential'_constructor
+        {_StakeCredential'stakeCredential = Prelude.Nothing,
+         _StakeCredential'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          StakeCredential
+          -> Data.ProtoLens.Encoding.Bytes.Parser StakeCredential
+        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))
+                                       "addr_key_hash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"addrKeyHash") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "script_hash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scriptHash") 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) "StakeCredential"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'stakeCredential") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (StakeCredential'AddrKeyHash 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 (StakeCredential'ScriptHash 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 StakeCredential where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_StakeCredential'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_StakeCredential'stakeCredential x__) ())
+instance Control.DeepSeq.NFData StakeCredential'StakeCredential where
+  rnf (StakeCredential'AddrKeyHash x__) = Control.DeepSeq.rnf x__
+  rnf (StakeCredential'ScriptHash x__) = Control.DeepSeq.rnf x__
+_StakeCredential'AddrKeyHash ::
+  Data.ProtoLens.Prism.Prism' StakeCredential'StakeCredential Data.ByteString.ByteString
+_StakeCredential'AddrKeyHash
+  = Data.ProtoLens.Prism.prism'
+      StakeCredential'AddrKeyHash
+      (\ p__
+         -> case p__ of
+              (StakeCredential'AddrKeyHash p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_StakeCredential'ScriptHash ::
+  Data.ProtoLens.Prism.Prism' StakeCredential'StakeCredential Data.ByteString.ByteString
+_StakeCredential'ScriptHash
+  = Data.ProtoLens.Prism.prism'
+      StakeCredential'ScriptHash
+      (\ p__
+         -> case p__ of
+              (StakeCredential'ScriptHash p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.stakeCredential' @:: Lens' StakeDelegationCert StakeCredential@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'stakeCredential' @:: Lens' StakeDelegationCert (Prelude.Maybe StakeCredential)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.poolKeyhash' @:: Lens' StakeDelegationCert Data.ByteString.ByteString@ -}
+data StakeDelegationCert
+  = StakeDelegationCert'_constructor {_StakeDelegationCert'stakeCredential :: !(Prelude.Maybe StakeCredential),
+                                      _StakeDelegationCert'poolKeyhash :: !Data.ByteString.ByteString,
+                                      _StakeDelegationCert'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show StakeDelegationCert where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField StakeDelegationCert "stakeCredential" StakeCredential where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeDelegationCert'stakeCredential
+           (\ x__ y__ -> x__ {_StakeDelegationCert'stakeCredential = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField StakeDelegationCert "maybe'stakeCredential" (Prelude.Maybe StakeCredential) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeDelegationCert'stakeCredential
+           (\ x__ y__ -> x__ {_StakeDelegationCert'stakeCredential = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField StakeDelegationCert "poolKeyhash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _StakeDelegationCert'poolKeyhash
+           (\ x__ y__ -> x__ {_StakeDelegationCert'poolKeyhash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message StakeDelegationCert where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.StakeDelegationCert"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3StakeDelegationCert\DC2S\n\
+      \\DLEstake_credential\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialR\SIstakeCredential\DC2!\n\
+      \\fpool_keyhash\CAN\STX \SOH(\fR\vpoolKeyhash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        stakeCredential__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stake_credential"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor StakeCredential)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'stakeCredential")) ::
+              Data.ProtoLens.FieldDescriptor StakeDelegationCert
+        poolKeyhash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "pool_keyhash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"poolKeyhash")) ::
+              Data.ProtoLens.FieldDescriptor StakeDelegationCert
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, stakeCredential__field_descriptor),
+           (Data.ProtoLens.Tag 2, poolKeyhash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _StakeDelegationCert'_unknownFields
+        (\ x__ y__ -> x__ {_StakeDelegationCert'_unknownFields = y__})
+  defMessage
+    = StakeDelegationCert'_constructor
+        {_StakeDelegationCert'stakeCredential = Prelude.Nothing,
+         _StakeDelegationCert'poolKeyhash = Data.ProtoLens.fieldDefault,
+         _StakeDelegationCert'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          StakeDelegationCert
+          -> Data.ProtoLens.Encoding.Bytes.Parser StakeDelegationCert
+        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)
+                                       "stake_credential"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"stakeCredential") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "pool_keyhash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"poolKeyhash") 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) "StakeDelegationCert"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'stakeCredential") _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 @"poolKeyhash") _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 StakeDelegationCert where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_StakeDelegationCert'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_StakeDelegationCert'stakeCredential x__)
+                (Control.DeepSeq.deepseq
+                   (_StakeDelegationCert'poolKeyhash x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.inputs' @:: Lens' Tx [TxInput]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'inputs' @:: Lens' Tx (Data.Vector.Vector TxInput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.outputs' @:: Lens' Tx [TxOutput]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'outputs' @:: Lens' Tx (Data.Vector.Vector TxOutput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.certificates' @:: Lens' Tx [Certificate]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'certificates' @:: Lens' Tx (Data.Vector.Vector Certificate)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.withdrawals' @:: Lens' Tx [Withdrawal]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'withdrawals' @:: Lens' Tx (Data.Vector.Vector Withdrawal)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.mint' @:: Lens' Tx [Multiasset]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'mint' @:: Lens' Tx (Data.Vector.Vector Multiasset)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.referenceInputs' @:: Lens' Tx [TxInput]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'referenceInputs' @:: Lens' Tx (Data.Vector.Vector TxInput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.witnesses' @:: Lens' Tx WitnessSet@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'witnesses' @:: Lens' Tx (Prelude.Maybe WitnessSet)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.collateral' @:: Lens' Tx Collateral@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'collateral' @:: Lens' Tx (Prelude.Maybe Collateral)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.fee' @:: Lens' Tx Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.validity' @:: Lens' Tx TxValidity@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'validity' @:: Lens' Tx (Prelude.Maybe TxValidity)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.successful' @:: Lens' Tx Prelude.Bool@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.auxiliary' @:: Lens' Tx AuxData@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'auxiliary' @:: Lens' Tx (Prelude.Maybe AuxData)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.hash' @:: Lens' Tx Data.ByteString.ByteString@ -}
+data Tx
+  = Tx'_constructor {_Tx'inputs :: !(Data.Vector.Vector TxInput),
+                     _Tx'outputs :: !(Data.Vector.Vector TxOutput),
+                     _Tx'certificates :: !(Data.Vector.Vector Certificate),
+                     _Tx'withdrawals :: !(Data.Vector.Vector Withdrawal),
+                     _Tx'mint :: !(Data.Vector.Vector Multiasset),
+                     _Tx'referenceInputs :: !(Data.Vector.Vector TxInput),
+                     _Tx'witnesses :: !(Prelude.Maybe WitnessSet),
+                     _Tx'collateral :: !(Prelude.Maybe Collateral),
+                     _Tx'fee :: !Data.Word.Word64,
+                     _Tx'validity :: !(Prelude.Maybe TxValidity),
+                     _Tx'successful :: !Prelude.Bool,
+                     _Tx'auxiliary :: !(Prelude.Maybe AuxData),
+                     _Tx'hash :: !Data.ByteString.ByteString,
+                     _Tx'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Tx where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Tx "inputs" [TxInput] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'inputs (\ x__ y__ -> x__ {_Tx'inputs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'inputs" (Data.Vector.Vector TxInput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'inputs (\ x__ y__ -> x__ {_Tx'inputs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "outputs" [TxOutput] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'outputs (\ x__ y__ -> x__ {_Tx'outputs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'outputs" (Data.Vector.Vector TxOutput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'outputs (\ x__ y__ -> x__ {_Tx'outputs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "certificates" [Certificate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'certificates (\ x__ y__ -> x__ {_Tx'certificates = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'certificates" (Data.Vector.Vector Certificate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'certificates (\ x__ y__ -> x__ {_Tx'certificates = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "withdrawals" [Withdrawal] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'withdrawals (\ x__ y__ -> x__ {_Tx'withdrawals = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'withdrawals" (Data.Vector.Vector Withdrawal) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'withdrawals (\ x__ y__ -> x__ {_Tx'withdrawals = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "mint" [Multiasset] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'mint (\ x__ y__ -> x__ {_Tx'mint = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'mint" (Data.Vector.Vector Multiasset) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'mint (\ x__ y__ -> x__ {_Tx'mint = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "referenceInputs" [TxInput] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'referenceInputs (\ x__ y__ -> x__ {_Tx'referenceInputs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Tx "vec'referenceInputs" (Data.Vector.Vector TxInput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'referenceInputs (\ x__ y__ -> x__ {_Tx'referenceInputs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "witnesses" WitnessSet where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'witnesses (\ x__ y__ -> x__ {_Tx'witnesses = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Tx "maybe'witnesses" (Prelude.Maybe WitnessSet) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'witnesses (\ x__ y__ -> x__ {_Tx'witnesses = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "collateral" Collateral where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'collateral (\ x__ y__ -> x__ {_Tx'collateral = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Tx "maybe'collateral" (Prelude.Maybe Collateral) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'collateral (\ x__ y__ -> x__ {_Tx'collateral = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "fee" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'fee (\ x__ y__ -> x__ {_Tx'fee = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "validity" TxValidity where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'validity (\ x__ y__ -> x__ {_Tx'validity = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Tx "maybe'validity" (Prelude.Maybe TxValidity) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'validity (\ x__ y__ -> x__ {_Tx'validity = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "successful" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'successful (\ x__ y__ -> x__ {_Tx'successful = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "auxiliary" AuxData where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'auxiliary (\ x__ y__ -> x__ {_Tx'auxiliary = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Tx "maybe'auxiliary" (Prelude.Maybe AuxData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'auxiliary (\ x__ y__ -> x__ {_Tx'auxiliary = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Tx "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Tx'hash (\ x__ y__ -> x__ {_Tx'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Tx where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Tx"
+  packedMessageDescriptor _
+    = "\n\
+      \\STXTx\DC28\n\
+      \\ACKinputs\CAN\SOH \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\ACKinputs\DC2;\n\
+      \\aoutputs\CAN\STX \ETX(\v2!.utxorpc.v1alpha.cardano.TxOutputR\aoutputs\DC2H\n\
+      \\fcertificates\CAN\ETX \ETX(\v2$.utxorpc.v1alpha.cardano.CertificateR\fcertificates\DC2E\n\
+      \\vwithdrawals\CAN\EOT \ETX(\v2#.utxorpc.v1alpha.cardano.WithdrawalR\vwithdrawals\DC27\n\
+      \\EOTmint\CAN\ENQ \ETX(\v2#.utxorpc.v1alpha.cardano.MultiassetR\EOTmint\DC2K\n\
+      \\DLEreference_inputs\CAN\ACK \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\SIreferenceInputs\DC2A\n\
+      \\twitnesses\CAN\a \SOH(\v2#.utxorpc.v1alpha.cardano.WitnessSetR\twitnesses\DC2C\n\
+      \\n\
+      \collateral\CAN\b \SOH(\v2#.utxorpc.v1alpha.cardano.CollateralR\n\
+      \collateral\DC2\DLE\n\
+      \\ETXfee\CAN\t \SOH(\EOTR\ETXfee\DC2?\n\
+      \\bvalidity\CAN\n\
+      \ \SOH(\v2#.utxorpc.v1alpha.cardano.TxValidityR\bvalidity\DC2\RS\n\
+      \\n\
+      \successful\CAN\v \SOH(\bR\n\
+      \successful\DC2>\n\
+      \\tauxiliary\CAN\f \SOH(\v2 .utxorpc.v1alpha.cardano.AuxDataR\tauxiliary\DC2\DC2\n\
+      \\EOThash\CAN\r \SOH(\fR\EOThash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        inputs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "inputs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxInput)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"inputs")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        outputs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "outputs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxOutput)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"outputs")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        certificates__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "certificates"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Certificate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"certificates")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        withdrawals__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "withdrawals"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Withdrawal)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"withdrawals")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        mint__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "mint"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Multiasset)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"mint")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        referenceInputs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "reference_inputs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxInput)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"referenceInputs")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        witnesses__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "witnesses"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor WitnessSet)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'witnesses")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        collateral__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "collateral"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Collateral)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'collateral")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        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 Tx
+        validity__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "validity"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxValidity)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'validity")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        successful__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "successful"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"successful")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        auxiliary__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "auxiliary"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AuxData)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'auxiliary")) ::
+              Data.ProtoLens.FieldDescriptor Tx
+        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 Tx
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, inputs__field_descriptor),
+           (Data.ProtoLens.Tag 2, outputs__field_descriptor),
+           (Data.ProtoLens.Tag 3, certificates__field_descriptor),
+           (Data.ProtoLens.Tag 4, withdrawals__field_descriptor),
+           (Data.ProtoLens.Tag 5, mint__field_descriptor),
+           (Data.ProtoLens.Tag 6, referenceInputs__field_descriptor),
+           (Data.ProtoLens.Tag 7, witnesses__field_descriptor),
+           (Data.ProtoLens.Tag 8, collateral__field_descriptor),
+           (Data.ProtoLens.Tag 9, fee__field_descriptor),
+           (Data.ProtoLens.Tag 10, validity__field_descriptor),
+           (Data.ProtoLens.Tag 11, successful__field_descriptor),
+           (Data.ProtoLens.Tag 12, auxiliary__field_descriptor),
+           (Data.ProtoLens.Tag 13, hash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Tx'_unknownFields (\ x__ y__ -> x__ {_Tx'_unknownFields = y__})
+  defMessage
+    = Tx'_constructor
+        {_Tx'inputs = Data.Vector.Generic.empty,
+         _Tx'outputs = Data.Vector.Generic.empty,
+         _Tx'certificates = Data.Vector.Generic.empty,
+         _Tx'withdrawals = Data.Vector.Generic.empty,
+         _Tx'mint = Data.Vector.Generic.empty,
+         _Tx'referenceInputs = Data.Vector.Generic.empty,
+         _Tx'witnesses = Prelude.Nothing, _Tx'collateral = Prelude.Nothing,
+         _Tx'fee = Data.ProtoLens.fieldDefault,
+         _Tx'validity = Prelude.Nothing,
+         _Tx'successful = Data.ProtoLens.fieldDefault,
+         _Tx'auxiliary = Prelude.Nothing,
+         _Tx'hash = Data.ProtoLens.fieldDefault, _Tx'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Tx
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Certificate
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxInput
+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Multiasset
+                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxOutput
+                      -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxInput
+                         -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Withdrawal
+                            -> Data.ProtoLens.Encoding.Bytes.Parser Tx
+        loop
+          x
+          mutable'certificates
+          mutable'inputs
+          mutable'mint
+          mutable'outputs
+          mutable'referenceInputs
+          mutable'withdrawals
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'certificates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                  mutable'certificates)
+                      frozen'inputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'inputs)
+                      frozen'mint <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'mint)
+                      frozen'outputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                             mutable'outputs)
+                      frozen'referenceInputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                  (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                     mutable'referenceInputs)
+                      frozen'withdrawals <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'withdrawals)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'certificates")
+                              frozen'certificates
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'inputs") frozen'inputs
+                                 (Lens.Family2.set
+                                    (Data.ProtoLens.Field.field @"vec'mint") frozen'mint
+                                    (Lens.Family2.set
+                                       (Data.ProtoLens.Field.field @"vec'outputs") frozen'outputs
+                                       (Lens.Family2.set
+                                          (Data.ProtoLens.Field.field @"vec'referenceInputs")
+                                          frozen'referenceInputs
+                                          (Lens.Family2.set
+                                             (Data.ProtoLens.Field.field @"vec'withdrawals")
+                                             frozen'withdrawals 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)
+                                        "inputs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'inputs y)
+                                loop
+                                  x mutable'certificates v mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                        "outputs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'outputs y)
+                                loop
+                                  x mutable'certificates mutable'inputs mutable'mint v
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                        "certificates"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'certificates y)
+                                loop
+                                  x v mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                        "withdrawals"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'withdrawals y)
+                                loop
+                                  x mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs v
+                        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)
+                                        "mint"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'mint y)
+                                loop
+                                  x mutable'certificates mutable'inputs v mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                        "reference_inputs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'referenceInputs y)
+                                loop
+                                  x mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  v mutable'withdrawals
+                        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)
+                                       "witnesses"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"witnesses") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                       "collateral"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"collateral") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        72
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "fee"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fee") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                       "validity"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"validity") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        88
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "successful"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"successful") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        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)
+                                       "auxiliary"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"auxiliary") y x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        106
+                          -> 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)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'certificates mutable'inputs mutable'mint mutable'outputs
+                                  mutable'referenceInputs mutable'withdrawals
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'certificates <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        Data.ProtoLens.Encoding.Growing.new
+              mutable'inputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              mutable'mint <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                Data.ProtoLens.Encoding.Growing.new
+              mutable'outputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                   Data.ProtoLens.Encoding.Growing.new
+              mutable'referenceInputs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                           Data.ProtoLens.Encoding.Growing.new
+              mutable'withdrawals <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'certificates mutable'inputs
+                mutable'mint mutable'outputs mutable'referenceInputs
+                mutable'withdrawals)
+          "Tx"
+  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'inputs") _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'outputs") _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'certificates") _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'withdrawals") _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'mint") _x))
+                         ((Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                               (\ _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))
+                               (Lens.Family2.view
+                                  (Data.ProtoLens.Field.field @"vec'referenceInputs") _x))
+                            ((Data.Monoid.<>)
+                               (case
+                                    Lens.Family2.view
+                                      (Data.ProtoLens.Field.field @"maybe'witnesses") _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'collateral") _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 @"fee") _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.<>)
+                                        (case
+                                             Lens.Family2.view
+                                               (Data.ProtoLens.Field.field @"maybe'validity") _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.<>)
+                                           (let
+                                              _v
+                                                = Lens.Family2.view
+                                                    (Data.ProtoLens.Field.field @"successful") _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
+                                                       (\ b -> if b then 1 else 0) _v))
+                                           ((Data.Monoid.<>)
+                                              (case
+                                                   Lens.Family2.view
+                                                     (Data.ProtoLens.Field.field @"maybe'auxiliary")
+                                                     _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.<>)
+                                                 (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
+                                                             106)
+                                                          ((\ 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 Tx where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Tx'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Tx'inputs x__)
+                (Control.DeepSeq.deepseq
+                   (_Tx'outputs x__)
+                   (Control.DeepSeq.deepseq
+                      (_Tx'certificates x__)
+                      (Control.DeepSeq.deepseq
+                         (_Tx'withdrawals x__)
+                         (Control.DeepSeq.deepseq
+                            (_Tx'mint x__)
+                            (Control.DeepSeq.deepseq
+                               (_Tx'referenceInputs x__)
+                               (Control.DeepSeq.deepseq
+                                  (_Tx'witnesses x__)
+                                  (Control.DeepSeq.deepseq
+                                     (_Tx'collateral x__)
+                                     (Control.DeepSeq.deepseq
+                                        (_Tx'fee x__)
+                                        (Control.DeepSeq.deepseq
+                                           (_Tx'validity x__)
+                                           (Control.DeepSeq.deepseq
+                                              (_Tx'successful x__)
+                                              (Control.DeepSeq.deepseq
+                                                 (_Tx'auxiliary x__)
+                                                 (Control.DeepSeq.deepseq
+                                                    (_Tx'hash x__) ())))))))))))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.txHash' @:: Lens' TxInput Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.outputIndex' @:: Lens' TxInput Data.Word.Word32@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.asOutput' @:: Lens' TxInput TxOutput@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'asOutput' @:: Lens' TxInput (Prelude.Maybe TxOutput)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.redeemer' @:: Lens' TxInput Redeemer@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'redeemer' @:: Lens' TxInput (Prelude.Maybe Redeemer)@ -}
+data TxInput
+  = TxInput'_constructor {_TxInput'txHash :: !Data.ByteString.ByteString,
+                          _TxInput'outputIndex :: !Data.Word.Word32,
+                          _TxInput'asOutput :: !(Prelude.Maybe TxOutput),
+                          _TxInput'redeemer :: !(Prelude.Maybe Redeemer),
+                          _TxInput'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxInput where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxInput "txHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'txHash (\ x__ y__ -> x__ {_TxInput'txHash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxInput "outputIndex" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'outputIndex
+           (\ x__ y__ -> x__ {_TxInput'outputIndex = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxInput "asOutput" TxOutput where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'asOutput (\ x__ y__ -> x__ {_TxInput'asOutput = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxInput "maybe'asOutput" (Prelude.Maybe TxOutput) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'asOutput (\ x__ y__ -> x__ {_TxInput'asOutput = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxInput "redeemer" Redeemer where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'redeemer (\ x__ y__ -> x__ {_TxInput'redeemer = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxInput "maybe'redeemer" (Prelude.Maybe Redeemer) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInput'redeemer (\ x__ y__ -> x__ {_TxInput'redeemer = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxInput where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.TxInput"
+  packedMessageDescriptor _
+    = "\n\
+      \\aTxInput\DC2\ETB\n\
+      \\atx_hash\CAN\SOH \SOH(\fR\ACKtxHash\DC2!\n\
+      \\foutput_index\CAN\STX \SOH(\rR\voutputIndex\DC2>\n\
+      \\tas_output\CAN\ETX \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputR\basOutput\DC2=\n\
+      \\bredeemer\CAN\EOT \SOH(\v2!.utxorpc.v1alpha.cardano.RedeemerR\bredeemer"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        txHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tx_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"txHash")) ::
+              Data.ProtoLens.FieldDescriptor TxInput
+        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 TxInput
+        asOutput__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "as_output"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxOutput)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'asOutput")) ::
+              Data.ProtoLens.FieldDescriptor TxInput
+        redeemer__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "redeemer"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Redeemer)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'redeemer")) ::
+              Data.ProtoLens.FieldDescriptor TxInput
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, txHash__field_descriptor),
+           (Data.ProtoLens.Tag 2, outputIndex__field_descriptor),
+           (Data.ProtoLens.Tag 3, asOutput__field_descriptor),
+           (Data.ProtoLens.Tag 4, redeemer__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxInput'_unknownFields
+        (\ x__ y__ -> x__ {_TxInput'_unknownFields = y__})
+  defMessage
+    = TxInput'_constructor
+        {_TxInput'txHash = Data.ProtoLens.fieldDefault,
+         _TxInput'outputIndex = Data.ProtoLens.fieldDefault,
+         _TxInput'asOutput = Prelude.Nothing,
+         _TxInput'redeemer = Prelude.Nothing, _TxInput'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: TxInput -> Data.ProtoLens.Encoding.Bytes.Parser TxInput
+        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))
+                                       "tx_hash"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"txHash") 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)
+                        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)
+                                       "as_output"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"asOutput") 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)
+                                       "redeemer"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"redeemer") 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) "TxInput"
+  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)
+                      ((\ 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.Monoid.<>)
+                   (case
+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'asOutput") _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'redeemer") _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 TxInput where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxInput'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxInput'txHash x__)
+                (Control.DeepSeq.deepseq
+                   (_TxInput'outputIndex x__)
+                   (Control.DeepSeq.deepseq
+                      (_TxInput'asOutput x__)
+                      (Control.DeepSeq.deepseq (_TxInput'redeemer x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.address' @:: Lens' TxOutput Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.coin' @:: Lens' TxOutput Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.assets' @:: Lens' TxOutput [Multiasset]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'assets' @:: Lens' TxOutput (Data.Vector.Vector Multiasset)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.datum' @:: Lens' TxOutput PlutusData@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'datum' @:: Lens' TxOutput (Prelude.Maybe PlutusData)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.datumHash' @:: Lens' TxOutput Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.script' @:: Lens' TxOutput Script@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'script' @:: Lens' TxOutput (Prelude.Maybe Script)@ -}
+data TxOutput
+  = TxOutput'_constructor {_TxOutput'address :: !Data.ByteString.ByteString,
+                           _TxOutput'coin :: !Data.Word.Word64,
+                           _TxOutput'assets :: !(Data.Vector.Vector Multiasset),
+                           _TxOutput'datum :: !(Prelude.Maybe PlutusData),
+                           _TxOutput'datumHash :: !Data.ByteString.ByteString,
+                           _TxOutput'script :: !(Prelude.Maybe Script),
+                           _TxOutput'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxOutput where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxOutput "address" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'address (\ x__ y__ -> x__ {_TxOutput'address = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxOutput "coin" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'coin (\ x__ y__ -> x__ {_TxOutput'coin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxOutput "assets" [Multiasset] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'assets (\ x__ y__ -> x__ {_TxOutput'assets = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxOutput "vec'assets" (Data.Vector.Vector Multiasset) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'assets (\ x__ y__ -> x__ {_TxOutput'assets = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxOutput "datum" PlutusData where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'datum (\ x__ y__ -> x__ {_TxOutput'datum = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxOutput "maybe'datum" (Prelude.Maybe PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'datum (\ x__ y__ -> x__ {_TxOutput'datum = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxOutput "datumHash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'datumHash (\ x__ y__ -> x__ {_TxOutput'datumHash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxOutput "script" Script where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'script (\ x__ y__ -> x__ {_TxOutput'script = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxOutput "maybe'script" (Prelude.Maybe Script) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxOutput'script (\ x__ y__ -> x__ {_TxOutput'script = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxOutput where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.TxOutput"
+  packedMessageDescriptor _
+    = "\n\
+      \\bTxOutput\DC2\CAN\n\
+      \\aaddress\CAN\SOH \SOH(\fR\aaddress\DC2\DC2\n\
+      \\EOTcoin\CAN\STX \SOH(\EOTR\EOTcoin\DC2;\n\
+      \\ACKassets\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.MultiassetR\ACKassets\DC29\n\
+      \\ENQdatum\CAN\EOT \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQdatum\DC2\GS\n\
+      \\n\
+      \datum_hash\CAN\ENQ \SOH(\fR\tdatumHash\DC27\n\
+      \\ACKscript\CAN\ACK \SOH(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ACKscript"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        address__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "address"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"address")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+        coin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "coin"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"coin")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+        assets__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "assets"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Multiasset)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"assets")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+        datum__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "datum"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'datum")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+        datumHash__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "datum_hash"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"datumHash")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+        script__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Script)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'script")) ::
+              Data.ProtoLens.FieldDescriptor TxOutput
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, address__field_descriptor),
+           (Data.ProtoLens.Tag 2, coin__field_descriptor),
+           (Data.ProtoLens.Tag 3, assets__field_descriptor),
+           (Data.ProtoLens.Tag 4, datum__field_descriptor),
+           (Data.ProtoLens.Tag 5, datumHash__field_descriptor),
+           (Data.ProtoLens.Tag 6, script__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxOutput'_unknownFields
+        (\ x__ y__ -> x__ {_TxOutput'_unknownFields = y__})
+  defMessage
+    = TxOutput'_constructor
+        {_TxOutput'address = Data.ProtoLens.fieldDefault,
+         _TxOutput'coin = Data.ProtoLens.fieldDefault,
+         _TxOutput'assets = Data.Vector.Generic.empty,
+         _TxOutput'datum = Prelude.Nothing,
+         _TxOutput'datumHash = Data.ProtoLens.fieldDefault,
+         _TxOutput'script = Prelude.Nothing, _TxOutput'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          TxOutput
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Multiasset
+             -> Data.ProtoLens.Encoding.Bytes.Parser TxOutput
+        loop x mutable'assets
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'assets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'assets)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'assets") frozen'assets 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))
+                                       "address"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"address") y x)
+                                  mutable'assets
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "coin"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"coin") y x)
+                                  mutable'assets
+                        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)
+                                        "assets"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'assets y)
+                                loop x v
+                        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)
+                                       "datum"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"datum") y x)
+                                  mutable'assets
+                        42
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getBytes
+                                             (Prelude.fromIntegral len))
+                                       "datum_hash"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"datumHash") y x)
+                                  mutable'assets
+                        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)
+                                       "script"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"script") y x)
+                                  mutable'assets
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'assets
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'assets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'assets)
+          "TxOutput"
+  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)
+                      ((\ 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 @"coin") _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.<>)
+                   (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'assets") _x))
+                   ((Data.Monoid.<>)
+                      (case
+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'datum") _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 @"datumHash") _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.<>)
+                            (case
+                                 Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'script") _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.ProtoLens.Encoding.Wire.buildFieldSet
+                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
+instance Control.DeepSeq.NFData TxOutput where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxOutput'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxOutput'address x__)
+                (Control.DeepSeq.deepseq
+                   (_TxOutput'coin x__)
+                   (Control.DeepSeq.deepseq
+                      (_TxOutput'assets x__)
+                      (Control.DeepSeq.deepseq
+                         (_TxOutput'datum x__)
+                         (Control.DeepSeq.deepseq
+                            (_TxOutput'datumHash x__)
+                            (Control.DeepSeq.deepseq (_TxOutput'script x__) ()))))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'txPattern' @:: Lens' TxPattern (Prelude.Maybe TxPattern'TxPattern)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'anyOutput' @:: Lens' TxPattern (Prelude.Maybe OutputPattern)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.anyOutput' @:: Lens' TxPattern OutputPattern@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'anyAddress' @:: Lens' TxPattern (Prelude.Maybe AddressPattern)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.anyAddress' @:: Lens' TxPattern AddressPattern@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'anyAsset' @:: Lens' TxPattern (Prelude.Maybe AssetPattern)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.anyAsset' @:: Lens' TxPattern AssetPattern@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.maybe'anyDatum' @:: Lens' TxPattern (Prelude.Maybe DatumPattern)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.anyDatum' @:: Lens' TxPattern DatumPattern@ -}
+data TxPattern
+  = TxPattern'_constructor {_TxPattern'txPattern :: !(Prelude.Maybe TxPattern'TxPattern),
+                            _TxPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data TxPattern'TxPattern
+  = TxPattern'AnyOutput !OutputPattern |
+    TxPattern'AnyAddress !AddressPattern |
+    TxPattern'AnyAsset !AssetPattern |
+    TxPattern'AnyDatum !DatumPattern
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField TxPattern "maybe'txPattern" (Prelude.Maybe TxPattern'TxPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPattern "maybe'anyOutput" (Prelude.Maybe OutputPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (TxPattern'AnyOutput x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap TxPattern'AnyOutput y__))
+instance Data.ProtoLens.Field.HasField TxPattern "anyOutput" OutputPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (TxPattern'AnyOutput x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap TxPattern'AnyOutput y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField TxPattern "maybe'anyAddress" (Prelude.Maybe AddressPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (TxPattern'AnyAddress x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap TxPattern'AnyAddress y__))
+instance Data.ProtoLens.Field.HasField TxPattern "anyAddress" AddressPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (TxPattern'AnyAddress x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap TxPattern'AnyAddress y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField TxPattern "maybe'anyAsset" (Prelude.Maybe AssetPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (TxPattern'AnyAsset x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap TxPattern'AnyAsset y__))
+instance Data.ProtoLens.Field.HasField TxPattern "anyAsset" AssetPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (TxPattern'AnyAsset x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap TxPattern'AnyAsset y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField TxPattern "maybe'anyDatum" (Prelude.Maybe DatumPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (TxPattern'AnyDatum x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap TxPattern'AnyDatum y__))
+instance Data.ProtoLens.Field.HasField TxPattern "anyDatum" DatumPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPattern'txPattern
+           (\ x__ y__ -> x__ {_TxPattern'txPattern = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (TxPattern'AnyDatum x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap TxPattern'AnyDatum y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message TxPattern where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.TxPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\tTxPattern\DC2G\n\
+      \\n\
+      \any_output\CAN\SOH \SOH(\v2&.utxorpc.v1alpha.cardano.OutputPatternH\NULR\tanyOutput\DC2J\n\
+      \\vany_address\CAN\STX \SOH(\v2'.utxorpc.v1alpha.cardano.AddressPatternH\NULR\n\
+      \anyAddress\DC2D\n\
+      \\tany_asset\CAN\ETX \SOH(\v2%.utxorpc.v1alpha.cardano.AssetPatternH\NULR\banyAsset\DC2D\n\
+      \\tany_datum\CAN\EOT \SOH(\v2%.utxorpc.v1alpha.cardano.DatumPatternH\NULR\banyDatumB\f\n\
+      \\n\
+      \tx_pattern"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        anyOutput__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_output"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor OutputPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'anyOutput")) ::
+              Data.ProtoLens.FieldDescriptor TxPattern
+        anyAddress__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_address"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AddressPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'anyAddress")) ::
+              Data.ProtoLens.FieldDescriptor TxPattern
+        anyAsset__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_asset"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AssetPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'anyAsset")) ::
+              Data.ProtoLens.FieldDescriptor TxPattern
+        anyDatum__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_datum"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor DatumPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'anyDatum")) ::
+              Data.ProtoLens.FieldDescriptor TxPattern
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, anyOutput__field_descriptor),
+           (Data.ProtoLens.Tag 2, anyAddress__field_descriptor),
+           (Data.ProtoLens.Tag 3, anyAsset__field_descriptor),
+           (Data.ProtoLens.Tag 4, anyDatum__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxPattern'_unknownFields
+        (\ x__ y__ -> x__ {_TxPattern'_unknownFields = y__})
+  defMessage
+    = TxPattern'_constructor
+        {_TxPattern'txPattern = Prelude.Nothing,
+         _TxPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: TxPattern -> Data.ProtoLens.Encoding.Bytes.Parser TxPattern
+        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)
+                                       "any_output"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"anyOutput") 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)
+                                       "any_address"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"anyAddress") 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)
+                                       "any_asset"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"anyAsset") 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)
+                                       "any_datum"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"anyDatum") 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) "TxPattern"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'txPattern") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (TxPattern'AnyOutput 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 (TxPattern'AnyAddress 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 (TxPattern'AnyAsset 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 (TxPattern'AnyDatum 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 TxPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxPattern'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_TxPattern'txPattern x__) ())
+instance Control.DeepSeq.NFData TxPattern'TxPattern where
+  rnf (TxPattern'AnyOutput x__) = Control.DeepSeq.rnf x__
+  rnf (TxPattern'AnyAddress x__) = Control.DeepSeq.rnf x__
+  rnf (TxPattern'AnyAsset x__) = Control.DeepSeq.rnf x__
+  rnf (TxPattern'AnyDatum x__) = Control.DeepSeq.rnf x__
+_TxPattern'AnyOutput ::
+  Data.ProtoLens.Prism.Prism' TxPattern'TxPattern OutputPattern
+_TxPattern'AnyOutput
+  = Data.ProtoLens.Prism.prism'
+      TxPattern'AnyOutput
+      (\ p__
+         -> case p__ of
+              (TxPattern'AnyOutput p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_TxPattern'AnyAddress ::
+  Data.ProtoLens.Prism.Prism' TxPattern'TxPattern AddressPattern
+_TxPattern'AnyAddress
+  = Data.ProtoLens.Prism.prism'
+      TxPattern'AnyAddress
+      (\ p__
+         -> case p__ of
+              (TxPattern'AnyAddress p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_TxPattern'AnyAsset ::
+  Data.ProtoLens.Prism.Prism' TxPattern'TxPattern AssetPattern
+_TxPattern'AnyAsset
+  = Data.ProtoLens.Prism.prism'
+      TxPattern'AnyAsset
+      (\ p__
+         -> case p__ of
+              (TxPattern'AnyAsset p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_TxPattern'AnyDatum ::
+  Data.ProtoLens.Prism.Prism' TxPattern'TxPattern DatumPattern
+_TxPattern'AnyDatum
+  = Data.ProtoLens.Prism.prism'
+      TxPattern'AnyDatum
+      (\ p__
+         -> case p__ of
+              (TxPattern'AnyDatum p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.start' @:: Lens' TxValidity Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.ttl' @:: Lens' TxValidity Data.Word.Word64@ -}
+data TxValidity
+  = TxValidity'_constructor {_TxValidity'start :: !Data.Word.Word64,
+                             _TxValidity'ttl :: !Data.Word.Word64,
+                             _TxValidity'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxValidity where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxValidity "start" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxValidity'start (\ x__ y__ -> x__ {_TxValidity'start = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxValidity "ttl" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxValidity'ttl (\ x__ y__ -> x__ {_TxValidity'ttl = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxValidity where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.TxValidity"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \TxValidity\DC2\DC4\n\
+      \\ENQstart\CAN\SOH \SOH(\EOTR\ENQstart\DC2\DLE\n\
+      \\ETXttl\CAN\STX \SOH(\EOTR\ETXttl"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        start__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "start"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"start")) ::
+              Data.ProtoLens.FieldDescriptor TxValidity
+        ttl__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ttl"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"ttl")) ::
+              Data.ProtoLens.FieldDescriptor TxValidity
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, start__field_descriptor),
+           (Data.ProtoLens.Tag 2, ttl__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxValidity'_unknownFields
+        (\ x__ y__ -> x__ {_TxValidity'_unknownFields = y__})
+  defMessage
+    = TxValidity'_constructor
+        {_TxValidity'start = Data.ProtoLens.fieldDefault,
+         _TxValidity'ttl = Data.ProtoLens.fieldDefault,
+         _TxValidity'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          TxValidity -> Data.ProtoLens.Encoding.Bytes.Parser TxValidity
+        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"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "ttl"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"ttl") 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) "TxValidity"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"start") _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 @"ttl") _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 TxValidity where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxValidity'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxValidity'start x__)
+                (Control.DeepSeq.deepseq (_TxValidity'ttl x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vkey' @:: Lens' VKeyWitness Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.signature' @:: Lens' VKeyWitness Data.ByteString.ByteString@ -}
+data VKeyWitness
+  = VKeyWitness'_constructor {_VKeyWitness'vkey :: !Data.ByteString.ByteString,
+                              _VKeyWitness'signature :: !Data.ByteString.ByteString,
+                              _VKeyWitness'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show VKeyWitness where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField VKeyWitness "vkey" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _VKeyWitness'vkey (\ x__ y__ -> x__ {_VKeyWitness'vkey = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField VKeyWitness "signature" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _VKeyWitness'signature
+           (\ x__ y__ -> x__ {_VKeyWitness'signature = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message VKeyWitness where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.cardano.VKeyWitness"
+  packedMessageDescriptor _
+    = "\n\
+      \\vVKeyWitness\DC2\DC2\n\
+      \\EOTvkey\CAN\SOH \SOH(\fR\EOTvkey\DC2\FS\n\
+      \\tsignature\CAN\STX \SOH(\fR\tsignature"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        vkey__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "vkey"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"vkey")) ::
+              Data.ProtoLens.FieldDescriptor VKeyWitness
+        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 VKeyWitness
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, vkey__field_descriptor),
+           (Data.ProtoLens.Tag 2, signature__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _VKeyWitness'_unknownFields
+        (\ x__ y__ -> x__ {_VKeyWitness'_unknownFields = y__})
+  defMessage
+    = VKeyWitness'_constructor
+        {_VKeyWitness'vkey = Data.ProtoLens.fieldDefault,
+         _VKeyWitness'signature = Data.ProtoLens.fieldDefault,
+         _VKeyWitness'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          VKeyWitness -> Data.ProtoLens.Encoding.Bytes.Parser VKeyWitness
+        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))
+                                       "vkey"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"vkey") y x)
+                        18
+                          -> 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)
+                        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) "VKeyWitness"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"vkey") _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)
+                         ((\ 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 VKeyWitness where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_VKeyWitness'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_VKeyWitness'vkey x__)
+                (Control.DeepSeq.deepseq (_VKeyWitness'signature x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.rewardAccount' @:: Lens' Withdrawal Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.coin' @:: Lens' Withdrawal Data.Word.Word64@ -}
+data Withdrawal
+  = Withdrawal'_constructor {_Withdrawal'rewardAccount :: !Data.ByteString.ByteString,
+                             _Withdrawal'coin :: !Data.Word.Word64,
+                             _Withdrawal'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Withdrawal where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Withdrawal "rewardAccount" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Withdrawal'rewardAccount
+           (\ x__ y__ -> x__ {_Withdrawal'rewardAccount = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Withdrawal "coin" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Withdrawal'coin (\ x__ y__ -> x__ {_Withdrawal'coin = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Withdrawal where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.Withdrawal"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Withdrawal\DC2%\n\
+      \\SOreward_account\CAN\SOH \SOH(\fR\rrewardAccount\DC2\DC2\n\
+      \\EOTcoin\CAN\STX \SOH(\EOTR\EOTcoin"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        rewardAccount__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "reward_account"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"rewardAccount")) ::
+              Data.ProtoLens.FieldDescriptor Withdrawal
+        coin__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "coin"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"coin")) ::
+              Data.ProtoLens.FieldDescriptor Withdrawal
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, rewardAccount__field_descriptor),
+           (Data.ProtoLens.Tag 2, coin__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Withdrawal'_unknownFields
+        (\ x__ y__ -> x__ {_Withdrawal'_unknownFields = y__})
+  defMessage
+    = Withdrawal'_constructor
+        {_Withdrawal'rewardAccount = Data.ProtoLens.fieldDefault,
+         _Withdrawal'coin = Data.ProtoLens.fieldDefault,
+         _Withdrawal'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Withdrawal -> Data.ProtoLens.Encoding.Bytes.Parser Withdrawal
+        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))
+                                       "reward_account"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"rewardAccount") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "coin"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"coin") 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) "Withdrawal"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v
+                  = Lens.Family2.view
+                      (Data.ProtoLens.Field.field @"rewardAccount") _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 @"coin") _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 Withdrawal where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Withdrawal'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Withdrawal'rewardAccount x__)
+                (Control.DeepSeq.deepseq (_Withdrawal'coin x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vkeywitness' @:: Lens' WitnessSet [VKeyWitness]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'vkeywitness' @:: Lens' WitnessSet (Data.Vector.Vector VKeyWitness)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.script' @:: Lens' WitnessSet [Script]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'script' @:: Lens' WitnessSet (Data.Vector.Vector Script)@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.plutusDatums' @:: Lens' WitnessSet [PlutusData]@
+         * 'Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields.vec'plutusDatums' @:: Lens' WitnessSet (Data.Vector.Vector PlutusData)@ -}
+data WitnessSet
+  = WitnessSet'_constructor {_WitnessSet'vkeywitness :: !(Data.Vector.Vector VKeyWitness),
+                             _WitnessSet'script :: !(Data.Vector.Vector Script),
+                             _WitnessSet'plutusDatums :: !(Data.Vector.Vector PlutusData),
+                             _WitnessSet'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WitnessSet where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WitnessSet "vkeywitness" [VKeyWitness] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'vkeywitness
+           (\ x__ y__ -> x__ {_WitnessSet'vkeywitness = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField WitnessSet "vec'vkeywitness" (Data.Vector.Vector VKeyWitness) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'vkeywitness
+           (\ x__ y__ -> x__ {_WitnessSet'vkeywitness = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WitnessSet "script" [Script] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'script (\ x__ y__ -> x__ {_WitnessSet'script = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField WitnessSet "vec'script" (Data.Vector.Vector Script) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'script (\ x__ y__ -> x__ {_WitnessSet'script = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WitnessSet "plutusDatums" [PlutusData] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'plutusDatums
+           (\ x__ y__ -> x__ {_WitnessSet'plutusDatums = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField WitnessSet "vec'plutusDatums" (Data.Vector.Vector PlutusData) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WitnessSet'plutusDatums
+           (\ x__ y__ -> x__ {_WitnessSet'plutusDatums = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WitnessSet where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.cardano.WitnessSet"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \WitnessSet\DC2F\n\
+      \\vvkeywitness\CAN\SOH \ETX(\v2$.utxorpc.v1alpha.cardano.VKeyWitnessR\vvkeywitness\DC27\n\
+      \\ACKscript\CAN\STX \ETX(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ACKscript\DC2H\n\
+      \\rplutus_datums\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\fplutusDatums"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        vkeywitness__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "vkeywitness"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor VKeyWitness)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"vkeywitness")) ::
+              Data.ProtoLens.FieldDescriptor WitnessSet
+        script__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "script"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Script)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"script")) ::
+              Data.ProtoLens.FieldDescriptor WitnessSet
+        plutusDatums__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "plutus_datums"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor PlutusData)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"plutusDatums")) ::
+              Data.ProtoLens.FieldDescriptor WitnessSet
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, vkeywitness__field_descriptor),
+           (Data.ProtoLens.Tag 2, script__field_descriptor),
+           (Data.ProtoLens.Tag 3, plutusDatums__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WitnessSet'_unknownFields
+        (\ x__ y__ -> x__ {_WitnessSet'_unknownFields = y__})
+  defMessage
+    = WitnessSet'_constructor
+        {_WitnessSet'vkeywitness = Data.Vector.Generic.empty,
+         _WitnessSet'script = Data.Vector.Generic.empty,
+         _WitnessSet'plutusDatums = Data.Vector.Generic.empty,
+         _WitnessSet'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WitnessSet
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld PlutusData
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Script
+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld VKeyWitness
+                   -> Data.ProtoLens.Encoding.Bytes.Parser WitnessSet
+        loop x mutable'plutusDatums mutable'script mutable'vkeywitness
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'plutusDatums <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                  mutable'plutusDatums)
+                      frozen'script <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                            mutable'script)
+                      frozen'vkeywitness <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'vkeywitness)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'plutusDatums")
+                              frozen'plutusDatums
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'script") frozen'script
+                                 (Lens.Family2.set
+                                    (Data.ProtoLens.Field.field @"vec'vkeywitness")
+                                    frozen'vkeywitness 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)
+                                        "vkeywitness"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'vkeywitness y)
+                                loop x mutable'plutusDatums mutable'script 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)
+                                        "script"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'script y)
+                                loop x mutable'plutusDatums v mutable'vkeywitness
+                        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)
+                                        "plutus_datums"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'plutusDatums y)
+                                loop x v mutable'script mutable'vkeywitness
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'plutusDatums mutable'script mutable'vkeywitness
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'plutusDatums <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        Data.ProtoLens.Encoding.Growing.new
+              mutable'script <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                  Data.ProtoLens.Encoding.Growing.new
+              mutable'vkeywitness <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'plutusDatums mutable'script
+                mutable'vkeywitness)
+          "WitnessSet"
+  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'vkeywitness") _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'script") _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'plutusDatums") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData WitnessSet where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WitnessSet'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_WitnessSet'vkeywitness x__)
+                (Control.DeepSeq.deepseq
+                   (_WitnessSet'script x__)
+                   (Control.DeepSeq.deepseq (_WitnessSet'plutusDatums x__) ())))
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \%utxorpc/v1alpha/cardano/cardano.proto\DC2\ETButxorpc.v1alpha.cardano\"\137\SOH\n\
+    \\bRedeemer\DC2B\n\
+    \\apurpose\CAN\SOH \SOH(\SO2(.utxorpc.v1alpha.cardano.RedeemerPurposeR\apurpose\DC29\n\
+    \\ENQdatum\CAN\STX \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQdatum\"\196\SOH\n\
+    \\aTxInput\DC2\ETB\n\
+    \\atx_hash\CAN\SOH \SOH(\fR\ACKtxHash\DC2!\n\
+    \\foutput_index\CAN\STX \SOH(\rR\voutputIndex\DC2>\n\
+    \\tas_output\CAN\ETX \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputR\basOutput\DC2=\n\
+    \\bredeemer\CAN\EOT \SOH(\v2!.utxorpc.v1alpha.cardano.RedeemerR\bredeemer\"\136\STX\n\
+    \\bTxOutput\DC2\CAN\n\
+    \\aaddress\CAN\SOH \SOH(\fR\aaddress\DC2\DC2\n\
+    \\EOTcoin\CAN\STX \SOH(\EOTR\EOTcoin\DC2;\n\
+    \\ACKassets\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.MultiassetR\ACKassets\DC29\n\
+    \\ENQdatum\CAN\EOT \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQdatum\DC2\GS\n\
+    \\n\
+    \datum_hash\CAN\ENQ \SOH(\fR\tdatumHash\DC27\n\
+    \\ACKscript\CAN\ACK \SOH(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ACKscript\"Y\n\
+    \\ENQAsset\DC2\DC2\n\
+    \\EOTname\CAN\SOH \SOH(\fR\EOTname\DC2\US\n\
+    \\voutput_coin\CAN\STX \SOH(\EOTR\n\
+    \outputCoin\DC2\ESC\n\
+    \\tmint_coin\CAN\ETX \SOH(\ETXR\bmintCoin\"a\n\
+    \\n\
+    \Multiasset\DC2\ESC\n\
+    \\tpolicy_id\CAN\SOH \SOH(\fR\bpolicyId\DC26\n\
+    \\ACKassets\CAN\STX \ETX(\v2\RS.utxorpc.v1alpha.cardano.AssetR\ACKassets\"4\n\
+    \\n\
+    \TxValidity\DC2\DC4\n\
+    \\ENQstart\CAN\SOH \SOH(\EOTR\ENQstart\DC2\DLE\n\
+    \\ETXttl\CAN\STX \SOH(\EOTR\ETXttl\"\201\SOH\n\
+    \\n\
+    \Collateral\DC2@\n\
+    \\n\
+    \collateral\CAN\SOH \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\n\
+    \collateral\DC2N\n\
+    \\DC1collateral_return\CAN\STX \SOH(\v2!.utxorpc.v1alpha.cardano.TxOutputR\DLEcollateralReturn\DC2)\n\
+    \\DLEtotal_collateral\CAN\ETX \SOH(\EOTR\SItotalCollateral\"G\n\
+    \\n\
+    \Withdrawal\DC2%\n\
+    \\SOreward_account\CAN\SOH \SOH(\fR\rrewardAccount\DC2\DC2\n\
+    \\EOTcoin\CAN\STX \SOH(\EOTR\EOTcoin\"\215\SOH\n\
+    \\n\
+    \WitnessSet\DC2F\n\
+    \\vvkeywitness\CAN\SOH \ETX(\v2$.utxorpc.v1alpha.cardano.VKeyWitnessR\vvkeywitness\DC27\n\
+    \\ACKscript\CAN\STX \ETX(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ACKscript\DC2H\n\
+    \\rplutus_datums\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\fplutusDatums\"\131\SOH\n\
+    \\aAuxData\DC2=\n\
+    \\bmetadata\CAN\SOH \ETX(\v2!.utxorpc.v1alpha.cardano.MetadataR\bmetadata\DC29\n\
+    \\ascripts\CAN\STX \ETX(\v2\US.utxorpc.v1alpha.cardano.ScriptR\ascripts\"\225\ENQ\n\
+    \\STXTx\DC28\n\
+    \\ACKinputs\CAN\SOH \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\ACKinputs\DC2;\n\
+    \\aoutputs\CAN\STX \ETX(\v2!.utxorpc.v1alpha.cardano.TxOutputR\aoutputs\DC2H\n\
+    \\fcertificates\CAN\ETX \ETX(\v2$.utxorpc.v1alpha.cardano.CertificateR\fcertificates\DC2E\n\
+    \\vwithdrawals\CAN\EOT \ETX(\v2#.utxorpc.v1alpha.cardano.WithdrawalR\vwithdrawals\DC27\n\
+    \\EOTmint\CAN\ENQ \ETX(\v2#.utxorpc.v1alpha.cardano.MultiassetR\EOTmint\DC2K\n\
+    \\DLEreference_inputs\CAN\ACK \ETX(\v2 .utxorpc.v1alpha.cardano.TxInputR\SIreferenceInputs\DC2A\n\
+    \\twitnesses\CAN\a \SOH(\v2#.utxorpc.v1alpha.cardano.WitnessSetR\twitnesses\DC2C\n\
+    \\n\
+    \collateral\CAN\b \SOH(\v2#.utxorpc.v1alpha.cardano.CollateralR\n\
+    \collateral\DC2\DLE\n\
+    \\ETXfee\CAN\t \SOH(\EOTR\ETXfee\DC2?\n\
+    \\bvalidity\CAN\n\
+    \ \SOH(\v2#.utxorpc.v1alpha.cardano.TxValidityR\bvalidity\DC2\RS\n\
+    \\n\
+    \successful\CAN\v \SOH(\bR\n\
+    \successful\DC2>\n\
+    \\tauxiliary\CAN\f \SOH(\v2 .utxorpc.v1alpha.cardano.AuxDataR\tauxiliary\DC2\DC2\n\
+    \\EOThash\CAN\r \SOH(\fR\EOThash\"M\n\
+    \\vBlockHeader\DC2\DC2\n\
+    \\EOTslot\CAN\SOH \SOH(\EOTR\EOTslot\DC2\DC2\n\
+    \\EOThash\CAN\STX \SOH(\fR\EOThash\DC2\SYN\n\
+    \\ACKheight\CAN\ETX \SOH(\EOTR\ACKheight\"8\n\
+    \\tBlockBody\DC2+\n\
+    \\STXtx\CAN\SOH \ETX(\v2\ESC.utxorpc.v1alpha.cardano.TxR\STXtx\"}\n\
+    \\ENQBlock\DC2<\n\
+    \\ACKheader\CAN\SOH \SOH(\v2$.utxorpc.v1alpha.cardano.BlockHeaderR\ACKheader\DC26\n\
+    \\EOTbody\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.BlockBodyR\EOTbody\"?\n\
+    \\vVKeyWitness\DC2\DC2\n\
+    \\EOTvkey\CAN\SOH \SOH(\fR\EOTvkey\DC2\FS\n\
+    \\tsignature\CAN\STX \SOH(\fR\tsignature\"\128\ETX\n\
+    \\fNativeScript\DC2%\n\
+    \\rscript_pubkey\CAN\SOH \SOH(\fH\NULR\fscriptPubkey\DC2J\n\
+    \\n\
+    \script_all\CAN\STX \SOH(\v2).utxorpc.v1alpha.cardano.NativeScriptListH\NULR\tscriptAll\DC2J\n\
+    \\n\
+    \script_any\CAN\ETX \SOH(\v2).utxorpc.v1alpha.cardano.NativeScriptListH\NULR\tscriptAny\DC2H\n\
+    \\rscript_n_of_k\CAN\EOT \SOH(\v2#.utxorpc.v1alpha.cardano.ScriptNOfKH\NULR\n\
+    \scriptNOfK\DC2'\n\
+    \\SOinvalid_before\CAN\ENQ \SOH(\EOTH\NULR\rinvalidBefore\DC2-\n\
+    \\DC1invalid_hereafter\CAN\ACK \SOH(\EOTH\NULR\DLEinvalidHereafterB\SI\n\
+    \\rnative_script\"O\n\
+    \\DLENativeScriptList\DC2;\n\
+    \\ENQitems\CAN\SOH \ETX(\v2%.utxorpc.v1alpha.cardano.NativeScriptR\ENQitems\"[\n\
+    \\n\
+    \ScriptNOfK\DC2\f\n\
+    \\SOHk\CAN\SOH \SOH(\rR\SOHk\DC2?\n\
+    \\ascripts\CAN\STX \ETX(\v2%.utxorpc.v1alpha.cardano.NativeScriptR\ascripts\"\128\SOH\n\
+    \\ACKConstr\DC2\DLE\n\
+    \\ETXtag\CAN\SOH \SOH(\rR\ETXtag\DC2'\n\
+    \\SIany_constructor\CAN\STX \SOH(\EOTR\SOanyConstructor\DC2;\n\
+    \\ACKfields\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ACKfields\"c\n\
+    \\ACKBigInt\DC2\DC2\n\
+    \\ETXint\CAN\SOH \SOH(\ETXH\NULR\ETXint\DC2\FS\n\
+    \\tbig_u_int\CAN\STX \SOH(\fH\NULR\abigUInt\DC2\FS\n\
+    \\tbig_n_int\CAN\ETX \SOH(\fH\NULR\abigNIntB\t\n\
+    \\abig_int\"\130\SOH\n\
+    \\SOPlutusDataPair\DC25\n\
+    \\ETXkey\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ETXkey\DC29\n\
+    \\ENQvalue\CAN\STX \SOH(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQvalue\"\183\STX\n\
+    \\n\
+    \PlutusData\DC29\n\
+    \\ACKconstr\CAN\SOH \SOH(\v2\US.utxorpc.v1alpha.cardano.ConstrH\NULR\ACKconstr\DC2:\n\
+    \\ETXmap\CAN\STX \SOH(\v2&.utxorpc.v1alpha.cardano.PlutusDataMapH\NULR\ETXmap\DC2:\n\
+    \\abig_int\CAN\ETX \SOH(\v2\US.utxorpc.v1alpha.cardano.BigIntH\NULR\ACKbigInt\DC2%\n\
+    \\rbounded_bytes\CAN\EOT \SOH(\fH\NULR\fboundedBytes\DC2@\n\
+    \\ENQarray\CAN\ENQ \SOH(\v2(.utxorpc.v1alpha.cardano.PlutusDataArrayH\NULR\ENQarrayB\r\n\
+    \\vplutus_data\"N\n\
+    \\rPlutusDataMap\DC2=\n\
+    \\ENQpairs\CAN\SOH \ETX(\v2'.utxorpc.v1alpha.cardano.PlutusDataPairR\ENQpairs\"L\n\
+    \\SIPlutusDataArray\DC29\n\
+    \\ENQitems\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.cardano.PlutusDataR\ENQitems\"\145\SOH\n\
+    \\ACKScript\DC2?\n\
+    \\ACKnative\CAN\SOH \SOH(\v2%.utxorpc.v1alpha.cardano.NativeScriptH\NULR\ACKnative\DC2\GS\n\
+    \\tplutus_v1\CAN\STX \SOH(\fH\NULR\bplutusV1\DC2\GS\n\
+    \\tplutus_v2\CAN\ETX \SOH(\fH\NULR\bplutusV2B\b\n\
+    \\ACKscript\"\214\SOH\n\
+    \\tMetadatum\DC2\DC2\n\
+    \\ETXint\CAN\SOH \SOH(\ETXH\NULR\ETXint\DC2\SYN\n\
+    \\ENQbytes\CAN\STX \SOH(\fH\NULR\ENQbytes\DC2\DC4\n\
+    \\EOTtext\CAN\ETX \SOH(\tH\NULR\EOTtext\DC2?\n\
+    \\ENQarray\CAN\EOT \SOH(\v2'.utxorpc.v1alpha.cardano.MetadatumArrayH\NULR\ENQarray\DC29\n\
+    \\ETXmap\CAN\ENQ \SOH(\v2%.utxorpc.v1alpha.cardano.MetadatumMapH\NULR\ETXmapB\v\n\
+    \\tmetadatum\"J\n\
+    \\SOMetadatumArray\DC28\n\
+    \\ENQitems\CAN\SOH \ETX(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQitems\"L\n\
+    \\fMetadatumMap\DC2<\n\
+    \\ENQpairs\CAN\SOH \ETX(\v2&.utxorpc.v1alpha.cardano.MetadatumPairR\ENQpairs\"\DEL\n\
+    \\rMetadatumPair\DC24\n\
+    \\ETXkey\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ETXkey\DC28\n\
+    \\ENQvalue\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQvalue\"Z\n\
+    \\bMetadata\DC2\DC4\n\
+    \\ENQlabel\CAN\SOH \SOH(\EOTR\ENQlabel\DC28\n\
+    \\ENQvalue\CAN\STX \SOH(\v2\".utxorpc.v1alpha.cardano.MetadatumR\ENQvalue\"n\n\
+    \\SIStakeCredential\DC2$\n\
+    \\raddr_key_hash\CAN\SOH \SOH(\fH\NULR\vaddrKeyHash\DC2!\n\
+    \\vscript_hash\CAN\STX \SOH(\fH\NULR\n\
+    \scriptHashB\DC2\n\
+    \\DLEstake_credential\"P\n\
+    \\SORationalNumber\DC2\FS\n\
+    \\tnumerator\CAN\SOH \SOH(\ENQR\tnumerator\DC2 \n\
+    \\vdenominator\CAN\STX \SOH(\rR\vdenominator\"`\n\
+    \\ENQRelay\DC2\DC3\n\
+    \\ENQip_v4\CAN\SOH \SOH(\fR\EOTipV4\DC2\DC3\n\
+    \\ENQip_v6\CAN\STX \SOH(\fR\EOTipV6\DC2\EM\n\
+    \\bdns_name\CAN\ETX \SOH(\tR\adnsName\DC2\DC2\n\
+    \\EOTport\CAN\EOT \SOH(\rR\EOTport\"4\n\
+    \\fPoolMetadata\DC2\DLE\n\
+    \\ETXurl\CAN\SOH \SOH(\tR\ETXurl\DC2\DC2\n\
+    \\EOThash\CAN\STX \SOH(\fR\EOThash\"\145\ENQ\n\
+    \\vCertificate\DC2Y\n\
+    \\DC2stake_registration\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialH\NULR\DC1stakeRegistration\DC2]\n\
+    \\DC4stake_deregistration\CAN\STX \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialH\NULR\DC3stakeDeregistration\DC2Y\n\
+    \\DLEstake_delegation\CAN\ETX \SOH(\v2,.utxorpc.v1alpha.cardano.StakeDelegationCertH\NULR\SIstakeDelegation\DC2\\\n\
+    \\DC1pool_registration\CAN\EOT \SOH(\v2-.utxorpc.v1alpha.cardano.PoolRegistrationCertH\NULR\DLEpoolRegistration\DC2V\n\
+    \\SIpool_retirement\CAN\ENQ \SOH(\v2+.utxorpc.v1alpha.cardano.PoolRetirementCertH\NULR\SOpoolRetirement\DC2i\n\
+    \\SYNgenesis_key_delegation\CAN\ACK \SOH(\v21.utxorpc.v1alpha.cardano.GenesisKeyDelegationCertH\NULR\DC4genesisKeyDelegation\DC2=\n\
+    \\bmir_cert\CAN\a \SOH(\v2 .utxorpc.v1alpha.cardano.MirCertH\NULR\amirCertB\r\n\
+    \\vcertificate\"\141\SOH\n\
+    \\DC3StakeDelegationCert\DC2S\n\
+    \\DLEstake_credential\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialR\SIstakeCredential\DC2!\n\
+    \\fpool_keyhash\CAN\STX \SOH(\fR\vpoolKeyhash\"\140\ETX\n\
+    \\DC4PoolRegistrationCert\DC2\SUB\n\
+    \\boperator\CAN\SOH \SOH(\fR\boperator\DC2\US\n\
+    \\vvrf_keyhash\CAN\STX \SOH(\fR\n\
+    \vrfKeyhash\DC2\SYN\n\
+    \\ACKpledge\CAN\ETX \SOH(\EOTR\ACKpledge\DC2\DC2\n\
+    \\EOTcost\CAN\EOT \SOH(\EOTR\EOTcost\DC2?\n\
+    \\ACKmargin\CAN\ENQ \SOH(\v2'.utxorpc.v1alpha.cardano.RationalNumberR\ACKmargin\DC2%\n\
+    \\SOreward_account\CAN\ACK \SOH(\fR\rrewardAccount\DC2\US\n\
+    \\vpool_owners\CAN\a \ETX(\fR\n\
+    \poolOwners\DC26\n\
+    \\ACKrelays\CAN\b \ETX(\v2\RS.utxorpc.v1alpha.cardano.RelayR\ACKrelays\DC2J\n\
+    \\rpool_metadata\CAN\t \SOH(\v2%.utxorpc.v1alpha.cardano.PoolMetadataR\fpoolMetadata\"M\n\
+    \\DC2PoolRetirementCert\DC2!\n\
+    \\fpool_keyhash\CAN\SOH \SOH(\fR\vpoolKeyhash\DC2\DC4\n\
+    \\ENQepoch\CAN\STX \SOH(\EOTR\ENQepoch\"\146\SOH\n\
+    \\CANGenesisKeyDelegationCert\DC2!\n\
+    \\fgenesis_hash\CAN\SOH \SOH(\fR\vgenesisHash\DC22\n\
+    \\NAKgenesis_delegate_hash\CAN\STX \SOH(\fR\DC3genesisDelegateHash\DC2\US\n\
+    \\vvrf_keyhash\CAN\ETX \SOH(\fR\n\
+    \vrfKeyhash\"\DEL\n\
+    \\tMirTarget\DC2S\n\
+    \\DLEstake_credential\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.cardano.StakeCredentialR\SIstakeCredential\DC2\GS\n\
+    \\n\
+    \delta_coin\CAN\STX \SOH(\ETXR\tdeltaCoin\"\146\SOH\n\
+    \\aMirCert\DC26\n\
+    \\EOTfrom\CAN\SOH \SOH(\SO2\".utxorpc.v1alpha.cardano.MirSourceR\EOTfrom\DC22\n\
+    \\STXto\CAN\STX \ETX(\v2\".utxorpc.v1alpha.cardano.MirTargetR\STXto\DC2\ESC\n\
+    \\tother_pot\CAN\ETX \SOH(\EOTR\botherPot\"\223\SOH\n\
+    \\SOAddressPattern\DC2#\n\
+    \\rbyron_address\CAN\SOH \SOH(\fR\fbyronAddress\DC2!\n\
+    \\fpayment_part\CAN\STX \SOH(\fR\vpaymentPart\DC2'\n\
+    \\SIdelegation_part\CAN\ETX \SOH(\fR\SOdelegationPart\DC2*\n\
+    \\DC1payment_is_script\CAN\EOT \SOH(\bR\SIpaymentIsScript\DC20\n\
+    \\DC4delegation_is_script\CAN\ENQ \SOH(\bR\DC2delegationIsScript\"\SO\n\
+    \\fAssetPattern\"\SI\n\
+    \\rOutputPattern\"\SO\n\
+    \\fDatumPattern\"\186\STX\n\
+    \\tTxPattern\DC2G\n\
+    \\n\
+    \any_output\CAN\SOH \SOH(\v2&.utxorpc.v1alpha.cardano.OutputPatternH\NULR\tanyOutput\DC2J\n\
+    \\vany_address\CAN\STX \SOH(\v2'.utxorpc.v1alpha.cardano.AddressPatternH\NULR\n\
+    \anyAddress\DC2D\n\
+    \\tany_asset\CAN\ETX \SOH(\v2%.utxorpc.v1alpha.cardano.AssetPatternH\NULR\banyAsset\DC2D\n\
+    \\tany_datum\CAN\EOT \SOH(\v2%.utxorpc.v1alpha.cardano.DatumPatternH\NULR\banyDatumB\f\n\
+    \\n\
+    \tx_pattern*\162\SOH\n\
+    \\SIRedeemerPurpose\DC2 \n\
+    \\FSREDEEMER_PURPOSE_UNSPECIFIED\DLE\NUL\DC2\SUB\n\
+    \\SYNREDEEMER_PURPOSE_SPEND\DLE\SOH\DC2\EM\n\
+    \\NAKREDEEMER_PURPOSE_MINT\DLE\STX\DC2\EM\n\
+    \\NAKREDEEMER_PURPOSE_CERT\DLE\ETX\DC2\ESC\n\
+    \\ETBREDEEMER_PURPOSE_REWARD\DLE\EOT*Y\n\
+    \\tMirSource\DC2\SUB\n\
+    \\SYNMIR_SOURCE_UNSPECIFIED\DLE\NUL\DC2\ETB\n\
+    \\DC3MIR_SOURCE_RESERVES\DLE\SOH\DC2\ETB\n\
+    \\DC3MIR_SOURCE_TREASURY\DLE\STXB\225\SOH\n\
+    \\ESCcom.utxorpc.v1alpha.cardanoB\fCardanoProtoP\SOHZ6github.com/utxorpc/go-sdk/spec/utxorpc/v1alpha/cardano\162\STX\ETXUVC\170\STX\ETBUtxorpc.V1alpha.Cardano\202\STX\ETBUtxorpc\\V1alpha\\Cardano\226\STX#Utxorpc\\V1alpha\\Cardano\\GPBMetadata\234\STX\EMUtxorpc::V1alpha::CardanoJ\144z\n\
+    \\a\DC2\ENQ\NUL\NUL\224\STX\SOH\n\
+    \\b\n\
+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\STX\NUL \n\
+    \7\n\
+    \\STX\ENQ\NUL\DC2\EOT\ENQ\NUL\v\SOH\SUB+ Purpose of the redeemer in a transaction.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ENQ\NUL\SOH\DC2\ETX\ENQ\ENQ\DC4\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX\ACK\STX#\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX\ACK\STX\RS\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX\ACK!\"\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\SOH\DC2\ETX\a\STX\GS\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\ETX\a\STX\CAN\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\ETX\a\ESC\FS\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\STX\DC2\ETX\b\STX\FS\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\ETX\b\STX\ETB\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\STX\STX\DC2\ETX\b\SUB\ESC\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\ETX\DC2\ETX\t\STX\FS\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\ETX\t\STX\ETB\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\ETX\t\SUB\ESC\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\EOT\DC2\ETX\n\
+    \\STX\RS\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\EOT\SOH\DC2\ETX\n\
+    \\STX\EM\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\EOT\STX\DC2\ETX\n\
+    \\FS\GS\n\
+    \7\n\
+    \\STX\EOT\NUL\DC2\EOT\SO\NUL\DC1\SOH\SUB+ Redeemer information for a Plutus script.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\SO\b\DLE\n\
+    \'\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\SI\STX\RS\"\SUB Purpose of the redeemer.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX\SI\STX\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\SI\DC2\EM\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\SI\FS\GS\n\
+    \8\n\
+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\DLE\STX\ETB\"+ Plutus data associated with the redeemer.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ACK\DC2\ETX\DLE\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\DLE\r\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\DLE\NAK\SYN\n\
+    \G\n\
+    \\STX\EOT\SOH\DC2\EOT\DC4\NUL\EM\SOH\SUB; Represents a transaction input in the Cardano blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX\DC4\b\SI\n\
+    \0\n\
+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX\NAK\STX\DC4\"# Hash of the previous transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\ETX\NAK\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX\NAK\b\SI\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX\NAK\DC2\DC3\n\
+    \?\n\
+    \\EOT\EOT\SOH\STX\SOH\DC2\ETX\SYN\STX\SUB\"2 Index of the output in the previous transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ENQ\DC2\ETX\SYN\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX\SYN\t\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX\SYN\CAN\EM\n\
+    \T\n\
+    \\EOT\EOT\SOH\STX\STX\DC2\ETX\ETB\STX\EM\"G Content of the input represented as output of the related transaction\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ACK\DC2\ETX\ETB\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX\ETB\v\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX\ETB\ETB\CAN\n\
+    \.\n\
+    \\EOT\EOT\SOH\STX\ETX\DC2\ETX\CAN\STX\CAN\"! Redeemer for the Plutus script.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX\CAN\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX\CAN\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX\CAN\SYN\ETB\n\
+    \H\n\
+    \\STX\EOT\STX\DC2\EOT\FS\NUL#\SOH\SUB< Represents a transaction output in the Cardano blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETX\FS\b\DLE\n\
+    \,\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETX\GS\STX\DC4\"\US Address receiving the output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX\GS\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\GS\b\SI\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\GS\DC2\DC3\n\
+    \+\n\
+    \\EOT\EOT\STX\STX\SOH\DC2\ETX\RS\STX\DC2\"\RS Amount of ADA in the output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETX\RS\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX\RS\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX\RS\DLE\DC1\n\
+    \@\n\
+    \\EOT\EOT\STX\STX\STX\DC2\ETX\US\STX!\"3 Additional native (non-ADA) assets in the output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETX\US\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\ACK\DC2\ETX\US\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETX\US\SYN\FS\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETX\US\US \n\
+    \6\n\
+    \\EOT\EOT\STX\STX\ETX\DC2\ETX \STX\ETB\") Plutus data associated with the output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ETX\ACK\DC2\ETX \STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ETX\SOH\DC2\ETX \r\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ETX\ETX\DC2\ETX \NAK\SYN\n\
+    \'\n\
+    \\EOT\EOT\STX\STX\EOT\DC2\ETX!\STX\ETB\"\SUB Hash of the Plutus data.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\EOT\ENQ\DC2\ETX!\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\EOT\SOH\DC2\ETX!\b\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\EOT\ETX\DC2\ETX!\NAK\SYN\n\
+    \1\n\
+    \\EOT\EOT\STX\STX\ENQ\DC2\ETX\"\STX\DC4\"$ Script associated with the output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ENQ\ACK\DC2\ETX\"\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ENQ\SOH\DC2\ETX\"\t\SI\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\ENQ\ETX\DC2\ETX\"\DC2\DC3\n\
+    \B\n\
+    \\STX\EOT\ETX\DC2\EOT&\NUL*\SOH\SUB6 Represents a custom asset in the Cardano blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETX&\b\r\n\
+    \(\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETX'\STX\DC1\"\ESC Name of the custom asset.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETX'\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX'\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX'\SI\DLE\n\
+    \A\n\
+    \\EOT\EOT\ETX\STX\SOH\DC2\ETX(\STX\EM\"4 Quantity of the custom asset in case of an output.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETX(\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETX(\t\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETX(\ETB\CAN\n\
+    \>\n\
+    \\EOT\EOT\ETX\STX\STX\DC2\ETX)\STX\SYN\"1 Quantity of the custom asset in case of a mint.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\ENQ\DC2\ETX)\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETX)\b\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETX)\DC4\NAK\n\
+    \G\n\
+    \\STX\EOT\EOT\DC2\EOT-\NUL0\SOH\SUB; Represents a multi-asset group in the Cardano blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\EOT\SOH\DC2\ETX-\b\DC2\n\
+    \5\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\ETX.\STX\SYN\"( Policy ID governing the custom assets.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\ETX.\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX.\b\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX.\DC4\NAK\n\
+    \%\n\
+    \\EOT\EOT\EOT\STX\SOH\DC2\ETX/\STX\FS\"\CAN List of custom assets.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\EOT\DC2\ETX/\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\ETX/\v\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\ETX/\DC1\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\ETX/\SUB\ESC\n\
+    \@\n\
+    \\STX\EOT\ENQ\DC2\EOT3\NUL6\SOH\SUB4 Represents the validity interval of a transaction.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ENQ\SOH\DC2\ETX3\b\DC2\n\
+    \.\n\
+    \\EOT\EOT\ENQ\STX\NUL\DC2\ETX4\STX\DC3\"! Start of the validity interval.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\ETX4\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\ETX4\t\SO\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\ETX4\DC1\DC2\n\
+    \@\n\
+    \\EOT\EOT\ENQ\STX\SOH\DC2\ETX5\STX\DC1\"3 End of the validity interval (TTL: Time to Live).\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\ETX5\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\ETX5\t\f\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\ETX5\SI\DLE\n\
+    \F\n\
+    \\STX\EOT\ACK\DC2\EOT9\NUL=\SOH\SUB: Represents the collateral information for a transaction.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ACK\SOH\DC2\ETX9\b\DC2\n\
+    \5\n\
+    \\EOT\EOT\ACK\STX\NUL\DC2\ETX:\STX\"\"( Collateral inputs for the transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\ETX:\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ACK\DC2\ETX:\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\ETX:\DC3\GS\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\ETX: !\n\
+    \;\n\
+    \\EOT\EOT\ACK\STX\SOH\DC2\ETX;\STX!\". Collateral return in case of script failure.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\ACK\DC2\ETX;\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\ETX;\v\FS\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\ETX;\US \n\
+    \*\n\
+    \\EOT\EOT\ACK\STX\STX\DC2\ETX<\STX\RS\"\GS Total amount of collateral.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\STX\ENQ\DC2\ETX<\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\ETX<\t\EM\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\ETX<\FS\GS\n\
+    \<\n\
+    \\STX\EOT\a\DC2\EOT@\NULC\SOH\SUB0 Represents a withdrawal from a reward account.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\a\SOH\DC2\ETX@\b\DC2\n\
+    \-\n\
+    \\EOT\EOT\a\STX\NUL\DC2\ETXA\STX\ESC\"  Address of the reward account.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\ETXA\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\ETXA\b\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\ETXA\EM\SUB\n\
+    \'\n\
+    \\EOT\EOT\a\STX\SOH\DC2\ETXB\STX\DC2\"\SUB Amount of ADA withdrawn.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\ETXB\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\SOH\DC2\ETXB\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ETX\DC2\ETXB\DLE\DC1\n\
+    \G\n\
+    \\STX\EOT\b\DC2\EOTF\NULJ\SOH\SUB; Represents a set of witnesses that validate a transaction\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\b\SOH\DC2\ETXF\b\DC2\n\
+    \&\n\
+    \\EOT\EOT\b\STX\NUL\DC2\ETXG\STX'\"\EM List of VKey witnesses.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\EOT\DC2\ETXG\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ACK\DC2\ETXG\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\SOH\DC2\ETXG\ETB\"\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ETX\DC2\ETXG%&\n\
+    \\US\n\
+    \\EOT\EOT\b\STX\SOH\DC2\ETXH\STX\GS\"\DC2 List of scripts.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\EOT\DC2\ETXH\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\ACK\DC2\ETXH\v\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\SOH\DC2\ETXH\DC2\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\SOH\ETX\DC2\ETXH\ESC\FS\n\
+    \L\n\
+    \\EOT\EOT\b\STX\STX\DC2\ETXI\STX(\"? List of Plutus data elements associated with the transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\STX\EOT\DC2\ETXI\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\STX\ACK\DC2\ETXI\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\STX\SOH\DC2\ETXI\SYN#\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\STX\ETX\DC2\ETXI&'\n\
+    \H\n\
+    \\STX\EOT\t\DC2\EOTM\NULP\SOH\SUB< Auxiliary data not directly tied to the validation process\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\t\SOH\DC2\ETXM\b\SI\n\
+    \3\n\
+    \\EOT\EOT\t\STX\NUL\DC2\ETXN\STX!\"& List of auxiliary metadata elements.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\EOT\DC2\ETXN\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ACK\DC2\ETXN\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\SOH\DC2\ETXN\DC4\FS\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ETX\DC2\ETXN\US \n\
+    \)\n\
+    \\EOT\EOT\t\STX\SOH\DC2\ETXO\STX\RS\"\FS List of auxiliary scripts.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\EOT\DC2\ETXO\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ACK\DC2\ETXO\v\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\SOH\DC2\ETXO\DC2\EM\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ETX\DC2\ETXO\FS\GS\n\
+    \A\n\
+    \\STX\EOT\n\
+    \\DC2\EOTS\NULa\SOH\SUB5 Represents a transaction in the Cardano blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\n\
+    \\SOH\DC2\ETXS\b\n\
+    \\n\
+    \)\n\
+    \\EOT\EOT\n\
+    \\STX\NUL\DC2\ETXT\STX\RS\"\FS List of transaction inputs\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\EOT\DC2\ETXT\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ACK\DC2\ETXT\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\SOH\DC2\ETXT\DC3\EM\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ETX\DC2\ETXT\FS\GS\n\
+    \*\n\
+    \\EOT\EOT\n\
+    \\STX\SOH\DC2\ETXU\STX \"\GS List of transaction outputs\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\EOT\DC2\ETXU\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ACK\DC2\ETXU\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\SOH\DC2\ETXU\DC4\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ETX\DC2\ETXU\RS\US\n\
+    \#\n\
+    \\EOT\EOT\n\
+    \\STX\STX\DC2\ETXV\STX(\"\SYN List of certificates\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\EOT\DC2\ETXV\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\ACK\DC2\ETXV\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\SOH\DC2\ETXV\ETB#\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\ETX\DC2\ETXV&'\n\
+    \\"\n\
+    \\EOT\EOT\n\
+    \\STX\ETX\DC2\ETXW\STX&\"\NAK List of withdrawals\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ETX\EOT\DC2\ETXW\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ETX\ACK\DC2\ETXW\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ETX\SOH\DC2\ETXW\SYN!\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ETX\ETX\DC2\ETXW$%\n\
+    \+\n\
+    \\EOT\EOT\n\
+    \\STX\EOT\DC2\ETXX\STX\US\"\RS List of minted custom assets\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\EOT\EOT\DC2\ETXX\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\EOT\ACK\DC2\ETXX\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\EOT\SOH\DC2\ETXX\SYN\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\EOT\ETX\DC2\ETXX\GS\RS\n\
+    \'\n\
+    \\EOT\EOT\n\
+    \\STX\ENQ\DC2\ETXY\STX(\"\SUB List of reference inputs\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ENQ\EOT\DC2\ETXY\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ENQ\ACK\DC2\ETXY\v\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ENQ\SOH\DC2\ETXY\DC3#\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ENQ\ETX\DC2\ETXY&'\n\
+    \5\n\
+    \\EOT\EOT\n\
+    \\STX\ACK\DC2\ETXZ\STX\ESC\"( Witnesses that validte the transaction\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ACK\ACK\DC2\ETXZ\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ACK\SOH\DC2\ETXZ\r\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\ACK\ETX\DC2\ETXZ\EM\SUB\n\
+    \?\n\
+    \\EOT\EOT\n\
+    \\STX\a\DC2\ETX[\STX\FS\"2 Collateral details in case of failed transaction\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\a\ACK\DC2\ETX[\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\a\SOH\DC2\ETX[\r\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\a\ETX\DC2\ETX[\SUB\ESC\n\
+    \%\n\
+    \\EOT\EOT\n\
+    \\STX\b\DC2\ETX\\\STX\DC1\"\CAN Transaction fee in ADA\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\b\ENQ\DC2\ETX\\\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\b\SOH\DC2\ETX\\\t\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\b\ETX\DC2\ETX\\\SI\DLE\n\
+    \3\n\
+    \\EOT\EOT\n\
+    \\STX\t\DC2\ETX]\STX\ESC\"& Validity interval of the transaction\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\t\ACK\DC2\ETX]\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\t\SOH\DC2\ETX]\r\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\t\ETX\DC2\ETX]\CAN\SUB\n\
+    \E\n\
+    \\EOT\EOT\n\
+    \\STX\n\
+    \\DC2\ETX^\STX\ETB\"8 Flag indicating whether the transaction was successful\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\n\
+    \\ENQ\DC2\ETX^\STX\ACK\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\n\
+    \\SOH\DC2\ETX^\a\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\n\
+    \\ETX\DC2\ETX^\DC4\SYN\n\
+    \I\n\
+    \\EOT\EOT\n\
+    \\STX\v\DC2\ETX_\STX\EM\"< Auxiliary data not directly tied to the validation process\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\v\ACK\DC2\ETX_\STX\t\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\v\SOH\DC2\ETX_\n\
+    \\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\v\ETX\DC2\ETX_\SYN\CAN\n\
+    \E\n\
+    \\EOT\EOT\n\
+    \\STX\f\DC2\ETX`\STX\DC2\"8 Hash of the transaction that serves as main identifier\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\f\ENQ\DC2\ETX`\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\f\SOH\DC2\ETX`\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\f\ETX\DC2\ETX`\SI\DC1\n\
+    \:\n\
+    \\STX\EOT\v\DC2\EOTd\NULh\SOH\SUB. Contains the header information for a block.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\v\SOH\DC2\ETXd\b\DC3\n\
+    \\ESC\n\
+    \\EOT\EOT\v\STX\NUL\DC2\ETXe\STX\DC2\"\SO Slot number.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ENQ\DC2\ETXe\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\SOH\DC2\ETXe\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ETX\DC2\ETXe\DLE\DC1\n\
+    \\SUB\n\
+    \\EOT\EOT\v\STX\SOH\DC2\ETXf\STX\DC1\"\r Block hash.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\ETXf\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\SOH\DC2\ETXf\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\SOH\ETX\DC2\ETXf\SI\DLE\n\
+    \\FS\n\
+    \\EOT\EOT\v\STX\STX\DC2\ETXg\STX\DC4\"\SI Block height.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\STX\ENQ\DC2\ETXg\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\STX\SOH\DC2\ETXg\t\SI\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\STX\ETX\DC2\ETXg\DC2\DC3\n\
+    \8\n\
+    \\STX\EOT\f\DC2\EOTk\NULm\SOH\SUB, Contains the transaction data for a block.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\f\SOH\DC2\ETXk\b\DC1\n\
+    \$\n\
+    \\EOT\EOT\f\STX\NUL\DC2\ETXl\STX\NAK\"\ETB List of transactions.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\EOT\DC2\ETXl\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\ACK\DC2\ETXl\v\r\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\SOH\DC2\ETXl\SO\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\f\STX\NUL\ETX\DC2\ETXl\DC3\DC4\n\
+    \E\n\
+    \\STX\EOT\r\DC2\EOTp\NULs\SOH\SUB9 Represents a complete block, including header and body.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\r\SOH\DC2\ETXp\b\r\n\
+    \\FS\n\
+    \\EOT\EOT\r\STX\NUL\DC2\ETXq\STX\EM\"\SI Block header.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\ACK\DC2\ETXq\STX\r\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\SOH\DC2\ETXq\SO\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\NUL\ETX\DC2\ETXq\ETB\CAN\n\
+    \\SUB\n\
+    \\EOT\EOT\r\STX\SOH\DC2\ETXr\STX\NAK\"\r Block body.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\SOH\ACK\DC2\ETXr\STX\v\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\SOH\SOH\DC2\ETXr\f\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\r\STX\SOH\ETX\DC2\ETXr\DC3\DC4\n\
+    \C\n\
+    \\STX\EOT\SO\DC2\EOTv\NULy\SOH\SUB7 Represents a VKey witness used to sign a transaction.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SO\SOH\DC2\ETXv\b\DC3\n\
+    \ \n\
+    \\EOT\EOT\SO\STX\NUL\DC2\ETXw\STX\DC1\"\DC3 Verification key.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\NUL\ENQ\DC2\ETXw\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\NUL\SOH\DC2\ETXw\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\NUL\ETX\DC2\ETXw\SI\DLE\n\
+    \D\n\
+    \\EOT\EOT\SO\STX\SOH\DC2\ETXx\STX\SYN\"7 Signature generated using the associated private key.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\SOH\ENQ\DC2\ETXx\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\SOH\SOH\DC2\ETXx\b\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\SO\STX\SOH\ETX\DC2\ETXx\DC4\NAK\n\
+    \5\n\
+    \\STX\EOT\SI\DC2\ENQ|\NUL\133\SOH\SOH\SUB( Represents a native script in Cardano.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SI\SOH\DC2\ETX|\b\DC4\n\
+    \\r\n\
+    \\EOT\EOT\SI\b\NUL\DC2\ENQ}\STX\132\SOH\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\SI\b\NUL\SOH\DC2\ETX}\b\NAK\n\
+    \3\n\
+    \\EOT\EOT\SI\STX\NUL\DC2\ETX~\EOT\FS\"& Script based on an address key hash.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\NUL\ENQ\DC2\ETX~\EOT\t\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\NUL\SOH\DC2\ETX~\n\
+    \\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\NUL\ETX\DC2\ETX~\SUB\ESC\n\
+    \G\n\
+    \\EOT\EOT\SI\STX\SOH\DC2\ETX\DEL\EOT$\": Script that requires all nested scripts to be satisfied.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\SOH\ACK\DC2\ETX\DEL\EOT\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\SOH\SOH\DC2\ETX\DEL\NAK\US\n\
+    \\f\n\
+    \\ENQ\EOT\SI\STX\SOH\ETX\DC2\ETX\DEL\"#\n\
+    \O\n\
+    \\EOT\EOT\SI\STX\STX\DC2\EOT\128\SOH\EOT$\"A Script that requires any of the nested scripts to be satisfied.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\STX\ACK\DC2\EOT\128\SOH\EOT\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\STX\SOH\DC2\EOT\128\SOH\NAK\US\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\STX\ETX\DC2\EOT\128\SOH\"#\n\
+    \O\n\
+    \\EOT\EOT\SI\STX\ETX\DC2\EOT\129\SOH\EOT!\"A Script that requires k out of n nested scripts to be satisfied.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ETX\ACK\DC2\EOT\129\SOH\EOT\SO\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ETX\SOH\DC2\EOT\129\SOH\SI\FS\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ETX\ETX\DC2\EOT\129\SOH\US \n\
+    \?\n\
+    \\EOT\EOT\SI\STX\EOT\DC2\EOT\130\SOH\EOT\RS\"1 Slot number before which the script is invalid.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\EOT\ENQ\DC2\EOT\130\SOH\EOT\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\EOT\SOH\DC2\EOT\130\SOH\v\EM\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\EOT\ETX\DC2\EOT\130\SOH\FS\GS\n\
+    \>\n\
+    \\EOT\EOT\SI\STX\ENQ\DC2\EOT\131\SOH\EOT!\"0 Slot number after which the script is invalid.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ENQ\ENQ\DC2\EOT\131\SOH\EOT\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ENQ\SOH\DC2\EOT\131\SOH\v\FS\n\
+    \\r\n\
+    \\ENQ\EOT\SI\STX\ENQ\ETX\DC2\EOT\131\SOH\US \n\
+    \4\n\
+    \\STX\EOT\DLE\DC2\ACK\136\SOH\NUL\138\SOH\SOH\SUB& Represents a list of native scripts.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\DLE\SOH\DC2\EOT\136\SOH\b\CAN\n\
+    \'\n\
+    \\EOT\EOT\DLE\STX\NUL\DC2\EOT\137\SOH\STX\"\"\EM List of native scripts.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DLE\STX\NUL\EOT\DC2\EOT\137\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DLE\STX\NUL\ACK\DC2\EOT\137\SOH\v\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\DLE\STX\NUL\SOH\DC2\EOT\137\SOH\CAN\GS\n\
+    \\r\n\
+    \\ENQ\EOT\DLE\STX\NUL\ETX\DC2\EOT\137\SOH !\n\
+    \8\n\
+    \\STX\EOT\DC1\DC2\ACK\141\SOH\NUL\144\SOH\SOH\SUB* Represents a \"k out of n\" native script.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\DC1\SOH\DC2\EOT\141\SOH\b\DC2\n\
+    \9\n\
+    \\EOT\EOT\DC1\STX\NUL\DC2\EOT\142\SOH\STX\SI\"+ The number of required satisfied scripts.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\NUL\ENQ\DC2\EOT\142\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\NUL\SOH\DC2\EOT\142\SOH\t\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\NUL\ETX\DC2\EOT\142\SOH\r\SO\n\
+    \'\n\
+    \\EOT\EOT\DC1\STX\SOH\DC2\EOT\143\SOH\STX$\"\EM List of native scripts.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\SOH\EOT\DC2\EOT\143\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\SOH\ACK\DC2\EOT\143\SOH\v\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\SOH\SOH\DC2\EOT\143\SOH\CAN\US\n\
+    \\r\n\
+    \\ENQ\EOT\DC1\STX\SOH\ETX\DC2\EOT\143\SOH\"#\n\
+    \D\n\
+    \\STX\EOT\DC2\DC2\ACK\147\SOH\NUL\151\SOH\SOH\SUB6 Represents a constructor for Plutus data in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\DC2\SOH\DC2\EOT\147\SOH\b\SO\n\
+    \\f\n\
+    \\EOT\EOT\DC2\STX\NUL\DC2\EOT\148\SOH\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\NUL\ENQ\DC2\EOT\148\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\NUL\SOH\DC2\EOT\148\SOH\t\f\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\NUL\ETX\DC2\EOT\148\SOH\SI\DLE\n\
+    \\f\n\
+    \\EOT\EOT\DC2\STX\SOH\DC2\EOT\149\SOH\STX\GS\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\SOH\ENQ\DC2\EOT\149\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\SOH\SOH\DC2\EOT\149\SOH\t\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\SOH\ETX\DC2\EOT\149\SOH\ESC\FS\n\
+    \\f\n\
+    \\EOT\EOT\DC2\STX\STX\DC2\EOT\150\SOH\STX!\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\STX\EOT\DC2\EOT\150\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\STX\ACK\DC2\EOT\150\SOH\v\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\STX\SOH\DC2\EOT\150\SOH\SYN\FS\n\
+    \\r\n\
+    \\ENQ\EOT\DC2\STX\STX\ETX\DC2\EOT\150\SOH\US \n\
+    \D\n\
+    \\STX\EOT\DC3\DC2\ACK\154\SOH\NUL\160\SOH\SOH\SUB6 Represents a big integer for Plutus data in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\DC3\SOH\DC2\EOT\154\SOH\b\SO\n\
+    \\SO\n\
+    \\EOT\EOT\DC3\b\NUL\DC2\ACK\155\SOH\STX\159\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\b\NUL\SOH\DC2\EOT\155\SOH\b\SI\n\
+    \\f\n\
+    \\EOT\EOT\DC3\STX\NUL\DC2\EOT\156\SOH\EOT\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\NUL\ENQ\DC2\EOT\156\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\NUL\SOH\DC2\EOT\156\SOH\n\
+    \\r\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\NUL\ETX\DC2\EOT\156\SOH\DLE\DC1\n\
+    \\f\n\
+    \\EOT\EOT\DC3\STX\SOH\DC2\EOT\157\SOH\EOT\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\SOH\ENQ\DC2\EOT\157\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\SOH\SOH\DC2\EOT\157\SOH\n\
+    \\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\SOH\ETX\DC2\EOT\157\SOH\SYN\ETB\n\
+    \\f\n\
+    \\EOT\EOT\DC3\STX\STX\DC2\EOT\158\SOH\EOT\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\STX\ENQ\DC2\EOT\158\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\STX\SOH\DC2\EOT\158\SOH\n\
+    \\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\DC3\STX\STX\ETX\DC2\EOT\158\SOH\SYN\ETB\n\
+    \G\n\
+    \\STX\EOT\DC4\DC2\ACK\163\SOH\NUL\166\SOH\SOH\SUB9 Represents a key-value pair for Plutus data in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\DC4\SOH\DC2\EOT\163\SOH\b\SYN\n\
+    \ \n\
+    \\EOT\EOT\DC4\STX\NUL\DC2\EOT\164\SOH\STX\NAK\"\DC2 Key of the pair.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\NUL\ACK\DC2\EOT\164\SOH\STX\f\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\NUL\SOH\DC2\EOT\164\SOH\r\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\NUL\ETX\DC2\EOT\164\SOH\DC3\DC4\n\
+    \\"\n\
+    \\EOT\EOT\DC4\STX\SOH\DC2\EOT\165\SOH\STX\ETB\"\DC4 Value of the pair.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\SOH\ACK\DC2\EOT\165\SOH\STX\f\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\SOH\SOH\DC2\EOT\165\SOH\r\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\DC4\STX\SOH\ETX\DC2\EOT\165\SOH\NAK\SYN\n\
+    \9\n\
+    \\STX\EOT\NAK\DC2\ACK\169\SOH\NUL\177\SOH\SOH\SUB+ Represents a Plutus data item in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\NAK\SOH\DC2\EOT\169\SOH\b\DC2\n\
+    \\SO\n\
+    \\EOT\EOT\NAK\b\NUL\DC2\ACK\170\SOH\STX\176\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\b\NUL\SOH\DC2\EOT\170\SOH\b\DC3\n\
+    \\FS\n\
+    \\EOT\EOT\NAK\STX\NUL\DC2\EOT\171\SOH\EOT\SYN\"\SO Constructor.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\NUL\ACK\DC2\EOT\171\SOH\EOT\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\NUL\SOH\DC2\EOT\171\SOH\v\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\NUL\ETX\DC2\EOT\171\SOH\DC4\NAK\n\
+    \#\n\
+    \\EOT\EOT\NAK\STX\SOH\DC2\EOT\172\SOH\EOT\SUB\"\NAK Map of Plutus data.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\SOH\ACK\DC2\EOT\172\SOH\EOT\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\SOH\SOH\DC2\EOT\172\SOH\DC2\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\SOH\ETX\DC2\EOT\172\SOH\CAN\EM\n\
+    \\FS\n\
+    \\EOT\EOT\NAK\STX\STX\DC2\EOT\173\SOH\EOT\ETB\"\SO Big integer.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\STX\ACK\DC2\EOT\173\SOH\EOT\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\STX\SOH\DC2\EOT\173\SOH\v\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\STX\ETX\DC2\EOT\173\SOH\NAK\SYN\n\
+    \\RS\n\
+    \\EOT\EOT\NAK\STX\ETX\DC2\EOT\174\SOH\EOT\FS\"\DLE Bounded bytes.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\ETX\ENQ\DC2\EOT\174\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\ETX\SOH\DC2\EOT\174\SOH\n\
+    \\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\ETX\ETX\DC2\EOT\174\SOH\SUB\ESC\n\
+    \%\n\
+    \\EOT\EOT\NAK\STX\EOT\DC2\EOT\175\SOH\EOT\RS\"\ETB Array of Plutus data.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\EOT\ACK\DC2\EOT\175\SOH\EOT\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\EOT\SOH\DC2\EOT\175\SOH\DC4\EM\n\
+    \\r\n\
+    \\ENQ\EOT\NAK\STX\EOT\ETX\DC2\EOT\175\SOH\FS\GS\n\
+    \;\n\
+    \\STX\EOT\SYN\DC2\ACK\180\SOH\NUL\182\SOH\SOH\SUB- Represents a map of Plutus data in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\SYN\SOH\DC2\EOT\180\SOH\b\NAK\n\
+    \(\n\
+    \\EOT\EOT\SYN\STX\NUL\DC2\EOT\181\SOH\STX$\"\SUB List of key-value pairs.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SYN\STX\NUL\EOT\DC2\EOT\181\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SYN\STX\NUL\ACK\DC2\EOT\181\SOH\v\EM\n\
+    \\r\n\
+    \\ENQ\EOT\SYN\STX\NUL\SOH\DC2\EOT\181\SOH\SUB\US\n\
+    \\r\n\
+    \\ENQ\EOT\SYN\STX\NUL\ETX\DC2\EOT\181\SOH\"#\n\
+    \>\n\
+    \\STX\EOT\ETB\DC2\ACK\185\SOH\NUL\187\SOH\SOH\SUB0 Represents an array of Plutus data in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\ETB\SOH\DC2\EOT\185\SOH\b\ETB\n\
+    \*\n\
+    \\EOT\EOT\ETB\STX\NUL\DC2\EOT\186\SOH\STX \"\FS List of Plutus data items.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\ETB\STX\NUL\EOT\DC2\EOT\186\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\ETB\STX\NUL\ACK\DC2\EOT\186\SOH\v\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\ETB\STX\NUL\SOH\DC2\EOT\186\SOH\SYN\ESC\n\
+    \\r\n\
+    \\ENQ\EOT\ETB\STX\NUL\ETX\DC2\EOT\186\SOH\RS\US\n\
+    \/\n\
+    \\STX\EOT\CAN\DC2\ACK\190\SOH\NUL\196\SOH\SOH\SUB! Represents a script in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\CAN\SOH\DC2\EOT\190\SOH\b\SO\n\
+    \\SO\n\
+    \\EOT\EOT\CAN\b\NUL\DC2\ACK\191\SOH\STX\195\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\b\NUL\SOH\DC2\EOT\191\SOH\b\SO\n\
+    \\RS\n\
+    \\EOT\EOT\CAN\STX\NUL\DC2\EOT\192\SOH\EOT\FS\"\DLE Native script.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\NUL\ACK\DC2\EOT\192\SOH\EOT\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\NUL\SOH\DC2\EOT\192\SOH\DC1\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\NUL\ETX\DC2\EOT\192\SOH\SUB\ESC\n\
+    \!\n\
+    \\EOT\EOT\CAN\STX\SOH\DC2\EOT\193\SOH\EOT\CAN\"\DC3 Plutus V1 script.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\SOH\ENQ\DC2\EOT\193\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\SOH\SOH\DC2\EOT\193\SOH\n\
+    \\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\SOH\ETX\DC2\EOT\193\SOH\SYN\ETB\n\
+    \!\n\
+    \\EOT\EOT\CAN\STX\STX\DC2\EOT\194\SOH\EOT\CAN\"\DC3 Plutus V2 script.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\STX\ENQ\DC2\EOT\194\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\STX\SOH\DC2\EOT\194\SOH\n\
+    \\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\CAN\STX\STX\ETX\DC2\EOT\194\SOH\SYN\ETB\n\
+    \\f\n\
+    \\STX\EOT\EM\DC2\ACK\198\SOH\NUL\206\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\EM\SOH\DC2\EOT\198\SOH\b\DC1\n\
+    \\SO\n\
+    \\EOT\EOT\EM\b\NUL\DC2\ACK\199\SOH\STX\205\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\EM\b\NUL\SOH\DC2\EOT\199\SOH\b\DC1\n\
+    \\f\n\
+    \\EOT\EOT\EM\STX\NUL\DC2\EOT\200\SOH\EOT\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\NUL\ENQ\DC2\EOT\200\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\NUL\SOH\DC2\EOT\200\SOH\n\
+    \\r\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\NUL\ETX\DC2\EOT\200\SOH\DLE\DC1\n\
+    \\f\n\
+    \\EOT\EOT\EM\STX\SOH\DC2\EOT\201\SOH\EOT\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\SOH\ENQ\DC2\EOT\201\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\SOH\SOH\DC2\EOT\201\SOH\n\
+    \\SI\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\SOH\ETX\DC2\EOT\201\SOH\DC2\DC3\n\
+    \\f\n\
+    \\EOT\EOT\EM\STX\STX\DC2\EOT\202\SOH\EOT\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\STX\ENQ\DC2\EOT\202\SOH\EOT\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\STX\SOH\DC2\EOT\202\SOH\v\SI\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\STX\ETX\DC2\EOT\202\SOH\DC2\DC3\n\
+    \\f\n\
+    \\EOT\EOT\EM\STX\ETX\DC2\EOT\203\SOH\EOT\GS\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\ETX\ACK\DC2\EOT\203\SOH\EOT\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\ETX\SOH\DC2\EOT\203\SOH\DC3\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\ETX\ETX\DC2\EOT\203\SOH\ESC\FS\n\
+    \\f\n\
+    \\EOT\EOT\EM\STX\EOT\DC2\EOT\204\SOH\EOT\EM\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\EOT\ACK\DC2\EOT\204\SOH\EOT\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\EOT\SOH\DC2\EOT\204\SOH\DC1\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\EM\STX\EOT\ETX\DC2\EOT\204\SOH\ETB\CAN\n\
+    \\f\n\
+    \\STX\EOT\SUB\DC2\ACK\208\SOH\NUL\210\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\SUB\SOH\DC2\EOT\208\SOH\b\SYN\n\
+    \\f\n\
+    \\EOT\EOT\SUB\STX\NUL\DC2\EOT\209\SOH\STX\US\n\
+    \\r\n\
+    \\ENQ\EOT\SUB\STX\NUL\EOT\DC2\EOT\209\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\SUB\STX\NUL\ACK\DC2\EOT\209\SOH\v\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\SUB\STX\NUL\SOH\DC2\EOT\209\SOH\NAK\SUB\n\
+    \\r\n\
+    \\ENQ\EOT\SUB\STX\NUL\ETX\DC2\EOT\209\SOH\GS\RS\n\
+    \\f\n\
+    \\STX\EOT\ESC\DC2\ACK\212\SOH\NUL\214\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\ESC\SOH\DC2\EOT\212\SOH\b\DC4\n\
+    \\f\n\
+    \\EOT\EOT\ESC\STX\NUL\DC2\EOT\213\SOH\STX#\n\
+    \\r\n\
+    \\ENQ\EOT\ESC\STX\NUL\EOT\DC2\EOT\213\SOH\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\ESC\STX\NUL\ACK\DC2\EOT\213\SOH\v\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\ESC\STX\NUL\SOH\DC2\EOT\213\SOH\EM\RS\n\
+    \\r\n\
+    \\ENQ\EOT\ESC\STX\NUL\ETX\DC2\EOT\213\SOH!\"\n\
+    \\f\n\
+    \\STX\EOT\FS\DC2\ACK\216\SOH\NUL\219\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\FS\SOH\DC2\EOT\216\SOH\b\NAK\n\
+    \\f\n\
+    \\EOT\EOT\FS\STX\NUL\DC2\EOT\217\SOH\STX\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\NUL\ACK\DC2\EOT\217\SOH\STX\v\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\NUL\SOH\DC2\EOT\217\SOH\f\SI\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\NUL\ETX\DC2\EOT\217\SOH\DC2\DC3\n\
+    \\f\n\
+    \\EOT\EOT\FS\STX\SOH\DC2\EOT\218\SOH\STX\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\SOH\ACK\DC2\EOT\218\SOH\STX\v\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\SOH\SOH\DC2\EOT\218\SOH\f\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\FS\STX\SOH\ETX\DC2\EOT\218\SOH\DC4\NAK\n\
+    \\f\n\
+    \\STX\EOT\GS\DC2\ACK\221\SOH\NUL\224\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\GS\SOH\DC2\EOT\221\SOH\b\DLE\n\
+    \\f\n\
+    \\EOT\EOT\GS\STX\NUL\DC2\EOT\222\SOH\STX\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\NUL\ENQ\DC2\EOT\222\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\NUL\SOH\DC2\EOT\222\SOH\t\SO\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\NUL\ETX\DC2\EOT\222\SOH\DC1\DC2\n\
+    \\f\n\
+    \\EOT\EOT\GS\STX\SOH\DC2\EOT\223\SOH\STX\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\SOH\ACK\DC2\EOT\223\SOH\STX\v\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\SOH\SOH\DC2\EOT\223\SOH\f\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\GS\STX\SOH\ETX\DC2\EOT\223\SOH\DC4\NAK\n\
+    \9\n\
+    \\STX\EOT\RS\DC2\ACK\227\SOH\NUL\232\SOH\SOH\SUB+ Represents a stake credential in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\RS\SOH\DC2\EOT\227\SOH\b\ETB\n\
+    \\SO\n\
+    \\EOT\EOT\RS\b\NUL\DC2\ACK\228\SOH\STX\231\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\RS\b\NUL\SOH\DC2\EOT\228\SOH\b\CAN\n\
+    \!\n\
+    \\EOT\EOT\RS\STX\NUL\DC2\EOT\229\SOH\EOT\FS\"\DC3 Address key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\NUL\ENQ\DC2\EOT\229\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\NUL\SOH\DC2\EOT\229\SOH\n\
+    \\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\NUL\ETX\DC2\EOT\229\SOH\SUB\ESC\n\
+    \\FS\n\
+    \\EOT\EOT\RS\STX\SOH\DC2\EOT\230\SOH\EOT\SUB\"\SO Script hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\SOH\ENQ\DC2\EOT\230\SOH\EOT\t\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\SOH\SOH\DC2\EOT\230\SOH\n\
+    \\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\RS\STX\SOH\ETX\DC2\EOT\230\SOH\CAN\EM\n\
+    \;\n\
+    \\STX\EOT\US\DC2\ACK\235\SOH\NUL\238\SOH\SOH\SUB- Represents a rational number as a fraction.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\US\SOH\DC2\EOT\235\SOH\b\SYN\n\
+    \\f\n\
+    \\EOT\EOT\US\STX\NUL\DC2\EOT\236\SOH\STX\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\NUL\ENQ\DC2\EOT\236\SOH\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\NUL\SOH\DC2\EOT\236\SOH\b\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\NUL\ETX\DC2\EOT\236\SOH\DC4\NAK\n\
+    \\f\n\
+    \\EOT\EOT\US\STX\SOH\DC2\EOT\237\SOH\STX\EM\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\SOH\ENQ\DC2\EOT\237\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\SOH\SOH\DC2\EOT\237\SOH\t\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\US\STX\SOH\ETX\DC2\EOT\237\SOH\ETB\CAN\n\
+    \.\n\
+    \\STX\EOT \DC2\ACK\241\SOH\NUL\246\SOH\SOH\SUB  Represents a relay in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT \SOH\DC2\EOT\241\SOH\b\r\n\
+    \\f\n\
+    \\EOT\EOT \STX\NUL\DC2\EOT\242\SOH\STX\DC2\n\
+    \\r\n\
+    \\ENQ\EOT \STX\NUL\ENQ\DC2\EOT\242\SOH\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT \STX\NUL\SOH\DC2\EOT\242\SOH\b\r\n\
+    \\r\n\
+    \\ENQ\EOT \STX\NUL\ETX\DC2\EOT\242\SOH\DLE\DC1\n\
+    \\f\n\
+    \\EOT\EOT \STX\SOH\DC2\EOT\243\SOH\STX\DC2\n\
+    \\r\n\
+    \\ENQ\EOT \STX\SOH\ENQ\DC2\EOT\243\SOH\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT \STX\SOH\SOH\DC2\EOT\243\SOH\b\r\n\
+    \\r\n\
+    \\ENQ\EOT \STX\SOH\ETX\DC2\EOT\243\SOH\DLE\DC1\n\
+    \\f\n\
+    \\EOT\EOT \STX\STX\DC2\EOT\244\SOH\STX\SYN\n\
+    \\r\n\
+    \\ENQ\EOT \STX\STX\ENQ\DC2\EOT\244\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT \STX\STX\SOH\DC2\EOT\244\SOH\t\DC1\n\
+    \\r\n\
+    \\ENQ\EOT \STX\STX\ETX\DC2\EOT\244\SOH\DC4\NAK\n\
+    \\f\n\
+    \\EOT\EOT \STX\ETX\DC2\EOT\245\SOH\STX\DC2\n\
+    \\r\n\
+    \\ENQ\EOT \STX\ETX\ENQ\DC2\EOT\245\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT \STX\ETX\SOH\DC2\EOT\245\SOH\t\r\n\
+    \\r\n\
+    \\ENQ\EOT \STX\ETX\ETX\DC2\EOT\245\SOH\DLE\DC1\n\
+    \4\n\
+    \\STX\EOT!\DC2\ACK\249\SOH\NUL\252\SOH\SOH\SUB& Represents pool metadata in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT!\SOH\DC2\EOT\249\SOH\b\DC4\n\
+    \\f\n\
+    \\EOT\EOT!\STX\NUL\DC2\EOT\250\SOH\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\NUL\ENQ\DC2\EOT\250\SOH\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\NUL\SOH\DC2\EOT\250\SOH\t\f\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\NUL\ETX\DC2\EOT\250\SOH\SI\DLE\n\
+    \\f\n\
+    \\EOT\EOT!\STX\SOH\DC2\EOT\251\SOH\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\SOH\ENQ\DC2\EOT\251\SOH\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\SOH\SOH\DC2\EOT\251\SOH\b\f\n\
+    \\r\n\
+    \\ENQ\EOT!\STX\SOH\ETX\DC2\EOT\251\SOH\SI\DLE\n\
+    \4\n\
+    \\STX\EOT\"\DC2\ACK\255\SOH\NUL\137\STX\SOH\SUB& Represents a certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\"\SOH\DC2\EOT\255\SOH\b\DC3\n\
+    \\SO\n\
+    \\EOT\EOT\"\b\NUL\DC2\ACK\128\STX\STX\136\STX\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\"\b\NUL\SOH\DC2\EOT\128\STX\b\DC3\n\
+    \/\n\
+    \\EOT\EOT\"\STX\NUL\DC2\EOT\129\STX\EOT+\"! Stake registration certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\NUL\ACK\DC2\EOT\129\STX\EOT\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\NUL\SOH\DC2\EOT\129\STX\DC4&\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\NUL\ETX\DC2\EOT\129\STX)*\n\
+    \1\n\
+    \\EOT\EOT\"\STX\SOH\DC2\EOT\130\STX\EOT-\"# Stake deregistration certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\SOH\ACK\DC2\EOT\130\STX\EOT\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\SOH\SOH\DC2\EOT\130\STX\DC4(\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\SOH\ETX\DC2\EOT\130\STX+,\n\
+    \-\n\
+    \\EOT\EOT\"\STX\STX\DC2\EOT\131\STX\EOT-\"\US Stake delegation certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\STX\ACK\DC2\EOT\131\STX\EOT\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\STX\SOH\DC2\EOT\131\STX\CAN(\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\STX\ETX\DC2\EOT\131\STX+,\n\
+    \.\n\
+    \\EOT\EOT\"\STX\ETX\DC2\EOT\132\STX\EOT/\"  Pool registration certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ETX\ACK\DC2\EOT\132\STX\EOT\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ETX\SOH\DC2\EOT\132\STX\EM*\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ETX\ETX\DC2\EOT\132\STX-.\n\
+    \,\n\
+    \\EOT\EOT\"\STX\EOT\DC2\EOT\133\STX\EOT+\"\RS Pool retirement certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\EOT\ACK\DC2\EOT\133\STX\EOT\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\EOT\SOH\DC2\EOT\133\STX\ETB&\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\EOT\ETX\DC2\EOT\133\STX)*\n\
+    \3\n\
+    \\EOT\EOT\"\STX\ENQ\DC2\EOT\134\STX\EOT8\"% Genesis key delegation certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ENQ\ACK\DC2\EOT\134\STX\EOT\FS\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ENQ\SOH\DC2\EOT\134\STX\GS3\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ENQ\ETX\DC2\EOT\134\STX67\n\
+    \7\n\
+    \\EOT\EOT\"\STX\ACK\DC2\EOT\135\STX\EOT\EM\") Move instantaneous rewards certificate.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ACK\ACK\DC2\EOT\135\STX\EOT\v\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ACK\SOH\DC2\EOT\135\STX\f\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\"\STX\ACK\ETX\DC2\EOT\135\STX\ETB\CAN\n\
+    \E\n\
+    \\STX\EOT#\DC2\ACK\140\STX\NUL\143\STX\SOH\SUB7 Represents a stake delegation certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT#\SOH\DC2\EOT\140\STX\b\ESC\n\
+    \!\n\
+    \\EOT\EOT#\STX\NUL\DC2\EOT\141\STX\STX'\"\DC3 Stake credential.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\NUL\ACK\DC2\EOT\141\STX\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\NUL\SOH\DC2\EOT\141\STX\DC2\"\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\NUL\ETX\DC2\EOT\141\STX%&\n\
+    \\RS\n\
+    \\EOT\EOT#\STX\SOH\DC2\EOT\142\STX\STX\EM\"\DLE Pool key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\SOH\ENQ\DC2\EOT\142\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\SOH\SOH\DC2\EOT\142\STX\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT#\STX\SOH\ETX\DC2\EOT\142\STX\ETB\CAN\n\
+    \F\n\
+    \\STX\EOT$\DC2\ACK\146\STX\NUL\156\STX\SOH\SUB8 Represents a pool registration certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT$\SOH\DC2\EOT\146\STX\b\FS\n\
+    \\"\n\
+    \\EOT\EOT$\STX\NUL\DC2\EOT\147\STX\STX\NAK\"\DC4 Operator key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\NUL\ENQ\DC2\EOT\147\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\NUL\SOH\DC2\EOT\147\STX\b\DLE\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\NUL\ETX\DC2\EOT\147\STX\DC3\DC4\n\
+    \\GS\n\
+    \\EOT\EOT$\STX\SOH\DC2\EOT\148\STX\STX\CAN\"\SI VRF key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\SOH\ENQ\DC2\EOT\148\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\SOH\SOH\DC2\EOT\148\STX\b\DC3\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\SOH\ETX\DC2\EOT\148\STX\SYN\ETB\n\
+    \\RS\n\
+    \\EOT\EOT$\STX\STX\DC2\EOT\149\STX\STX\DC4\"\DLE Pledge amount.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\STX\ENQ\DC2\EOT\149\STX\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\STX\SOH\DC2\EOT\149\STX\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\STX\ETX\DC2\EOT\149\STX\DC2\DC3\n\
+    \\SUB\n\
+    \\EOT\EOT$\STX\ETX\DC2\EOT\150\STX\STX\DC2\"\f Pool cost.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ETX\ENQ\DC2\EOT\150\STX\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ETX\SOH\DC2\EOT\150\STX\t\r\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ETX\ETX\DC2\EOT\150\STX\DLE\DC1\n\
+    \\FS\n\
+    \\EOT\EOT$\STX\EOT\DC2\EOT\151\STX\STX\FS\"\SO Pool margin.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\EOT\ACK\DC2\EOT\151\STX\STX\DLE\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\EOT\SOH\DC2\EOT\151\STX\DC1\ETB\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\EOT\ETX\DC2\EOT\151\STX\SUB\ESC\n\
+    \\US\n\
+    \\EOT\EOT$\STX\ENQ\DC2\EOT\152\STX\STX\ESC\"\DC1 Reward account.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ENQ\ENQ\DC2\EOT\152\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ENQ\SOH\DC2\EOT\152\STX\b\SYN\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ENQ\ETX\DC2\EOT\152\STX\EM\SUB\n\
+    \.\n\
+    \\EOT\EOT$\STX\ACK\DC2\EOT\153\STX\STX!\"  List of pool owner key hashes.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ACK\EOT\DC2\EOT\153\STX\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ACK\ENQ\DC2\EOT\153\STX\v\DLE\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ACK\SOH\DC2\EOT\153\STX\DC1\FS\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\ACK\ETX\DC2\EOT\153\STX\US \n\
+    \\US\n\
+    \\EOT\EOT$\STX\a\DC2\EOT\154\STX\STX\FS\"\DC1 List of relays.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\a\EOT\DC2\EOT\154\STX\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\a\ACK\DC2\EOT\154\STX\v\DLE\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\a\SOH\DC2\EOT\154\STX\DC1\ETB\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\a\ETX\DC2\EOT\154\STX\SUB\ESC\n\
+    \\RS\n\
+    \\EOT\EOT$\STX\b\DC2\EOT\155\STX\STX!\"\DLE Pool metadata.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\b\ACK\DC2\EOT\155\STX\STX\SO\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\b\SOH\DC2\EOT\155\STX\SI\FS\n\
+    \\r\n\
+    \\ENQ\EOT$\STX\b\ETX\DC2\EOT\155\STX\US \n\
+    \D\n\
+    \\STX\EOT%\DC2\ACK\159\STX\NUL\162\STX\SOH\SUB6 Represents a pool retirement certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT%\SOH\DC2\EOT\159\STX\b\SUB\n\
+    \\RS\n\
+    \\EOT\EOT%\STX\NUL\DC2\EOT\160\STX\STX\EM\"\DLE Pool key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\NUL\ENQ\DC2\EOT\160\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\NUL\SOH\DC2\EOT\160\STX\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\NUL\ETX\DC2\EOT\160\STX\ETB\CAN\n\
+    \!\n\
+    \\EOT\EOT%\STX\SOH\DC2\EOT\161\STX\STX\DC3\"\DC3 Retirement epoch.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\SOH\ENQ\DC2\EOT\161\STX\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\SOH\SOH\DC2\EOT\161\STX\t\SO\n\
+    \\r\n\
+    \\ENQ\EOT%\STX\SOH\ETX\DC2\EOT\161\STX\DC1\DC2\n\
+    \K\n\
+    \\STX\EOT&\DC2\ACK\165\STX\NUL\169\STX\SOH\SUB= Represents a genesis key delegation certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT&\SOH\DC2\EOT\165\STX\b \n\
+    \\GS\n\
+    \\EOT\EOT&\STX\NUL\DC2\EOT\166\STX\STX\EM\"\SI Genesis hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\NUL\ENQ\DC2\EOT\166\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\NUL\SOH\DC2\EOT\166\STX\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\NUL\ETX\DC2\EOT\166\STX\ETB\CAN\n\
+    \&\n\
+    \\EOT\EOT&\STX\SOH\DC2\EOT\167\STX\STX\"\"\CAN Genesis delegate hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\SOH\ENQ\DC2\EOT\167\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\SOH\SOH\DC2\EOT\167\STX\b\GS\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\SOH\ETX\DC2\EOT\167\STX !\n\
+    \\GS\n\
+    \\EOT\EOT&\STX\STX\DC2\EOT\168\STX\STX\CAN\"\SI VRF key hash.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\STX\ENQ\DC2\EOT\168\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\STX\SOH\DC2\EOT\168\STX\b\DC3\n\
+    \\r\n\
+    \\ENQ\EOT&\STX\STX\ETX\DC2\EOT\168\STX\SYN\ETB\n\
+    \\f\n\
+    \\STX\ENQ\SOH\DC2\ACK\171\STX\NUL\175\STX\SOH\n\
+    \\v\n\
+    \\ETX\ENQ\SOH\SOH\DC2\EOT\171\STX\ENQ\SO\n\
+    \\f\n\
+    \\EOT\ENQ\SOH\STX\NUL\DC2\EOT\172\STX\STX\GS\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\EOT\172\STX\STX\CAN\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\EOT\172\STX\ESC\FS\n\
+    \\f\n\
+    \\EOT\ENQ\SOH\STX\SOH\DC2\EOT\173\STX\STX\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\EOT\173\STX\STX\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\EOT\173\STX\CAN\EM\n\
+    \\f\n\
+    \\EOT\ENQ\SOH\STX\STX\DC2\EOT\174\STX\STX\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\EOT\174\STX\STX\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\SOH\STX\STX\STX\DC2\EOT\174\STX\CAN\EM\n\
+    \\f\n\
+    \\STX\EOT'\DC2\ACK\177\STX\NUL\180\STX\SOH\n\
+    \\v\n\
+    \\ETX\EOT'\SOH\DC2\EOT\177\STX\b\DC1\n\
+    \\f\n\
+    \\EOT\EOT'\STX\NUL\DC2\EOT\178\STX\STX'\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\NUL\ACK\DC2\EOT\178\STX\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\NUL\SOH\DC2\EOT\178\STX\DC2\"\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\NUL\ETX\DC2\EOT\178\STX%&\n\
+    \\f\n\
+    \\EOT\EOT'\STX\SOH\DC2\EOT\179\STX\STX\ETB\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\SOH\ENQ\DC2\EOT\179\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\SOH\SOH\DC2\EOT\179\STX\b\DC2\n\
+    \\r\n\
+    \\ENQ\EOT'\STX\SOH\ETX\DC2\EOT\179\STX\NAK\SYN\n\
+    \N\n\
+    \\STX\EOT(\DC2\ACK\183\STX\NUL\187\STX\SOH\SUB@ Represents a move instantaneous reward certificate in Cardano.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT(\SOH\DC2\EOT\183\STX\b\SI\n\
+    \\f\n\
+    \\EOT\EOT(\STX\NUL\DC2\EOT\184\STX\STX\NAK\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\NUL\ACK\DC2\EOT\184\STX\STX\v\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\NUL\SOH\DC2\EOT\184\STX\f\DLE\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\NUL\ETX\DC2\EOT\184\STX\DC3\DC4\n\
+    \\f\n\
+    \\EOT\EOT(\STX\SOH\DC2\EOT\185\STX\STX\FS\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\SOH\EOT\DC2\EOT\185\STX\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\SOH\ACK\DC2\EOT\185\STX\v\DC4\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\SOH\SOH\DC2\EOT\185\STX\NAK\ETB\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\SOH\ETX\DC2\EOT\185\STX\SUB\ESC\n\
+    \\f\n\
+    \\EOT\EOT(\STX\STX\DC2\EOT\186\STX\STX\ETB\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\STX\ENQ\DC2\EOT\186\STX\STX\b\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\STX\SOH\DC2\EOT\186\STX\t\DC2\n\
+    \\r\n\
+    \\ENQ\EOT(\STX\STX\ETX\DC2\EOT\186\STX\NAK\SYN\n\
+    \}\n\
+    \\STX\EOT)\DC2\ACK\193\STX\NUL\199\STX\SOH\SUBI Pattern of an address that can be used to evaluate matching predicates.\n\
+    \2$ PATTERN MATCHING\n\
+    \ ================\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT)\SOH\DC2\EOT\193\STX\b\SYN\n\
+    \\f\n\
+    \\EOT\EOT)\STX\NUL\DC2\EOT\194\STX\STX\SUB\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\NUL\ENQ\DC2\EOT\194\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\NUL\SOH\DC2\EOT\194\STX\b\NAK\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\NUL\ETX\DC2\EOT\194\STX\CAN\EM\n\
+    \\f\n\
+    \\EOT\EOT)\STX\SOH\DC2\EOT\195\STX\STX\EM\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\SOH\ENQ\DC2\EOT\195\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\SOH\SOH\DC2\EOT\195\STX\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\SOH\ETX\DC2\EOT\195\STX\ETB\CAN\n\
+    \\f\n\
+    \\EOT\EOT)\STX\STX\DC2\EOT\196\STX\STX\FS\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\STX\ENQ\DC2\EOT\196\STX\STX\a\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\STX\SOH\DC2\EOT\196\STX\b\ETB\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\STX\ETX\DC2\EOT\196\STX\SUB\ESC\n\
+    \\f\n\
+    \\EOT\EOT)\STX\ETX\DC2\EOT\197\STX\STX\GS\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\ETX\ENQ\DC2\EOT\197\STX\STX\ACK\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\ETX\SOH\DC2\EOT\197\STX\a\CAN\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\ETX\ETX\DC2\EOT\197\STX\ESC\FS\n\
+    \\f\n\
+    \\EOT\EOT)\STX\EOT\DC2\EOT\198\STX\STX \n\
+    \\r\n\
+    \\ENQ\EOT)\STX\EOT\ENQ\DC2\EOT\198\STX\STX\ACK\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\EOT\SOH\DC2\EOT\198\STX\a\ESC\n\
+    \\r\n\
+    \\ENQ\EOT)\STX\EOT\ETX\DC2\EOT\198\STX\RS\US\n\
+    \b\n\
+    \\STX\EOT*\DC2\ACK\202\STX\NUL\204\STX\SOH\SUBM Pattern of a native asset that can be used to evaluate matching predicates.\n\
+    \\"\ENQ TBD\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT*\SOH\DC2\EOT\202\STX\b\DC4\n\
+    \_\n\
+    \\STX\EOT+\DC2\ACK\207\STX\NUL\209\STX\SOH\SUBJ Pattern of a tx output that can be used to evaluate matching predicates.\n\
+    \\"\ENQ TBD\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT+\SOH\DC2\EOT\207\STX\b\NAK\n\
+    \\\\n\
+    \\STX\EOT,\DC2\ACK\212\STX\NUL\214\STX\SOH\SUBG Pattern of an datum that can be used to evaluate matching predicates.\n\
+    \\"\ENQ TBD\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT,\SOH\DC2\EOT\212\STX\b\DC4\n\
+    \Q\n\
+    \\STX\EOT-\DC2\ACK\217\STX\NUL\224\STX\SOH\SUBC Pattern of a Tx that can be used to evaluate matching predicates.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT-\SOH\DC2\EOT\217\STX\b\DC1\n\
+    \\SO\n\
+    \\EOT\EOT-\b\NUL\DC2\ACK\218\STX\STX\223\STX\ETX\n\
+    \\r\n\
+    \\ENQ\EOT-\b\NUL\SOH\DC2\EOT\218\STX\b\DC2\n\
+    \<\n\
+    \\EOT\EOT-\STX\NUL\DC2\EOT\219\STX\EOT!\". Match any output that exhibits this pattern.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\NUL\ACK\DC2\EOT\219\STX\EOT\DC1\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\NUL\SOH\DC2\EOT\219\STX\DC2\FS\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\NUL\ETX\DC2\EOT\219\STX\US \n\
+    \`\n\
+    \\EOT\EOT-\STX\SOH\DC2\EOT\220\STX\EOT#\"R Match any address (inputs, outputs, collateral, etc) that exhibits this pattern.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\SOH\ACK\DC2\EOT\220\STX\EOT\DC2\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\SOH\SOH\DC2\EOT\220\STX\DC3\RS\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\SOH\ETX\DC2\EOT\220\STX!\"\n\
+    \;\n\
+    \\EOT\EOT-\STX\STX\DC2\EOT\221\STX\EOT\US\"- Match any asset that exhibits this pattern.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\STX\ACK\DC2\EOT\221\STX\EOT\DLE\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\STX\SOH\DC2\EOT\221\STX\DC1\SUB\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\STX\ETX\DC2\EOT\221\STX\GS\RS\n\
+    \;\n\
+    \\EOT\EOT-\STX\ETX\DC2\EOT\222\STX\EOT\US\"- Match any datum that exhibits this pattern.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\ETX\ACK\DC2\EOT\222\STX\EOT\DLE\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\ETX\SOH\DC2\EOT\222\STX\DC1\SUB\n\
+    \\r\n\
+    \\ENQ\EOT-\STX\ETX\ETX\DC2\EOT\222\STX\GS\RSb\ACKproto3"
diff --git a/Proto/Utxorpc/V1alpha/Cardano/Cardano_Fields.hs b/Proto/Utxorpc/V1alpha/Cardano/Cardano_Fields.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Cardano/Cardano_Fields.hs
@@ -0,0 +1,1115 @@
+{- This file was auto-generated from utxorpc/v1alpha/cardano/cardano.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.Utxorpc.V1alpha.Cardano.Cardano_Fields where
+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
+addrKeyHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "addrKeyHash" a) =>
+  Lens.Family2.LensLike' f s a
+addrKeyHash = Data.ProtoLens.Field.field @"addrKeyHash"
+address ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "address" a) =>
+  Lens.Family2.LensLike' f s a
+address = Data.ProtoLens.Field.field @"address"
+anyAddress ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "anyAddress" a) =>
+  Lens.Family2.LensLike' f s a
+anyAddress = Data.ProtoLens.Field.field @"anyAddress"
+anyAsset ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "anyAsset" a) =>
+  Lens.Family2.LensLike' f s a
+anyAsset = Data.ProtoLens.Field.field @"anyAsset"
+anyConstructor ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "anyConstructor" a) =>
+  Lens.Family2.LensLike' f s a
+anyConstructor = Data.ProtoLens.Field.field @"anyConstructor"
+anyDatum ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "anyDatum" a) =>
+  Lens.Family2.LensLike' f s a
+anyDatum = Data.ProtoLens.Field.field @"anyDatum"
+anyOutput ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "anyOutput" a) =>
+  Lens.Family2.LensLike' f s a
+anyOutput = Data.ProtoLens.Field.field @"anyOutput"
+array ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "array" a) =>
+  Lens.Family2.LensLike' f s a
+array = Data.ProtoLens.Field.field @"array"
+asOutput ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "asOutput" a) =>
+  Lens.Family2.LensLike' f s a
+asOutput = Data.ProtoLens.Field.field @"asOutput"
+assets ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "assets" a) =>
+  Lens.Family2.LensLike' f s a
+assets = Data.ProtoLens.Field.field @"assets"
+auxiliary ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "auxiliary" a) =>
+  Lens.Family2.LensLike' f s a
+auxiliary = Data.ProtoLens.Field.field @"auxiliary"
+bigInt ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "bigInt" a) =>
+  Lens.Family2.LensLike' f s a
+bigInt = Data.ProtoLens.Field.field @"bigInt"
+bigNInt ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "bigNInt" a) =>
+  Lens.Family2.LensLike' f s a
+bigNInt = Data.ProtoLens.Field.field @"bigNInt"
+bigUInt ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "bigUInt" a) =>
+  Lens.Family2.LensLike' f s a
+bigUInt = Data.ProtoLens.Field.field @"bigUInt"
+body ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "body" a) =>
+  Lens.Family2.LensLike' f s a
+body = Data.ProtoLens.Field.field @"body"
+boundedBytes ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "boundedBytes" a) =>
+  Lens.Family2.LensLike' f s a
+boundedBytes = Data.ProtoLens.Field.field @"boundedBytes"
+byronAddress ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "byronAddress" a) =>
+  Lens.Family2.LensLike' f s a
+byronAddress = Data.ProtoLens.Field.field @"byronAddress"
+bytes ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "bytes" a) =>
+  Lens.Family2.LensLike' f s a
+bytes = Data.ProtoLens.Field.field @"bytes"
+certificates ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "certificates" a) =>
+  Lens.Family2.LensLike' f s a
+certificates = Data.ProtoLens.Field.field @"certificates"
+coin ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "coin" a) =>
+  Lens.Family2.LensLike' f s a
+coin = Data.ProtoLens.Field.field @"coin"
+collateral ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "collateral" a) =>
+  Lens.Family2.LensLike' f s a
+collateral = Data.ProtoLens.Field.field @"collateral"
+collateralReturn ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "collateralReturn" a) =>
+  Lens.Family2.LensLike' f s a
+collateralReturn = Data.ProtoLens.Field.field @"collateralReturn"
+constr ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "constr" a) =>
+  Lens.Family2.LensLike' f s a
+constr = Data.ProtoLens.Field.field @"constr"
+cost ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "cost" a) =>
+  Lens.Family2.LensLike' f s a
+cost = Data.ProtoLens.Field.field @"cost"
+datum ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "datum" a) =>
+  Lens.Family2.LensLike' f s a
+datum = Data.ProtoLens.Field.field @"datum"
+datumHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "datumHash" a) =>
+  Lens.Family2.LensLike' f s a
+datumHash = Data.ProtoLens.Field.field @"datumHash"
+delegationIsScript ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "delegationIsScript" a) =>
+  Lens.Family2.LensLike' f s a
+delegationIsScript
+  = Data.ProtoLens.Field.field @"delegationIsScript"
+delegationPart ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "delegationPart" a) =>
+  Lens.Family2.LensLike' f s a
+delegationPart = Data.ProtoLens.Field.field @"delegationPart"
+deltaCoin ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "deltaCoin" a) =>
+  Lens.Family2.LensLike' f s a
+deltaCoin = Data.ProtoLens.Field.field @"deltaCoin"
+denominator ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "denominator" a) =>
+  Lens.Family2.LensLike' f s a
+denominator = Data.ProtoLens.Field.field @"denominator"
+dnsName ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "dnsName" a) =>
+  Lens.Family2.LensLike' f s a
+dnsName = Data.ProtoLens.Field.field @"dnsName"
+epoch ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "epoch" a) =>
+  Lens.Family2.LensLike' f s a
+epoch = Data.ProtoLens.Field.field @"epoch"
+fee ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "fee" a) =>
+  Lens.Family2.LensLike' f s a
+fee = Data.ProtoLens.Field.field @"fee"
+fields ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "fields" a) =>
+  Lens.Family2.LensLike' f s a
+fields = Data.ProtoLens.Field.field @"fields"
+from ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "from" a) =>
+  Lens.Family2.LensLike' f s a
+from = Data.ProtoLens.Field.field @"from"
+genesisDelegateHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "genesisDelegateHash" a) =>
+  Lens.Family2.LensLike' f s a
+genesisDelegateHash
+  = Data.ProtoLens.Field.field @"genesisDelegateHash"
+genesisHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "genesisHash" a) =>
+  Lens.Family2.LensLike' f s a
+genesisHash = Data.ProtoLens.Field.field @"genesisHash"
+genesisKeyDelegation ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "genesisKeyDelegation" a) =>
+  Lens.Family2.LensLike' f s a
+genesisKeyDelegation
+  = Data.ProtoLens.Field.field @"genesisKeyDelegation"
+hash ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "hash" a) =>
+  Lens.Family2.LensLike' f s a
+hash = Data.ProtoLens.Field.field @"hash"
+header ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "header" a) =>
+  Lens.Family2.LensLike' f s a
+header = Data.ProtoLens.Field.field @"header"
+height ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "height" a) =>
+  Lens.Family2.LensLike' f s a
+height = Data.ProtoLens.Field.field @"height"
+inputs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "inputs" a) =>
+  Lens.Family2.LensLike' f s a
+inputs = Data.ProtoLens.Field.field @"inputs"
+int ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "int" a) =>
+  Lens.Family2.LensLike' f s a
+int = Data.ProtoLens.Field.field @"int"
+invalidBefore ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "invalidBefore" a) =>
+  Lens.Family2.LensLike' f s a
+invalidBefore = Data.ProtoLens.Field.field @"invalidBefore"
+invalidHereafter ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "invalidHereafter" a) =>
+  Lens.Family2.LensLike' f s a
+invalidHereafter = Data.ProtoLens.Field.field @"invalidHereafter"
+ipV4 ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ipV4" a) =>
+  Lens.Family2.LensLike' f s a
+ipV4 = Data.ProtoLens.Field.field @"ipV4"
+ipV6 ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ipV6" a) =>
+  Lens.Family2.LensLike' f s a
+ipV6 = Data.ProtoLens.Field.field @"ipV6"
+items ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "items" a) =>
+  Lens.Family2.LensLike' f s a
+items = Data.ProtoLens.Field.field @"items"
+k ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "k" a) =>
+  Lens.Family2.LensLike' f s a
+k = Data.ProtoLens.Field.field @"k"
+key ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "key" a) =>
+  Lens.Family2.LensLike' f s a
+key = Data.ProtoLens.Field.field @"key"
+label ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "label" a) =>
+  Lens.Family2.LensLike' f s a
+label = Data.ProtoLens.Field.field @"label"
+map ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "map" a) =>
+  Lens.Family2.LensLike' f s a
+map = Data.ProtoLens.Field.field @"map"
+margin ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "margin" a) =>
+  Lens.Family2.LensLike' f s a
+margin = Data.ProtoLens.Field.field @"margin"
+maybe'addrKeyHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'addrKeyHash" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'addrKeyHash = Data.ProtoLens.Field.field @"maybe'addrKeyHash"
+maybe'anyAddress ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'anyAddress" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'anyAddress = Data.ProtoLens.Field.field @"maybe'anyAddress"
+maybe'anyAsset ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'anyAsset" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'anyAsset = Data.ProtoLens.Field.field @"maybe'anyAsset"
+maybe'anyDatum ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'anyDatum" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'anyDatum = Data.ProtoLens.Field.field @"maybe'anyDatum"
+maybe'anyOutput ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'anyOutput" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'anyOutput = Data.ProtoLens.Field.field @"maybe'anyOutput"
+maybe'array ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'array" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'array = Data.ProtoLens.Field.field @"maybe'array"
+maybe'asOutput ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'asOutput" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'asOutput = Data.ProtoLens.Field.field @"maybe'asOutput"
+maybe'auxiliary ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'auxiliary" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'auxiliary = Data.ProtoLens.Field.field @"maybe'auxiliary"
+maybe'bigInt ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'bigInt" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'bigInt = Data.ProtoLens.Field.field @"maybe'bigInt"
+maybe'bigNInt ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'bigNInt" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'bigNInt = Data.ProtoLens.Field.field @"maybe'bigNInt"
+maybe'bigUInt ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'bigUInt" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'bigUInt = Data.ProtoLens.Field.field @"maybe'bigUInt"
+maybe'body ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'body" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'body = Data.ProtoLens.Field.field @"maybe'body"
+maybe'boundedBytes ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'boundedBytes" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'boundedBytes
+  = Data.ProtoLens.Field.field @"maybe'boundedBytes"
+maybe'bytes ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'bytes" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'bytes = Data.ProtoLens.Field.field @"maybe'bytes"
+maybe'certificate ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'certificate" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'certificate = Data.ProtoLens.Field.field @"maybe'certificate"
+maybe'collateral ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'collateral" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'collateral = Data.ProtoLens.Field.field @"maybe'collateral"
+maybe'collateralReturn ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'collateralReturn" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'collateralReturn
+  = Data.ProtoLens.Field.field @"maybe'collateralReturn"
+maybe'constr ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'constr" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'constr = Data.ProtoLens.Field.field @"maybe'constr"
+maybe'datum ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'datum" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'datum = Data.ProtoLens.Field.field @"maybe'datum"
+maybe'genesisKeyDelegation ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'genesisKeyDelegation" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'genesisKeyDelegation
+  = Data.ProtoLens.Field.field @"maybe'genesisKeyDelegation"
+maybe'header ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'header" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'header = Data.ProtoLens.Field.field @"maybe'header"
+maybe'int ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'int" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'int = Data.ProtoLens.Field.field @"maybe'int"
+maybe'invalidBefore ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'invalidBefore" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'invalidBefore
+  = Data.ProtoLens.Field.field @"maybe'invalidBefore"
+maybe'invalidHereafter ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'invalidHereafter" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'invalidHereafter
+  = Data.ProtoLens.Field.field @"maybe'invalidHereafter"
+maybe'key ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'key" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'key = Data.ProtoLens.Field.field @"maybe'key"
+maybe'map ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'map" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'map = Data.ProtoLens.Field.field @"maybe'map"
+maybe'margin ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'margin" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'margin = Data.ProtoLens.Field.field @"maybe'margin"
+maybe'metadatum ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'metadatum" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'metadatum = Data.ProtoLens.Field.field @"maybe'metadatum"
+maybe'mirCert ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'mirCert" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'mirCert = Data.ProtoLens.Field.field @"maybe'mirCert"
+maybe'native ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'native" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'native = Data.ProtoLens.Field.field @"maybe'native"
+maybe'nativeScript ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'nativeScript" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'nativeScript
+  = Data.ProtoLens.Field.field @"maybe'nativeScript"
+maybe'plutusData ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'plutusData" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'plutusData = Data.ProtoLens.Field.field @"maybe'plutusData"
+maybe'plutusV1 ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'plutusV1" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'plutusV1 = Data.ProtoLens.Field.field @"maybe'plutusV1"
+maybe'plutusV2 ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'plutusV2" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'plutusV2 = Data.ProtoLens.Field.field @"maybe'plutusV2"
+maybe'poolMetadata ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'poolMetadata" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'poolMetadata
+  = Data.ProtoLens.Field.field @"maybe'poolMetadata"
+maybe'poolRegistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'poolRegistration" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'poolRegistration
+  = Data.ProtoLens.Field.field @"maybe'poolRegistration"
+maybe'poolRetirement ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'poolRetirement" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'poolRetirement
+  = Data.ProtoLens.Field.field @"maybe'poolRetirement"
+maybe'redeemer ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'redeemer" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'redeemer = Data.ProtoLens.Field.field @"maybe'redeemer"
+maybe'script ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'script" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'script = Data.ProtoLens.Field.field @"maybe'script"
+maybe'scriptAll ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'scriptAll" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'scriptAll = Data.ProtoLens.Field.field @"maybe'scriptAll"
+maybe'scriptAny ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'scriptAny" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'scriptAny = Data.ProtoLens.Field.field @"maybe'scriptAny"
+maybe'scriptHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'scriptHash" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'scriptHash = Data.ProtoLens.Field.field @"maybe'scriptHash"
+maybe'scriptNOfK ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'scriptNOfK" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'scriptNOfK = Data.ProtoLens.Field.field @"maybe'scriptNOfK"
+maybe'scriptPubkey ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'scriptPubkey" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'scriptPubkey
+  = Data.ProtoLens.Field.field @"maybe'scriptPubkey"
+maybe'stakeCredential ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'stakeCredential" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'stakeCredential
+  = Data.ProtoLens.Field.field @"maybe'stakeCredential"
+maybe'stakeDelegation ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'stakeDelegation" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'stakeDelegation
+  = Data.ProtoLens.Field.field @"maybe'stakeDelegation"
+maybe'stakeDeregistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'stakeDeregistration" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'stakeDeregistration
+  = Data.ProtoLens.Field.field @"maybe'stakeDeregistration"
+maybe'stakeRegistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'stakeRegistration" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'stakeRegistration
+  = Data.ProtoLens.Field.field @"maybe'stakeRegistration"
+maybe'text ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'text" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'text = Data.ProtoLens.Field.field @"maybe'text"
+maybe'txPattern ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'txPattern" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'txPattern = Data.ProtoLens.Field.field @"maybe'txPattern"
+maybe'validity ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'validity" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'validity = Data.ProtoLens.Field.field @"maybe'validity"
+maybe'value ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'value" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'value = Data.ProtoLens.Field.field @"maybe'value"
+maybe'witnesses ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'witnesses" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'witnesses = Data.ProtoLens.Field.field @"maybe'witnesses"
+metadata ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "metadata" a) =>
+  Lens.Family2.LensLike' f s a
+metadata = Data.ProtoLens.Field.field @"metadata"
+mint ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "mint" a) =>
+  Lens.Family2.LensLike' f s a
+mint = Data.ProtoLens.Field.field @"mint"
+mintCoin ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "mintCoin" a) =>
+  Lens.Family2.LensLike' f s a
+mintCoin = Data.ProtoLens.Field.field @"mintCoin"
+mirCert ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "mirCert" a) =>
+  Lens.Family2.LensLike' f s a
+mirCert = Data.ProtoLens.Field.field @"mirCert"
+name ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>
+  Lens.Family2.LensLike' f s a
+name = Data.ProtoLens.Field.field @"name"
+native ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "native" a) =>
+  Lens.Family2.LensLike' f s a
+native = Data.ProtoLens.Field.field @"native"
+numerator ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "numerator" a) =>
+  Lens.Family2.LensLike' f s a
+numerator = Data.ProtoLens.Field.field @"numerator"
+operator ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "operator" a) =>
+  Lens.Family2.LensLike' f s a
+operator = Data.ProtoLens.Field.field @"operator"
+otherPot ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "otherPot" a) =>
+  Lens.Family2.LensLike' f s a
+otherPot = Data.ProtoLens.Field.field @"otherPot"
+outputCoin ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "outputCoin" a) =>
+  Lens.Family2.LensLike' f s a
+outputCoin = Data.ProtoLens.Field.field @"outputCoin"
+outputIndex ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "outputIndex" a) =>
+  Lens.Family2.LensLike' f s a
+outputIndex = Data.ProtoLens.Field.field @"outputIndex"
+outputs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "outputs" a) =>
+  Lens.Family2.LensLike' f s a
+outputs = Data.ProtoLens.Field.field @"outputs"
+pairs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "pairs" a) =>
+  Lens.Family2.LensLike' f s a
+pairs = Data.ProtoLens.Field.field @"pairs"
+paymentIsScript ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "paymentIsScript" a) =>
+  Lens.Family2.LensLike' f s a
+paymentIsScript = Data.ProtoLens.Field.field @"paymentIsScript"
+paymentPart ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "paymentPart" a) =>
+  Lens.Family2.LensLike' f s a
+paymentPart = Data.ProtoLens.Field.field @"paymentPart"
+pledge ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "pledge" a) =>
+  Lens.Family2.LensLike' f s a
+pledge = Data.ProtoLens.Field.field @"pledge"
+plutusDatums ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "plutusDatums" a) =>
+  Lens.Family2.LensLike' f s a
+plutusDatums = Data.ProtoLens.Field.field @"plutusDatums"
+plutusV1 ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "plutusV1" a) =>
+  Lens.Family2.LensLike' f s a
+plutusV1 = Data.ProtoLens.Field.field @"plutusV1"
+plutusV2 ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "plutusV2" a) =>
+  Lens.Family2.LensLike' f s a
+plutusV2 = Data.ProtoLens.Field.field @"plutusV2"
+policyId ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "policyId" a) =>
+  Lens.Family2.LensLike' f s a
+policyId = Data.ProtoLens.Field.field @"policyId"
+poolKeyhash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "poolKeyhash" a) =>
+  Lens.Family2.LensLike' f s a
+poolKeyhash = Data.ProtoLens.Field.field @"poolKeyhash"
+poolMetadata ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "poolMetadata" a) =>
+  Lens.Family2.LensLike' f s a
+poolMetadata = Data.ProtoLens.Field.field @"poolMetadata"
+poolOwners ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "poolOwners" a) =>
+  Lens.Family2.LensLike' f s a
+poolOwners = Data.ProtoLens.Field.field @"poolOwners"
+poolRegistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "poolRegistration" a) =>
+  Lens.Family2.LensLike' f s a
+poolRegistration = Data.ProtoLens.Field.field @"poolRegistration"
+poolRetirement ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "poolRetirement" a) =>
+  Lens.Family2.LensLike' f s a
+poolRetirement = Data.ProtoLens.Field.field @"poolRetirement"
+port ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "port" a) =>
+  Lens.Family2.LensLike' f s a
+port = Data.ProtoLens.Field.field @"port"
+purpose ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "purpose" a) =>
+  Lens.Family2.LensLike' f s a
+purpose = Data.ProtoLens.Field.field @"purpose"
+redeemer ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "redeemer" a) =>
+  Lens.Family2.LensLike' f s a
+redeemer = Data.ProtoLens.Field.field @"redeemer"
+referenceInputs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "referenceInputs" a) =>
+  Lens.Family2.LensLike' f s a
+referenceInputs = Data.ProtoLens.Field.field @"referenceInputs"
+relays ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "relays" a) =>
+  Lens.Family2.LensLike' f s a
+relays = Data.ProtoLens.Field.field @"relays"
+rewardAccount ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "rewardAccount" a) =>
+  Lens.Family2.LensLike' f s a
+rewardAccount = Data.ProtoLens.Field.field @"rewardAccount"
+script ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "script" a) =>
+  Lens.Family2.LensLike' f s a
+script = Data.ProtoLens.Field.field @"script"
+scriptAll ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "scriptAll" a) =>
+  Lens.Family2.LensLike' f s a
+scriptAll = Data.ProtoLens.Field.field @"scriptAll"
+scriptAny ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "scriptAny" a) =>
+  Lens.Family2.LensLike' f s a
+scriptAny = Data.ProtoLens.Field.field @"scriptAny"
+scriptHash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "scriptHash" a) =>
+  Lens.Family2.LensLike' f s a
+scriptHash = Data.ProtoLens.Field.field @"scriptHash"
+scriptNOfK ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "scriptNOfK" a) =>
+  Lens.Family2.LensLike' f s a
+scriptNOfK = Data.ProtoLens.Field.field @"scriptNOfK"
+scriptPubkey ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "scriptPubkey" a) =>
+  Lens.Family2.LensLike' f s a
+scriptPubkey = Data.ProtoLens.Field.field @"scriptPubkey"
+scripts ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "scripts" a) =>
+  Lens.Family2.LensLike' f s a
+scripts = Data.ProtoLens.Field.field @"scripts"
+signature ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "signature" a) =>
+  Lens.Family2.LensLike' f s a
+signature = Data.ProtoLens.Field.field @"signature"
+slot ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "slot" a) =>
+  Lens.Family2.LensLike' f s a
+slot = Data.ProtoLens.Field.field @"slot"
+stakeCredential ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "stakeCredential" a) =>
+  Lens.Family2.LensLike' f s a
+stakeCredential = Data.ProtoLens.Field.field @"stakeCredential"
+stakeDelegation ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "stakeDelegation" a) =>
+  Lens.Family2.LensLike' f s a
+stakeDelegation = Data.ProtoLens.Field.field @"stakeDelegation"
+stakeDeregistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "stakeDeregistration" a) =>
+  Lens.Family2.LensLike' f s a
+stakeDeregistration
+  = Data.ProtoLens.Field.field @"stakeDeregistration"
+stakeRegistration ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "stakeRegistration" a) =>
+  Lens.Family2.LensLike' f s a
+stakeRegistration = Data.ProtoLens.Field.field @"stakeRegistration"
+start ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "start" a) =>
+  Lens.Family2.LensLike' f s a
+start = Data.ProtoLens.Field.field @"start"
+successful ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "successful" a) =>
+  Lens.Family2.LensLike' f s a
+successful = Data.ProtoLens.Field.field @"successful"
+tag ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "tag" a) =>
+  Lens.Family2.LensLike' f s a
+tag = Data.ProtoLens.Field.field @"tag"
+text ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "text" a) =>
+  Lens.Family2.LensLike' f s a
+text = Data.ProtoLens.Field.field @"text"
+to ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "to" a) =>
+  Lens.Family2.LensLike' f s a
+to = Data.ProtoLens.Field.field @"to"
+totalCollateral ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "totalCollateral" a) =>
+  Lens.Family2.LensLike' f s a
+totalCollateral = Data.ProtoLens.Field.field @"totalCollateral"
+ttl ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ttl" a) =>
+  Lens.Family2.LensLike' f s a
+ttl = Data.ProtoLens.Field.field @"ttl"
+tx ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "tx" a) =>
+  Lens.Family2.LensLike' f s a
+tx = Data.ProtoLens.Field.field @"tx"
+txHash ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "txHash" a) =>
+  Lens.Family2.LensLike' f s a
+txHash = Data.ProtoLens.Field.field @"txHash"
+url ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "url" a) =>
+  Lens.Family2.LensLike' f s a
+url = Data.ProtoLens.Field.field @"url"
+validity ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "validity" a) =>
+  Lens.Family2.LensLike' f s a
+validity = Data.ProtoLens.Field.field @"validity"
+value ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "value" a) =>
+  Lens.Family2.LensLike' f s a
+value = Data.ProtoLens.Field.field @"value"
+vec'assets ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'assets" a) =>
+  Lens.Family2.LensLike' f s a
+vec'assets = Data.ProtoLens.Field.field @"vec'assets"
+vec'certificates ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'certificates" a) =>
+  Lens.Family2.LensLike' f s a
+vec'certificates = Data.ProtoLens.Field.field @"vec'certificates"
+vec'collateral ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'collateral" a) =>
+  Lens.Family2.LensLike' f s a
+vec'collateral = Data.ProtoLens.Field.field @"vec'collateral"
+vec'fields ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'fields" a) =>
+  Lens.Family2.LensLike' f s a
+vec'fields = Data.ProtoLens.Field.field @"vec'fields"
+vec'inputs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'inputs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'inputs = Data.ProtoLens.Field.field @"vec'inputs"
+vec'items ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'items" a) =>
+  Lens.Family2.LensLike' f s a
+vec'items = Data.ProtoLens.Field.field @"vec'items"
+vec'metadata ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'metadata" a) =>
+  Lens.Family2.LensLike' f s a
+vec'metadata = Data.ProtoLens.Field.field @"vec'metadata"
+vec'mint ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'mint" a) =>
+  Lens.Family2.LensLike' f s a
+vec'mint = Data.ProtoLens.Field.field @"vec'mint"
+vec'outputs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'outputs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'outputs = Data.ProtoLens.Field.field @"vec'outputs"
+vec'pairs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'pairs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'pairs = Data.ProtoLens.Field.field @"vec'pairs"
+vec'plutusDatums ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'plutusDatums" a) =>
+  Lens.Family2.LensLike' f s a
+vec'plutusDatums = Data.ProtoLens.Field.field @"vec'plutusDatums"
+vec'poolOwners ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'poolOwners" a) =>
+  Lens.Family2.LensLike' f s a
+vec'poolOwners = Data.ProtoLens.Field.field @"vec'poolOwners"
+vec'referenceInputs ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'referenceInputs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'referenceInputs
+  = Data.ProtoLens.Field.field @"vec'referenceInputs"
+vec'relays ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'relays" a) =>
+  Lens.Family2.LensLike' f s a
+vec'relays = Data.ProtoLens.Field.field @"vec'relays"
+vec'script ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'script" a) =>
+  Lens.Family2.LensLike' f s a
+vec'script = Data.ProtoLens.Field.field @"vec'script"
+vec'scripts ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'scripts" a) =>
+  Lens.Family2.LensLike' f s a
+vec'scripts = Data.ProtoLens.Field.field @"vec'scripts"
+vec'to ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'to" a) =>
+  Lens.Family2.LensLike' f s a
+vec'to = Data.ProtoLens.Field.field @"vec'to"
+vec'tx ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'tx" a) =>
+  Lens.Family2.LensLike' f s a
+vec'tx = Data.ProtoLens.Field.field @"vec'tx"
+vec'vkeywitness ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'vkeywitness" a) =>
+  Lens.Family2.LensLike' f s a
+vec'vkeywitness = Data.ProtoLens.Field.field @"vec'vkeywitness"
+vec'withdrawals ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'withdrawals" a) =>
+  Lens.Family2.LensLike' f s a
+vec'withdrawals = Data.ProtoLens.Field.field @"vec'withdrawals"
+vkey ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vkey" a) =>
+  Lens.Family2.LensLike' f s a
+vkey = Data.ProtoLens.Field.field @"vkey"
+vkeywitness ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vkeywitness" a) =>
+  Lens.Family2.LensLike' f s a
+vkeywitness = Data.ProtoLens.Field.field @"vkeywitness"
+vrfKeyhash ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vrfKeyhash" a) =>
+  Lens.Family2.LensLike' f s a
+vrfKeyhash = Data.ProtoLens.Field.field @"vrfKeyhash"
+withdrawals ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "withdrawals" a) =>
+  Lens.Family2.LensLike' f s a
+withdrawals = Data.ProtoLens.Field.field @"withdrawals"
+witnesses ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "witnesses" a) =>
+  Lens.Family2.LensLike' f s a
+witnesses = Data.ProtoLens.Field.field @"witnesses"
diff --git a/Proto/Utxorpc/V1alpha/Submit/Submit.hs b/Proto/Utxorpc/V1alpha/Submit/Submit.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Submit/Submit.hs
@@ -0,0 +1,2491 @@
+{- This file was auto-generated from utxorpc/v1alpha/submit/submit.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.Utxorpc.V1alpha.Submit.Submit (
+        SubmitService(..), AnyChainTx(), AnyChainTx'Type(..),
+        _AnyChainTx'Raw, AnyChainTxPattern(), AnyChainTxPattern'Chain(..),
+        _AnyChainTxPattern'Cardano, ReadMempoolRequest(),
+        ReadMempoolResponse(), Stage(..), Stage(), Stage'UnrecognizedValue,
+        SubmitTxRequest(), SubmitTxResponse(), TxInMempool(),
+        TxPredicate(), WaitForTxRequest(), WaitForTxResponse(),
+        WatchMempoolRequest(), WatchMempoolResponse()
+    ) 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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'type'' @:: Lens' AnyChainTx (Prelude.Maybe AnyChainTx'Type)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'raw' @:: Lens' AnyChainTx (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.raw' @:: Lens' AnyChainTx Data.ByteString.ByteString@ -}
+data AnyChainTx
+  = AnyChainTx'_constructor {_AnyChainTx'type' :: !(Prelude.Maybe AnyChainTx'Type),
+                             _AnyChainTx'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainTx where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainTx'Type
+  = AnyChainTx'Raw !Data.ByteString.ByteString
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainTx "maybe'type'" (Prelude.Maybe AnyChainTx'Type) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'type' (\ x__ y__ -> x__ {_AnyChainTx'type' = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainTx "maybe'raw" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'type' (\ x__ y__ -> x__ {_AnyChainTx'type' = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainTx'Raw x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainTx'Raw y__))
+instance Data.ProtoLens.Field.HasField AnyChainTx "raw" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'type' (\ x__ y__ -> x__ {_AnyChainTx'type' = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainTx'Raw x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainTx'Raw y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Message AnyChainTx where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.submit.AnyChainTx"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \AnyChainTx\DC2\DC2\n\
+      \\ETXraw\CAN\SOH \SOH(\fH\NULR\ETXrawB\ACK\n\
+      \\EOTtype"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        raw__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "raw"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'raw")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainTx
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, raw__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainTx'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainTx'_unknownFields = y__})
+  defMessage
+    = AnyChainTx'_constructor
+        {_AnyChainTx'type' = Prelude.Nothing,
+         _AnyChainTx'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainTx -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainTx
+        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"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"raw") 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) "AnyChainTx"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'type'") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainTx'Raw 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))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData AnyChainTx where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainTx'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainTx'type' x__) ())
+instance Control.DeepSeq.NFData AnyChainTx'Type where
+  rnf (AnyChainTx'Raw x__) = Control.DeepSeq.rnf x__
+_AnyChainTx'Raw ::
+  Data.ProtoLens.Prism.Prism' AnyChainTx'Type Data.ByteString.ByteString
+_AnyChainTx'Raw
+  = Data.ProtoLens.Prism.prism'
+      AnyChainTx'Raw
+      (\ p__
+         -> case p__ of (AnyChainTx'Raw p__val) -> Prelude.Just p__val)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'chain' @:: Lens' AnyChainTxPattern (Prelude.Maybe AnyChainTxPattern'Chain)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'cardano' @:: Lens' AnyChainTxPattern (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.cardano' @:: Lens' AnyChainTxPattern Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern@ -}
+data AnyChainTxPattern
+  = AnyChainTxPattern'_constructor {_AnyChainTxPattern'chain :: !(Prelude.Maybe AnyChainTxPattern'Chain),
+                                    _AnyChainTxPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainTxPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainTxPattern'Chain
+  = AnyChainTxPattern'Cardano !Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "maybe'chain" (Prelude.Maybe AnyChainTxPattern'Chain) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "maybe'cardano" (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainTxPattern'Cardano x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainTxPattern'Cardano y__))
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "cardano" Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainTxPattern'Cardano x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainTxPattern'Cardano y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message AnyChainTxPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.AnyChainTxPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1AnyChainTxPattern\DC2>\n\
+      \\acardano\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.TxPatternH\NULR\acardanoB\a\n\
+      \\ENQchain"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        cardano__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cardano"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'cardano")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainTxPattern
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, cardano__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainTxPattern'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainTxPattern'_unknownFields = y__})
+  defMessage
+    = AnyChainTxPattern'_constructor
+        {_AnyChainTxPattern'chain = Prelude.Nothing,
+         _AnyChainTxPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainTxPattern
+          -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainTxPattern
+        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)
+                                       "cardano"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"cardano") 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) "AnyChainTxPattern"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'chain") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainTxPattern'Cardano 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 AnyChainTxPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainTxPattern'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainTxPattern'chain x__) ())
+instance Control.DeepSeq.NFData AnyChainTxPattern'Chain where
+  rnf (AnyChainTxPattern'Cardano x__) = Control.DeepSeq.rnf x__
+_AnyChainTxPattern'Cardano ::
+  Data.ProtoLens.Prism.Prism' AnyChainTxPattern'Chain Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern
+_AnyChainTxPattern'Cardano
+  = Data.ProtoLens.Prism.prism'
+      AnyChainTxPattern'Cardano
+      (\ p__
+         -> case p__ of
+              (AnyChainTxPattern'Cardano p__val) -> Prelude.Just p__val)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.txs' @:: Lens' ReadMempoolRequest [TxInMempool]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'txs' @:: Lens' ReadMempoolRequest (Data.Vector.Vector TxInMempool)@ -}
+data ReadMempoolRequest
+  = ReadMempoolRequest'_constructor {_ReadMempoolRequest'txs :: !(Data.Vector.Vector TxInMempool),
+                                     _ReadMempoolRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ReadMempoolRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ReadMempoolRequest "txs" [TxInMempool] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ReadMempoolRequest'txs
+           (\ x__ y__ -> x__ {_ReadMempoolRequest'txs = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField ReadMempoolRequest "vec'txs" (Data.Vector.Vector TxInMempool) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ReadMempoolRequest'txs
+           (\ x__ y__ -> x__ {_ReadMempoolRequest'txs = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ReadMempoolRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.ReadMempoolRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC2ReadMempoolRequest\DC25\n\
+      \\ETXtxs\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.submit.TxInMempoolR\ETXtxs"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        txs__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "txs"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxInMempool)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"txs")) ::
+              Data.ProtoLens.FieldDescriptor ReadMempoolRequest
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, txs__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ReadMempoolRequest'_unknownFields
+        (\ x__ y__ -> x__ {_ReadMempoolRequest'_unknownFields = y__})
+  defMessage
+    = ReadMempoolRequest'_constructor
+        {_ReadMempoolRequest'txs = Data.Vector.Generic.empty,
+         _ReadMempoolRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ReadMempoolRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxInMempool
+             -> Data.ProtoLens.Encoding.Bytes.Parser ReadMempoolRequest
+        loop x mutable'txs
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'txs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'txs)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'txs") frozen'txs 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)
+                                        "txs"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'txs 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'txs
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'txs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'txs)
+          "ReadMempoolRequest"
+  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'txs") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData ReadMempoolRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ReadMempoolRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_ReadMempoolRequest'txs x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.stage' @:: Lens' ReadMempoolResponse [Stage]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'stage' @:: Lens' ReadMempoolResponse (Data.Vector.Vector Stage)@ -}
+data ReadMempoolResponse
+  = ReadMempoolResponse'_constructor {_ReadMempoolResponse'stage :: !(Data.Vector.Vector Stage),
+                                      _ReadMempoolResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ReadMempoolResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ReadMempoolResponse "stage" [Stage] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ReadMempoolResponse'stage
+           (\ x__ y__ -> x__ {_ReadMempoolResponse'stage = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField ReadMempoolResponse "vec'stage" (Data.Vector.Vector Stage) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ReadMempoolResponse'stage
+           (\ x__ y__ -> x__ {_ReadMempoolResponse'stage = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ReadMempoolResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.ReadMempoolResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3ReadMempoolResponse\DC23\n\
+      \\ENQstage\CAN\SOH \ETX(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        stage__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stage"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor Stage)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"stage")) ::
+              Data.ProtoLens.FieldDescriptor ReadMempoolResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, stage__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ReadMempoolResponse'_unknownFields
+        (\ x__ y__ -> x__ {_ReadMempoolResponse'_unknownFields = y__})
+  defMessage
+    = ReadMempoolResponse'_constructor
+        {_ReadMempoolResponse'stage = Data.Vector.Generic.empty,
+         _ReadMempoolResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ReadMempoolResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Stage
+             -> Data.ProtoLens.Encoding.Bytes.Parser ReadMempoolResponse
+        loop x mutable'stage
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'stage <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'stage)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'stage") frozen'stage 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))
+                                        "stage"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'stage 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))
+                                                                    "stage"
+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                                     (Data.ProtoLens.Encoding.Growing.append
+                                                                        qs q)
+                                                            ploop qs'
+                                            in ploop)
+                                             mutable'stage)
+                                loop x y
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'stage
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'stage <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'stage)
+          "ReadMempoolResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'stage") _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 ReadMempoolResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ReadMempoolResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_ReadMempoolResponse'stage x__) ())
+newtype Stage'UnrecognizedValue
+  = Stage'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data Stage
+  = STAGE_UNSPECIFIED |
+    STAGE_ACKNOWLEDGED |
+    STAGE_MEMPOOL |
+    STAGE_NETWORK |
+    STAGE_CONFIRMED |
+    Stage'Unrecognized !Stage'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum Stage where
+  maybeToEnum 0 = Prelude.Just STAGE_UNSPECIFIED
+  maybeToEnum 1 = Prelude.Just STAGE_ACKNOWLEDGED
+  maybeToEnum 2 = Prelude.Just STAGE_MEMPOOL
+  maybeToEnum 3 = Prelude.Just STAGE_NETWORK
+  maybeToEnum 4 = Prelude.Just STAGE_CONFIRMED
+  maybeToEnum k
+    = Prelude.Just
+        (Stage'Unrecognized
+           (Stage'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum STAGE_UNSPECIFIED = "STAGE_UNSPECIFIED"
+  showEnum STAGE_ACKNOWLEDGED = "STAGE_ACKNOWLEDGED"
+  showEnum STAGE_MEMPOOL = "STAGE_MEMPOOL"
+  showEnum STAGE_NETWORK = "STAGE_NETWORK"
+  showEnum STAGE_CONFIRMED = "STAGE_CONFIRMED"
+  showEnum (Stage'Unrecognized (Stage'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "STAGE_UNSPECIFIED"
+    = Prelude.Just STAGE_UNSPECIFIED
+    | (Prelude.==) k "STAGE_ACKNOWLEDGED"
+    = Prelude.Just STAGE_ACKNOWLEDGED
+    | (Prelude.==) k "STAGE_MEMPOOL" = Prelude.Just STAGE_MEMPOOL
+    | (Prelude.==) k "STAGE_NETWORK" = Prelude.Just STAGE_NETWORK
+    | (Prelude.==) k "STAGE_CONFIRMED" = Prelude.Just STAGE_CONFIRMED
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded Stage where
+  minBound = STAGE_UNSPECIFIED
+  maxBound = STAGE_CONFIRMED
+instance Prelude.Enum Stage where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum Stage: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum STAGE_UNSPECIFIED = 0
+  fromEnum STAGE_ACKNOWLEDGED = 1
+  fromEnum STAGE_MEMPOOL = 2
+  fromEnum STAGE_NETWORK = 3
+  fromEnum STAGE_CONFIRMED = 4
+  fromEnum (Stage'Unrecognized (Stage'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ STAGE_CONFIRMED
+    = Prelude.error
+        "Stage.succ: bad argument STAGE_CONFIRMED. This value would be out of bounds."
+  succ STAGE_UNSPECIFIED = STAGE_ACKNOWLEDGED
+  succ STAGE_ACKNOWLEDGED = STAGE_MEMPOOL
+  succ STAGE_MEMPOOL = STAGE_NETWORK
+  succ STAGE_NETWORK = STAGE_CONFIRMED
+  succ (Stage'Unrecognized _)
+    = Prelude.error "Stage.succ: bad argument: unrecognized value"
+  pred STAGE_UNSPECIFIED
+    = Prelude.error
+        "Stage.pred: bad argument STAGE_UNSPECIFIED. This value would be out of bounds."
+  pred STAGE_ACKNOWLEDGED = STAGE_UNSPECIFIED
+  pred STAGE_MEMPOOL = STAGE_ACKNOWLEDGED
+  pred STAGE_NETWORK = STAGE_MEMPOOL
+  pred STAGE_CONFIRMED = STAGE_NETWORK
+  pred (Stage'Unrecognized _)
+    = Prelude.error "Stage.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 Stage where
+  fieldDefault = STAGE_UNSPECIFIED
+instance Control.DeepSeq.NFData Stage where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.tx' @:: Lens' SubmitTxRequest [AnyChainTx]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'tx' @:: Lens' SubmitTxRequest (Data.Vector.Vector AnyChainTx)@ -}
+data SubmitTxRequest
+  = SubmitTxRequest'_constructor {_SubmitTxRequest'tx :: !(Data.Vector.Vector AnyChainTx),
+                                  _SubmitTxRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show SubmitTxRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField SubmitTxRequest "tx" [AnyChainTx] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SubmitTxRequest'tx (\ x__ y__ -> x__ {_SubmitTxRequest'tx = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField SubmitTxRequest "vec'tx" (Data.Vector.Vector AnyChainTx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SubmitTxRequest'tx (\ x__ y__ -> x__ {_SubmitTxRequest'tx = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message SubmitTxRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.SubmitTxRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\SISubmitTxRequest\DC22\n\
+      \\STXtx\CAN\SOH \ETX(\v2\".utxorpc.v1alpha.submit.AnyChainTxR\STXtx"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tx__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tx"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTx)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"tx")) ::
+              Data.ProtoLens.FieldDescriptor SubmitTxRequest
+      in Data.Map.fromList [(Data.ProtoLens.Tag 1, tx__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _SubmitTxRequest'_unknownFields
+        (\ x__ y__ -> x__ {_SubmitTxRequest'_unknownFields = y__})
+  defMessage
+    = SubmitTxRequest'_constructor
+        {_SubmitTxRequest'tx = Data.Vector.Generic.empty,
+         _SubmitTxRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          SubmitTxRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld AnyChainTx
+             -> Data.ProtoLens.Encoding.Bytes.Parser SubmitTxRequest
+        loop x mutable'tx
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'tx <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'tx)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'tx") frozen'tx 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)
+                                        "tx"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'tx 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'tx
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'tx <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                              Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'tx)
+          "SubmitTxRequest"
+  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'tx") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData SubmitTxRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_SubmitTxRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_SubmitTxRequest'tx x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.ref' @:: Lens' SubmitTxResponse [Data.ByteString.ByteString]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'ref' @:: Lens' SubmitTxResponse (Data.Vector.Vector Data.ByteString.ByteString)@ -}
+data SubmitTxResponse
+  = SubmitTxResponse'_constructor {_SubmitTxResponse'ref :: !(Data.Vector.Vector Data.ByteString.ByteString),
+                                   _SubmitTxResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show SubmitTxResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField SubmitTxResponse "ref" [Data.ByteString.ByteString] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SubmitTxResponse'ref
+           (\ x__ y__ -> x__ {_SubmitTxResponse'ref = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField SubmitTxResponse "vec'ref" (Data.Vector.Vector Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SubmitTxResponse'ref
+           (\ x__ y__ -> x__ {_SubmitTxResponse'ref = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message SubmitTxResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.SubmitTxResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DLESubmitTxResponse\DC2\DLE\n\
+      \\ETXref\CAN\SOH \ETX(\fR\ETXref"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ref__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ref"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"ref")) ::
+              Data.ProtoLens.FieldDescriptor SubmitTxResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, ref__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _SubmitTxResponse'_unknownFields
+        (\ x__ y__ -> x__ {_SubmitTxResponse'_unknownFields = y__})
+  defMessage
+    = SubmitTxResponse'_constructor
+        {_SubmitTxResponse'ref = Data.Vector.Generic.empty,
+         _SubmitTxResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          SubmitTxResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.ByteString.ByteString
+             -> Data.ProtoLens.Encoding.Bytes.Parser SubmitTxResponse
+        loop x mutable'ref
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'ref)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'ref") frozen'ref 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))
+                                        "ref"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'ref 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'ref
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'ref)
+          "SubmitTxResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                (\ _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))
+                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'ref") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData SubmitTxResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_SubmitTxResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_SubmitTxResponse'ref x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.tx' @:: Lens' TxInMempool AnyChainTx@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'tx' @:: Lens' TxInMempool (Prelude.Maybe AnyChainTx)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.stage' @:: Lens' TxInMempool Stage@ -}
+data TxInMempool
+  = TxInMempool'_constructor {_TxInMempool'tx :: !(Prelude.Maybe AnyChainTx),
+                              _TxInMempool'stage :: !Stage,
+                              _TxInMempool'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxInMempool where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxInMempool "tx" AnyChainTx where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInMempool'tx (\ x__ y__ -> x__ {_TxInMempool'tx = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxInMempool "maybe'tx" (Prelude.Maybe AnyChainTx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInMempool'tx (\ x__ y__ -> x__ {_TxInMempool'tx = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxInMempool "stage" Stage where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxInMempool'stage (\ x__ y__ -> x__ {_TxInMempool'stage = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxInMempool where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.submit.TxInMempool"
+  packedMessageDescriptor _
+    = "\n\
+      \\vTxInMempool\DC22\n\
+      \\STXtx\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.submit.AnyChainTxR\STXtx\DC23\n\
+      \\ENQstage\CAN\STX \SOH(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tx__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tx"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTx)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'tx")) ::
+              Data.ProtoLens.FieldDescriptor TxInMempool
+        stage__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stage"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor Stage)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"stage")) ::
+              Data.ProtoLens.FieldDescriptor TxInMempool
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, tx__field_descriptor),
+           (Data.ProtoLens.Tag 2, stage__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxInMempool'_unknownFields
+        (\ x__ y__ -> x__ {_TxInMempool'_unknownFields = y__})
+  defMessage
+    = TxInMempool'_constructor
+        {_TxInMempool'tx = Prelude.Nothing,
+         _TxInMempool'stage = Data.ProtoLens.fieldDefault,
+         _TxInMempool'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          TxInMempool -> Data.ProtoLens.Encoding.Bytes.Parser TxInMempool
+        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)
+                                       "tx"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"tx") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (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) "TxInMempool"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'tx") _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 @"stage") _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 TxInMempool where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxInMempool'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxInMempool'tx x__)
+                (Control.DeepSeq.deepseq (_TxInMempool'stage x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.match' @:: Lens' TxPredicate AnyChainTxPattern@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'match' @:: Lens' TxPredicate (Prelude.Maybe AnyChainTxPattern)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.not' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'not' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.allOf' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'allOf' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.anyOf' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'anyOf' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@ -}
+data TxPredicate
+  = TxPredicate'_constructor {_TxPredicate'match :: !(Prelude.Maybe AnyChainTxPattern),
+                              _TxPredicate'not :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'allOf :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'anyOf :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxPredicate where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxPredicate "match" AnyChainTxPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'match (\ x__ y__ -> x__ {_TxPredicate'match = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxPredicate "maybe'match" (Prelude.Maybe AnyChainTxPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'match (\ x__ y__ -> x__ {_TxPredicate'match = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "not" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'not (\ x__ y__ -> x__ {_TxPredicate'not = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'not" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'not (\ x__ y__ -> x__ {_TxPredicate'not = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "allOf" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'allOf (\ x__ y__ -> x__ {_TxPredicate'allOf = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'allOf" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'allOf (\ x__ y__ -> x__ {_TxPredicate'allOf = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "anyOf" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'anyOf (\ x__ y__ -> x__ {_TxPredicate'anyOf = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'anyOf" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'anyOf (\ x__ y__ -> x__ {_TxPredicate'anyOf = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxPredicate where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.submit.TxPredicate"
+  packedMessageDescriptor _
+    = "\n\
+      \\vTxPredicate\DC2?\n\
+      \\ENQmatch\CAN\SOH \SOH(\v2).utxorpc.v1alpha.submit.AnyChainTxPatternR\ENQmatch\DC25\n\
+      \\ETXnot\CAN\STX \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ETXnot\DC2:\n\
+      \\ACKall_of\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ENQallOf\DC2:\n\
+      \\ACKany_of\CAN\EOT \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ENQanyOf"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        match__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "match"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTxPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'match")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        not__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "not"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"not")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        allOf__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "all_of"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"allOf")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        anyOf__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_of"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"anyOf")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, match__field_descriptor),
+           (Data.ProtoLens.Tag 2, not__field_descriptor),
+           (Data.ProtoLens.Tag 3, allOf__field_descriptor),
+           (Data.ProtoLens.Tag 4, anyOf__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxPredicate'_unknownFields
+        (\ x__ y__ -> x__ {_TxPredicate'_unknownFields = y__})
+  defMessage
+    = TxPredicate'_constructor
+        {_TxPredicate'match = Prelude.Nothing,
+         _TxPredicate'not = Data.Vector.Generic.empty,
+         _TxPredicate'allOf = Data.Vector.Generic.empty,
+         _TxPredicate'anyOf = Data.Vector.Generic.empty,
+         _TxPredicate'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          TxPredicate
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+                   -> Data.ProtoLens.Encoding.Bytes.Parser TxPredicate
+        loop x mutable'allOf mutable'anyOf mutable'not
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'allOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'allOf)
+                      frozen'anyOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'anyOf)
+                      frozen'not <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'not)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'allOf") frozen'allOf
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'anyOf") frozen'anyOf
+                                 (Lens.Family2.set
+                                    (Data.ProtoLens.Field.field @"vec'not") frozen'not 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)
+                                       "match"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"match") y x)
+                                  mutable'allOf mutable'anyOf mutable'not
+                        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)
+                                        "not"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'not y)
+                                loop x mutable'allOf mutable'anyOf v
+                        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)
+                                        "all_of"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'allOf y)
+                                loop x v mutable'anyOf mutable'not
+                        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)
+                                        "any_of"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'anyOf y)
+                                loop x mutable'allOf v mutable'not
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'allOf mutable'anyOf mutable'not
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'allOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              mutable'anyOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              mutable'not <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'allOf mutable'anyOf mutable'not)
+          "TxPredicate"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'match") _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.<>)
+                (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'not") _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'allOf") _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'anyOf") _x))
+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
+instance Control.DeepSeq.NFData TxPredicate where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxPredicate'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxPredicate'match x__)
+                (Control.DeepSeq.deepseq
+                   (_TxPredicate'not x__)
+                   (Control.DeepSeq.deepseq
+                      (_TxPredicate'allOf x__)
+                      (Control.DeepSeq.deepseq (_TxPredicate'anyOf x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.ref' @:: Lens' WaitForTxRequest [Data.ByteString.ByteString]@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.vec'ref' @:: Lens' WaitForTxRequest (Data.Vector.Vector Data.ByteString.ByteString)@ -}
+data WaitForTxRequest
+  = WaitForTxRequest'_constructor {_WaitForTxRequest'ref :: !(Data.Vector.Vector Data.ByteString.ByteString),
+                                   _WaitForTxRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WaitForTxRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WaitForTxRequest "ref" [Data.ByteString.ByteString] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WaitForTxRequest'ref
+           (\ x__ y__ -> x__ {_WaitForTxRequest'ref = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField WaitForTxRequest "vec'ref" (Data.Vector.Vector Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WaitForTxRequest'ref
+           (\ x__ y__ -> x__ {_WaitForTxRequest'ref = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WaitForTxRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.WaitForTxRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DLEWaitForTxRequest\DC2\DLE\n\
+      \\ETXref\CAN\SOH \ETX(\fR\ETXref"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ref__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ref"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"ref")) ::
+              Data.ProtoLens.FieldDescriptor WaitForTxRequest
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, ref__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WaitForTxRequest'_unknownFields
+        (\ x__ y__ -> x__ {_WaitForTxRequest'_unknownFields = y__})
+  defMessage
+    = WaitForTxRequest'_constructor
+        {_WaitForTxRequest'ref = Data.Vector.Generic.empty,
+         _WaitForTxRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WaitForTxRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.ByteString.ByteString
+             -> Data.ProtoLens.Encoding.Bytes.Parser WaitForTxRequest
+        loop x mutable'ref
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'ref)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'ref") frozen'ref 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))
+                                        "ref"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'ref 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'ref
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'ref)
+          "WaitForTxRequest"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                (\ _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))
+                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'ref") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData WaitForTxRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WaitForTxRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_WaitForTxRequest'ref x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.ref' @:: Lens' WaitForTxResponse Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.stage' @:: Lens' WaitForTxResponse Stage@ -}
+data WaitForTxResponse
+  = WaitForTxResponse'_constructor {_WaitForTxResponse'ref :: !Data.ByteString.ByteString,
+                                    _WaitForTxResponse'stage :: !Stage,
+                                    _WaitForTxResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WaitForTxResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WaitForTxResponse "ref" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WaitForTxResponse'ref
+           (\ x__ y__ -> x__ {_WaitForTxResponse'ref = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WaitForTxResponse "stage" Stage where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WaitForTxResponse'stage
+           (\ x__ y__ -> x__ {_WaitForTxResponse'stage = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WaitForTxResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.WaitForTxResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1WaitForTxResponse\DC2\DLE\n\
+      \\ETXref\CAN\SOH \SOH(\fR\ETXref\DC23\n\
+      \\ENQstage\CAN\STX \SOH(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ref__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ref"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"ref")) ::
+              Data.ProtoLens.FieldDescriptor WaitForTxResponse
+        stage__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "stage"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor Stage)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"stage")) ::
+              Data.ProtoLens.FieldDescriptor WaitForTxResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, ref__field_descriptor),
+           (Data.ProtoLens.Tag 2, stage__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WaitForTxResponse'_unknownFields
+        (\ x__ y__ -> x__ {_WaitForTxResponse'_unknownFields = y__})
+  defMessage
+    = WaitForTxResponse'_constructor
+        {_WaitForTxResponse'ref = Data.ProtoLens.fieldDefault,
+         _WaitForTxResponse'stage = Data.ProtoLens.fieldDefault,
+         _WaitForTxResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WaitForTxResponse
+          -> Data.ProtoLens.Encoding.Bytes.Parser WaitForTxResponse
+        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))
+                                       "ref"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"ref") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (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) "WaitForTxResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"ref") _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 @"stage") _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 WaitForTxResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WaitForTxResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_WaitForTxResponse'ref x__)
+                (Control.DeepSeq.deepseq (_WaitForTxResponse'stage x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.predicate' @:: Lens' WatchMempoolRequest TxPredicate@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'predicate' @:: Lens' WatchMempoolRequest (Prelude.Maybe TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.fieldMask' @:: Lens' WatchMempoolRequest Proto.Google.Protobuf.FieldMask.FieldMask@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'fieldMask' @:: Lens' WatchMempoolRequest (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask)@ -}
+data WatchMempoolRequest
+  = WatchMempoolRequest'_constructor {_WatchMempoolRequest'predicate :: !(Prelude.Maybe TxPredicate),
+                                      _WatchMempoolRequest'fieldMask :: !(Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask),
+                                      _WatchMempoolRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WatchMempoolRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WatchMempoolRequest "predicate" TxPredicate where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolRequest'predicate
+           (\ x__ y__ -> x__ {_WatchMempoolRequest'predicate = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField WatchMempoolRequest "maybe'predicate" (Prelude.Maybe TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolRequest'predicate
+           (\ x__ y__ -> x__ {_WatchMempoolRequest'predicate = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WatchMempoolRequest "fieldMask" Proto.Google.Protobuf.FieldMask.FieldMask where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolRequest'fieldMask
+           (\ x__ y__ -> x__ {_WatchMempoolRequest'fieldMask = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField WatchMempoolRequest "maybe'fieldMask" (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolRequest'fieldMask
+           (\ x__ y__ -> x__ {_WatchMempoolRequest'fieldMask = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WatchMempoolRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.WatchMempoolRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3WatchMempoolRequest\DC2A\n\
+      \\tpredicate\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.submit.TxPredicateR\tpredicate\DC29\n\
+      \\n\
+      \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        predicate__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "predicate"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'predicate")) ::
+              Data.ProtoLens.FieldDescriptor WatchMempoolRequest
+        fieldMask__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "field_mask"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.FieldMask.FieldMask)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'fieldMask")) ::
+              Data.ProtoLens.FieldDescriptor WatchMempoolRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, predicate__field_descriptor),
+           (Data.ProtoLens.Tag 2, fieldMask__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WatchMempoolRequest'_unknownFields
+        (\ x__ y__ -> x__ {_WatchMempoolRequest'_unknownFields = y__})
+  defMessage
+    = WatchMempoolRequest'_constructor
+        {_WatchMempoolRequest'predicate = Prelude.Nothing,
+         _WatchMempoolRequest'fieldMask = Prelude.Nothing,
+         _WatchMempoolRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WatchMempoolRequest
+          -> Data.ProtoLens.Encoding.Bytes.Parser WatchMempoolRequest
+        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)
+                                       "predicate"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"predicate") 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)
+                                       "field_mask"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fieldMask") 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) "WatchMempoolRequest"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'predicate") _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'fieldMask") _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 WatchMempoolRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WatchMempoolRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_WatchMempoolRequest'predicate x__)
+                (Control.DeepSeq.deepseq (_WatchMempoolRequest'fieldMask x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.tx' @:: Lens' WatchMempoolResponse TxInMempool@
+         * 'Proto.Utxorpc.V1alpha.Submit.Submit_Fields.maybe'tx' @:: Lens' WatchMempoolResponse (Prelude.Maybe TxInMempool)@ -}
+data WatchMempoolResponse
+  = WatchMempoolResponse'_constructor {_WatchMempoolResponse'tx :: !(Prelude.Maybe TxInMempool),
+                                       _WatchMempoolResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WatchMempoolResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WatchMempoolResponse "tx" TxInMempool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolResponse'tx
+           (\ x__ y__ -> x__ {_WatchMempoolResponse'tx = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField WatchMempoolResponse "maybe'tx" (Prelude.Maybe TxInMempool) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchMempoolResponse'tx
+           (\ x__ y__ -> x__ {_WatchMempoolResponse'tx = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WatchMempoolResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.submit.WatchMempoolResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC4WatchMempoolResponse\DC23\n\
+      \\STXtx\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.submit.TxInMempoolR\STXtx"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        tx__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tx"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxInMempool)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'tx")) ::
+              Data.ProtoLens.FieldDescriptor WatchMempoolResponse
+      in Data.Map.fromList [(Data.ProtoLens.Tag 1, tx__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WatchMempoolResponse'_unknownFields
+        (\ x__ y__ -> x__ {_WatchMempoolResponse'_unknownFields = y__})
+  defMessage
+    = WatchMempoolResponse'_constructor
+        {_WatchMempoolResponse'tx = Prelude.Nothing,
+         _WatchMempoolResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WatchMempoolResponse
+          -> Data.ProtoLens.Encoding.Bytes.Parser WatchMempoolResponse
+        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)
+                                       "tx"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"tx") 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) "WatchMempoolResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'tx") _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 WatchMempoolResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WatchMempoolResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_WatchMempoolResponse'tx x__) ())
+data SubmitService = SubmitService {}
+instance Data.ProtoLens.Service.Types.Service SubmitService where
+  type ServiceName SubmitService = "SubmitService"
+  type ServicePackage SubmitService = "utxorpc.v1alpha.submit"
+  type ServiceMethods SubmitService = '["readMempool",
+                                        "submitTx",
+                                        "waitForTx",
+                                        "watchMempool"]
+  packedServiceDescriptor _
+    = "\n\
+      \\rSubmitService\DC2]\n\
+      \\bSubmitTx\DC2'.utxorpc.v1alpha.submit.SubmitTxRequest\SUB(.utxorpc.v1alpha.submit.SubmitTxResponse\DC2b\n\
+      \\tWaitForTx\DC2(.utxorpc.v1alpha.submit.WaitForTxRequest\SUB).utxorpc.v1alpha.submit.WaitForTxResponse0\SOH\DC2f\n\
+      \\vReadMempool\DC2*.utxorpc.v1alpha.submit.ReadMempoolRequest\SUB+.utxorpc.v1alpha.submit.ReadMempoolResponse\DC2k\n\
+      \\fWatchMempool\DC2+.utxorpc.v1alpha.submit.WatchMempoolRequest\SUB,.utxorpc.v1alpha.submit.WatchMempoolResponse0\SOH"
+instance Data.ProtoLens.Service.Types.HasMethodImpl SubmitService "submitTx" where
+  type MethodName SubmitService "submitTx" = "SubmitTx"
+  type MethodInput SubmitService "submitTx" = SubmitTxRequest
+  type MethodOutput SubmitService "submitTx" = SubmitTxResponse
+  type MethodStreamingType SubmitService "submitTx" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl SubmitService "waitForTx" where
+  type MethodName SubmitService "waitForTx" = "WaitForTx"
+  type MethodInput SubmitService "waitForTx" = WaitForTxRequest
+  type MethodOutput SubmitService "waitForTx" = WaitForTxResponse
+  type MethodStreamingType SubmitService "waitForTx" = 'Data.ProtoLens.Service.Types.ServerStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl SubmitService "readMempool" where
+  type MethodName SubmitService "readMempool" = "ReadMempool"
+  type MethodInput SubmitService "readMempool" = ReadMempoolRequest
+  type MethodOutput SubmitService "readMempool" = ReadMempoolResponse
+  type MethodStreamingType SubmitService "readMempool" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl SubmitService "watchMempool" where
+  type MethodName SubmitService "watchMempool" = "WatchMempool"
+  type MethodInput SubmitService "watchMempool" = WatchMempoolRequest
+  type MethodOutput SubmitService "watchMempool" = WatchMempoolResponse
+  type MethodStreamingType SubmitService "watchMempool" = 'Data.ProtoLens.Service.Types.ServerStreaming
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \#utxorpc/v1alpha/submit/submit.proto\DC2\SYNutxorpc.v1alpha.submit\SUB google/protobuf/field_mask.proto\SUB%utxorpc/v1alpha/cardano/cardano.proto\"(\n\
+    \\n\
+    \AnyChainTx\DC2\DC2\n\
+    \\ETXraw\CAN\SOH \SOH(\fH\NULR\ETXrawB\ACK\n\
+    \\EOTtype\"E\n\
+    \\SISubmitTxRequest\DC22\n\
+    \\STXtx\CAN\SOH \ETX(\v2\".utxorpc.v1alpha.submit.AnyChainTxR\STXtx\"$\n\
+    \\DLESubmitTxResponse\DC2\DLE\n\
+    \\ETXref\CAN\SOH \ETX(\fR\ETXref\"v\n\
+    \\vTxInMempool\DC22\n\
+    \\STXtx\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.submit.AnyChainTxR\STXtx\DC23\n\
+    \\ENQstage\CAN\STX \SOH(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage\"K\n\
+    \\DC2ReadMempoolRequest\DC25\n\
+    \\ETXtxs\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.submit.TxInMempoolR\ETXtxs\"J\n\
+    \\DC3ReadMempoolResponse\DC23\n\
+    \\ENQstage\CAN\SOH \ETX(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage\"$\n\
+    \\DLEWaitForTxRequest\DC2\DLE\n\
+    \\ETXref\CAN\SOH \ETX(\fR\ETXref\"Z\n\
+    \\DC1WaitForTxResponse\DC2\DLE\n\
+    \\ETXref\CAN\SOH \SOH(\fR\ETXref\DC23\n\
+    \\ENQstage\CAN\STX \SOH(\SO2\GS.utxorpc.v1alpha.submit.StageR\ENQstage\"\\\n\
+    \\DC1AnyChainTxPattern\DC2>\n\
+    \\acardano\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.TxPatternH\NULR\acardanoB\a\n\
+    \\ENQchain\"\253\SOH\n\
+    \\vTxPredicate\DC2?\n\
+    \\ENQmatch\CAN\SOH \SOH(\v2).utxorpc.v1alpha.submit.AnyChainTxPatternR\ENQmatch\DC25\n\
+    \\ETXnot\CAN\STX \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ETXnot\DC2:\n\
+    \\ACKall_of\CAN\ETX \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ENQallOf\DC2:\n\
+    \\ACKany_of\CAN\EOT \ETX(\v2#.utxorpc.v1alpha.submit.TxPredicateR\ENQanyOf\"\147\SOH\n\
+    \\DC3WatchMempoolRequest\DC2A\n\
+    \\tpredicate\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.submit.TxPredicateR\tpredicate\DC29\n\
+    \\n\
+    \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask\"K\n\
+    \\DC4WatchMempoolResponse\DC23\n\
+    \\STXtx\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.submit.TxInMempoolR\STXtx*q\n\
+    \\ENQStage\DC2\NAK\n\
+    \\DC1STAGE_UNSPECIFIED\DLE\NUL\DC2\SYN\n\
+    \\DC2STAGE_ACKNOWLEDGED\DLE\SOH\DC2\DC1\n\
+    \\rSTAGE_MEMPOOL\DLE\STX\DC2\DC1\n\
+    \\rSTAGE_NETWORK\DLE\ETX\DC2\DC3\n\
+    \\SISTAGE_CONFIRMED\DLE\EOT2\167\ETX\n\
+    \\rSubmitService\DC2]\n\
+    \\bSubmitTx\DC2'.utxorpc.v1alpha.submit.SubmitTxRequest\SUB(.utxorpc.v1alpha.submit.SubmitTxResponse\DC2b\n\
+    \\tWaitForTx\DC2(.utxorpc.v1alpha.submit.WaitForTxRequest\SUB).utxorpc.v1alpha.submit.WaitForTxResponse0\SOH\DC2f\n\
+    \\vReadMempool\DC2*.utxorpc.v1alpha.submit.ReadMempoolRequest\SUB+.utxorpc.v1alpha.submit.ReadMempoolResponse\DC2k\n\
+    \\fWatchMempool\DC2+.utxorpc.v1alpha.submit.WatchMempoolRequest\SUB,.utxorpc.v1alpha.submit.WatchMempoolResponse0\SOHB\218\SOH\n\
+    \\SUBcom.utxorpc.v1alpha.submitB\vSubmitProtoP\SOHZ5github.com/utxorpc/go-sdk/spec/utxorpc/v1alpha/submit\162\STX\ETXUVS\170\STX\SYNUtxorpc.V1alpha.Submit\202\STX\SYNUtxorpc\\V1alpha\\Submit\226\STX\"Utxorpc\\V1alpha\\Submit\\GPBMetadata\234\STX\CANUtxorpc::V1alpha::SubmitJ\203\US\n\
+    \\ACK\DC2\EOT\NUL\NUL[\SOH\n\
+    \\b\n\
+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\STX\NUL\US\n\
+    \\t\n\
+    \\STX\ETX\NUL\DC2\ETX\EOT\NUL*\n\
+    \\t\n\
+    \\STX\ETX\SOH\DC2\ETX\ENQ\NUL/\n\
+    \E\n\
+    \\STX\EOT\NUL\DC2\EOT\b\NUL\f\SOH\SUB9 Represents a transaction from any supported blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\b\b\DC2\n\
+    \\f\n\
+    \\EOT\EOT\NUL\b\NUL\DC2\EOT\t\STX\v\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\b\NUL\SOH\DC2\ETX\t\b\f\n\
+    \$\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\n\
+    \\EOT\DC2\"\ETB Raw transaction data.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\n\
+    \\EOT\t\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\n\
+    \\n\
+    \\r\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\n\
+    \\DLE\DC1\n\
+    \?\n\
+    \\STX\EOT\SOH\DC2\EOT\SI\NUL\DC1\SOH\SUB3 Request to submit transactions to the blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX\SI\b\ETB\n\
+    \.\n\
+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX\DLE\STX\GS\"! List of transactions to submit.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\ETX\DLE\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX\DLE\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX\DLE\SYN\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX\DLE\ESC\FS\n\
+    \K\n\
+    \\STX\EOT\STX\DC2\EOT\DC4\NUL\SYN\SOH\SUB? Response containing references to the submitted transactions.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETX\DC4\b\CAN\n\
+    \.\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETX\NAK\STX\EM\"! List of transaction references.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\EOT\DC2\ETX\NAK\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX\NAK\v\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\NAK\DC1\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\NAK\ETB\CAN\n\
+    \P\n\
+    \\STX\ENQ\NUL\DC2\EOT\EM\NUL\US\SOH\SUBD Enum representing the various stages of a transaction's lifecycle.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ENQ\NUL\SOH\DC2\ETX\EM\ENQ\n\
+    \\n\
+    \!\n\
+    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX\SUB\STX\CAN\"\DC4 Unspecified stage.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX\SUB\STX\DC3\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX\SUB\SYN\ETB\n\
+    \=\n\
+    \\EOT\ENQ\NUL\STX\SOH\DC2\ETX\ESC\STX\EM\"0 Transaction has been acknowledged by the node.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\ETX\ESC\STX\DC4\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\ETX\ESC\ETB\CAN\n\
+    \-\n\
+    \\EOT\ENQ\NUL\STX\STX\DC2\ETX\FS\STX\DC4\"  Transaction is in the mempool.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\ETX\FS\STX\SI\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\STX\STX\DC2\ETX\FS\DC2\DC3\n\
+    \B\n\
+    \\EOT\ENQ\NUL\STX\ETX\DC2\ETX\GS\STX\DC4\"5 Transaction has been propagated across the network.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\ETX\GS\STX\SI\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\ETX\GS\DC2\DC3\n\
+    \@\n\
+    \\EOT\ENQ\NUL\STX\EOT\DC2\ETX\RS\STX\SYN\"3 Transaction has been confirmed on the blockchain.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\EOT\SOH\DC2\ETX\RS\STX\DC1\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\EOT\STX\DC2\ETX\RS\DC4\NAK\n\
+    \\n\
+    \\n\
+    \\STX\EOT\ETX\DC2\EOT!\NUL$\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETX!\b\DC3\n\
+    \%\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETX\"\STX\DC4\"\CAN The contents of the tx\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\ETX\"\STX\f\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX\"\r\SI\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX\"\DC2\DC3\n\
+    \*\n\
+    \\EOT\EOT\ETX\STX\SOH\DC2\ETX#\STX\DC2\"\GS The current stage of the tx\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ACK\DC2\ETX#\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETX#\b\r\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETX#\DLE\DC1\n\
+    \D\n\
+    \\STX\EOT\EOT\DC2\EOT'\NUL)\SOH\SUB8 Request to check the status of submitted transactions.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\EOT\SOH\DC2\ETX'\b\SUB\n\
+    \<\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\ETX(\STX\US\"/ List of transaction currently on the mempool.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\EOT\DC2\ETX(\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ACK\DC2\ETX(\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX(\ETB\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX(\GS\RS\n\
+    \J\n\
+    \\STX\EOT\ENQ\DC2\EOT,\NUL.\SOH\SUB> Response containing the stage of the submitted transactions.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ENQ\SOH\DC2\ETX,\b\ESC\n\
+    \J\n\
+    \\EOT\EOT\ENQ\STX\NUL\DC2\ETX-\STX\ESC\"= List of stages corresponding to the transaction references.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\ETX-\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ACK\DC2\ETX-\v\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\ETX-\DC1\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\ETX-\EM\SUB\n\
+    \H\n\
+    \\STX\EOT\ACK\DC2\EOT1\NUL3\SOH\SUB< Request to wait for transactions to reach a certain stage.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ACK\SOH\DC2\ETX1\b\CAN\n\
+    \:\n\
+    \\EOT\EOT\ACK\STX\NUL\DC2\ETX2\STX\EM\"- List of transaction references to wait for.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\ETX2\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\ETX2\v\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\ETX2\DC1\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\ETX2\ETB\CAN\n\
+    \_\n\
+    \\STX\EOT\a\DC2\EOT6\NUL9\SOH\SUBS Response containing the transaction reference and stage once it has been reached.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\a\SOH\DC2\ETX6\b\EM\n\
+    \%\n\
+    \\EOT\EOT\a\STX\NUL\DC2\ETX7\STX\DLE\"\CAN Transaction reference.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\ETX7\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\ETX7\b\v\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\ETX7\SO\SI\n\
+    \0\n\
+    \\EOT\EOT\a\STX\SOH\DC2\ETX8\STX\DC2\"# Stage reached by the transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ACK\DC2\ETX8\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\SOH\DC2\ETX8\b\r\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ETX\DC2\ETX8\DLE\DC1\n\
+    \D\n\
+    \\STX\EOT\b\DC2\EOT<\NUL@\SOH\SUB8 Represents a tx pattern from any supported blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\b\SOH\DC2\ETX<\b\EM\n\
+    \\f\n\
+    \\EOT\EOT\b\b\NUL\DC2\EOT=\STX?\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\b\b\NUL\SOH\DC2\ETX=\b\r\n\
+    \$\n\
+    \\EOT\EOT\b\STX\NUL\DC2\ETX>\EOT2\"\ETB A Cardano tx pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ACK\DC2\ETX>\EOT%\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\SOH\DC2\ETX>&-\n\
+    \\f\n\
+    \\ENQ\EOT\b\STX\NUL\ETX\DC2\ETX>01\n\
+    \]\n\
+    \\STX\EOT\t\DC2\EOTC\NULH\SOH\SUBQ Represents a simple tx predicate that can composed to create more complext ones\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\t\SOH\DC2\ETXC\b\DC3\n\
+    \8\n\
+    \\EOT\EOT\t\STX\NUL\DC2\ETXD\STX\RS\"+ Predicate is true if tx exhibits pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ACK\DC2\ETXD\STX\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\SOH\DC2\ETXD\DC4\EM\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\NUL\ETX\DC2\ETXD\FS\GS\n\
+    \?\n\
+    \\EOT\EOT\t\STX\SOH\DC2\ETXE\STX\US\"2 Predicate is true if tx doesn't exhibit pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\EOT\DC2\ETXE\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ACK\DC2\ETXE\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\SOH\DC2\ETXE\ETB\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\SOH\ETX\DC2\ETXE\GS\RS\n\
+    \D\n\
+    \\EOT\EOT\t\STX\STX\DC2\ETXF\STX\"\"7 Predicate is true if tx exhibits all of the patterns.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\STX\EOT\DC2\ETXF\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\STX\ACK\DC2\ETXF\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\STX\SOH\DC2\ETXF\ETB\GS\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\STX\ETX\DC2\ETXF !\n\
+    \D\n\
+    \\EOT\EOT\t\STX\ETX\DC2\ETXG\STX\"\"7 Predicate is true if tx exhibits any of the patterns.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\ETX\EOT\DC2\ETXG\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\ETX\ACK\DC2\ETXG\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\ETX\SOH\DC2\ETXG\ETB\GS\n\
+    \\f\n\
+    \\ENQ\EOT\t\STX\ETX\ETX\DC2\ETXG !\n\
+    \?\n\
+    \\STX\EOT\n\
+    \\DC2\EOTK\NULN\SOH\SUB3 Request to watch changes of specific mempool txs.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\n\
+    \\SOH\DC2\ETXK\b\ESC\n\
+    \5\n\
+    \\EOT\EOT\n\
+    \\STX\NUL\DC2\ETXL\STX\FS\"( A predicate to filter transactions by.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ACK\DC2\ETXL\STX\r\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\SOH\DC2\ETXL\SO\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ETX\DC2\ETXL\SUB\ESC\n\
+    \7\n\
+    \\EOT\EOT\n\
+    \\STX\SOH\DC2\ETXM\STX+\"* Field mask to selectively return fields.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ACK\DC2\ETXM\STX\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\SOH\DC2\ETXM\FS&\n\
+    \\f\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ETX\DC2\ETXM)*\n\
+    \@\n\
+    \\STX\EOT\v\DC2\EOTQ\NULS\SOH\SUB4 Response that represents a change in a mempool tx.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\v\SOH\DC2\ETXQ\b\FS\n\
+    \?\n\
+    \\EOT\EOT\v\STX\NUL\DC2\ETXR\STX\NAK\"2 The content and stage of the tx that has changed\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ACK\DC2\ETXR\STX\r\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\SOH\DC2\ETXR\SO\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\v\STX\NUL\ETX\DC2\ETXR\DC3\DC4\n\
+    \W\n\
+    \\STX\ACK\NUL\DC2\EOTV\NUL[\SOH\SUBK Service definition for submitting transactions and checking their status.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ACK\NUL\SOH\DC2\ETXV\b\NAK\n\
+    \5\n\
+    \\EOT\ACK\NUL\STX\NUL\DC2\ETXW\STX;\"( Submit transactions to the blockchain.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\SOH\DC2\ETXW\ACK\SO\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\STX\DC2\ETXW\SI\RS\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\ETX\DC2\ETXW)9\n\
+    \U\n\
+    \\EOT\ACK\NUL\STX\SOH\DC2\ETXX\STXE\"H Wait for transactions to reach a certain stage and stream the updates.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\SOH\DC2\ETXX\ACK\SI\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\STX\DC2\ETXX\DLE \n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\ACK\DC2\ETXX+1\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\ETX\DC2\ETXX2C\n\
+    \?\n\
+    \\EOT\ACK\NUL\STX\STX\DC2\ETXY\STXD\"2 Returns a point-in-time snapshot of the mempool.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\SOH\DC2\ETXY\ACK\DC1\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\STX\DC2\ETXY\DC2$\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\ETX\DC2\ETXY/B\n\
+    \V\n\
+    \\EOT\ACK\NUL\STX\ETX\DC2\ETXZ\STXN\"I Stream transactions from the mempool matching the specified predicates.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\SOH\DC2\ETXZ\ACK\DC2\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\STX\DC2\ETXZ\DC3&\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\ACK\DC2\ETXZ17\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\ETX\ETX\DC2\ETXZ8Lb\ACKproto3"
diff --git a/Proto/Utxorpc/V1alpha/Submit/Submit_Fields.hs b/Proto/Utxorpc/V1alpha/Submit/Submit_Fields.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Submit/Submit_Fields.hs
@@ -0,0 +1,179 @@
+{- This file was auto-generated from utxorpc/v1alpha/submit/submit.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.Utxorpc.V1alpha.Submit.Submit_Fields where
+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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+allOf ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "allOf" a) =>
+  Lens.Family2.LensLike' f s a
+allOf = Data.ProtoLens.Field.field @"allOf"
+anyOf ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "anyOf" a) =>
+  Lens.Family2.LensLike' f s a
+anyOf = Data.ProtoLens.Field.field @"anyOf"
+cardano ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "cardano" a) =>
+  Lens.Family2.LensLike' f s a
+cardano = Data.ProtoLens.Field.field @"cardano"
+fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+fieldMask = Data.ProtoLens.Field.field @"fieldMask"
+match ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "match" a) =>
+  Lens.Family2.LensLike' f s a
+match = Data.ProtoLens.Field.field @"match"
+maybe'cardano ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'cardano" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'cardano = Data.ProtoLens.Field.field @"maybe'cardano"
+maybe'chain ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'chain" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'chain = Data.ProtoLens.Field.field @"maybe'chain"
+maybe'fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'fieldMask = Data.ProtoLens.Field.field @"maybe'fieldMask"
+maybe'match ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'match" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'match = Data.ProtoLens.Field.field @"maybe'match"
+maybe'predicate ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'predicate" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'predicate = Data.ProtoLens.Field.field @"maybe'predicate"
+maybe'raw ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'raw" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'raw = Data.ProtoLens.Field.field @"maybe'raw"
+maybe'tx ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'tx" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'tx = Data.ProtoLens.Field.field @"maybe'tx"
+maybe'type' ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'type'" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'type' = Data.ProtoLens.Field.field @"maybe'type'"
+not ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "not" a) =>
+  Lens.Family2.LensLike' f s a
+not = Data.ProtoLens.Field.field @"not"
+predicate ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "predicate" a) =>
+  Lens.Family2.LensLike' f s a
+predicate = Data.ProtoLens.Field.field @"predicate"
+raw ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "raw" a) =>
+  Lens.Family2.LensLike' f s a
+raw = Data.ProtoLens.Field.field @"raw"
+ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ref" a) =>
+  Lens.Family2.LensLike' f s a
+ref = Data.ProtoLens.Field.field @"ref"
+stage ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "stage" a) =>
+  Lens.Family2.LensLike' f s a
+stage = Data.ProtoLens.Field.field @"stage"
+tx ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "tx" a) =>
+  Lens.Family2.LensLike' f s a
+tx = Data.ProtoLens.Field.field @"tx"
+txs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "txs" a) =>
+  Lens.Family2.LensLike' f s a
+txs = Data.ProtoLens.Field.field @"txs"
+vec'allOf ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'allOf" a) =>
+  Lens.Family2.LensLike' f s a
+vec'allOf = Data.ProtoLens.Field.field @"vec'allOf"
+vec'anyOf ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'anyOf" a) =>
+  Lens.Family2.LensLike' f s a
+vec'anyOf = Data.ProtoLens.Field.field @"vec'anyOf"
+vec'not ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'not" a) =>
+  Lens.Family2.LensLike' f s a
+vec'not = Data.ProtoLens.Field.field @"vec'not"
+vec'ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'ref" a) =>
+  Lens.Family2.LensLike' f s a
+vec'ref = Data.ProtoLens.Field.field @"vec'ref"
+vec'stage ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'stage" a) =>
+  Lens.Family2.LensLike' f s a
+vec'stage = Data.ProtoLens.Field.field @"vec'stage"
+vec'tx ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'tx" a) =>
+  Lens.Family2.LensLike' f s a
+vec'tx = Data.ProtoLens.Field.field @"vec'tx"
+vec'txs ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'txs" a) =>
+  Lens.Family2.LensLike' f s a
+vec'txs = Data.ProtoLens.Field.field @"vec'txs"
diff --git a/Proto/Utxorpc/V1alpha/Sync/Sync.hs b/Proto/Utxorpc/V1alpha/Sync/Sync.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Sync/Sync.hs
@@ -0,0 +1,1896 @@
+{- This file was auto-generated from utxorpc/v1alpha/sync/sync.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.Utxorpc.V1alpha.Sync.Sync (
+        ChainSyncService(..), AnyChainBlock(), AnyChainBlock'Chain(..),
+        _AnyChainBlock'Raw, _AnyChainBlock'Cardano, BlockRef(),
+        DumpHistoryRequest(), DumpHistoryResponse(), FetchBlockRequest(),
+        FetchBlockResponse(), FollowTipRequest(), FollowTipResponse(),
+        FollowTipResponse'Action(..), _FollowTipResponse'Apply,
+        _FollowTipResponse'Undo, _FollowTipResponse'Reset
+    ) 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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'chain' @:: Lens' AnyChainBlock (Prelude.Maybe AnyChainBlock'Chain)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'raw' @:: Lens' AnyChainBlock (Prelude.Maybe Data.ByteString.ByteString)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.raw' @:: Lens' AnyChainBlock Data.ByteString.ByteString@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'cardano' @:: Lens' AnyChainBlock (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.Block)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.cardano' @:: Lens' AnyChainBlock Proto.Utxorpc.V1alpha.Cardano.Cardano.Block@ -}
+data AnyChainBlock
+  = AnyChainBlock'_constructor {_AnyChainBlock'chain :: !(Prelude.Maybe AnyChainBlock'Chain),
+                                _AnyChainBlock'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainBlock where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainBlock'Chain
+  = AnyChainBlock'Raw !Data.ByteString.ByteString |
+    AnyChainBlock'Cardano !Proto.Utxorpc.V1alpha.Cardano.Cardano.Block
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainBlock "maybe'chain" (Prelude.Maybe AnyChainBlock'Chain) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainBlock'chain
+           (\ x__ y__ -> x__ {_AnyChainBlock'chain = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainBlock "maybe'raw" (Prelude.Maybe Data.ByteString.ByteString) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainBlock'chain
+           (\ x__ y__ -> x__ {_AnyChainBlock'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainBlock'Raw x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainBlock'Raw y__))
+instance Data.ProtoLens.Field.HasField AnyChainBlock "raw" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainBlock'chain
+           (\ x__ y__ -> x__ {_AnyChainBlock'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainBlock'Raw x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainBlock'Raw y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))
+instance Data.ProtoLens.Field.HasField AnyChainBlock "maybe'cardano" (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.Block) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainBlock'chain
+           (\ x__ y__ -> x__ {_AnyChainBlock'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainBlock'Cardano x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainBlock'Cardano y__))
+instance Data.ProtoLens.Field.HasField AnyChainBlock "cardano" Proto.Utxorpc.V1alpha.Cardano.Cardano.Block where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainBlock'chain
+           (\ x__ y__ -> x__ {_AnyChainBlock'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainBlock'Cardano x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainBlock'Cardano y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message AnyChainBlock where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.sync.AnyChainBlock"
+  packedMessageDescriptor _
+    = "\n\
+      \\rAnyChainBlock\DC2\DC2\n\
+      \\ETXraw\CAN\SOH \SOH(\fH\NULR\ETXraw\DC2:\n\
+      \\acardano\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.cardano.BlockH\NULR\acardanoB\a\n\
+      \\ENQchain"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        raw__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "raw"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'raw")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainBlock
+        cardano__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cardano"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Utxorpc.V1alpha.Cardano.Cardano.Block)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'cardano")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainBlock
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, raw__field_descriptor),
+           (Data.ProtoLens.Tag 2, cardano__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainBlock'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainBlock'_unknownFields = y__})
+  defMessage
+    = AnyChainBlock'_constructor
+        {_AnyChainBlock'chain = Prelude.Nothing,
+         _AnyChainBlock'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainBlock -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainBlock
+        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"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"raw") 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)
+                                       "cardano"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"cardano") 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) "AnyChainBlock"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'chain") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainBlock'Raw 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 (AnyChainBlock'Cardano 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 AnyChainBlock where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainBlock'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainBlock'chain x__) ())
+instance Control.DeepSeq.NFData AnyChainBlock'Chain where
+  rnf (AnyChainBlock'Raw x__) = Control.DeepSeq.rnf x__
+  rnf (AnyChainBlock'Cardano x__) = Control.DeepSeq.rnf x__
+_AnyChainBlock'Raw ::
+  Data.ProtoLens.Prism.Prism' AnyChainBlock'Chain Data.ByteString.ByteString
+_AnyChainBlock'Raw
+  = Data.ProtoLens.Prism.prism'
+      AnyChainBlock'Raw
+      (\ p__
+         -> case p__ of
+              (AnyChainBlock'Raw p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_AnyChainBlock'Cardano ::
+  Data.ProtoLens.Prism.Prism' AnyChainBlock'Chain Proto.Utxorpc.V1alpha.Cardano.Cardano.Block
+_AnyChainBlock'Cardano
+  = Data.ProtoLens.Prism.prism'
+      AnyChainBlock'Cardano
+      (\ p__
+         -> case p__ of
+              (AnyChainBlock'Cardano p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.index' @:: Lens' BlockRef Data.Word.Word64@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.hash' @:: Lens' BlockRef Data.ByteString.ByteString@ -}
+data BlockRef
+  = BlockRef'_constructor {_BlockRef'index :: !Data.Word.Word64,
+                           _BlockRef'hash :: !Data.ByteString.ByteString,
+                           _BlockRef'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show BlockRef where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField BlockRef "index" Data.Word.Word64 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockRef'index (\ x__ y__ -> x__ {_BlockRef'index = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField BlockRef "hash" Data.ByteString.ByteString where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _BlockRef'hash (\ x__ y__ -> x__ {_BlockRef'hash = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message BlockRef where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.sync.BlockRef"
+  packedMessageDescriptor _
+    = "\n\
+      \\bBlockRef\DC2\DC4\n\
+      \\ENQindex\CAN\SOH \SOH(\EOTR\ENQindex\DC2\DC2\n\
+      \\EOThash\CAN\STX \SOH(\fR\EOThash"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        index__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "index"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"index")) ::
+              Data.ProtoLens.FieldDescriptor BlockRef
+        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 BlockRef
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, index__field_descriptor),
+           (Data.ProtoLens.Tag 2, hash__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _BlockRef'_unknownFields
+        (\ x__ y__ -> x__ {_BlockRef'_unknownFields = y__})
+  defMessage
+    = BlockRef'_constructor
+        {_BlockRef'index = Data.ProtoLens.fieldDefault,
+         _BlockRef'hash = Data.ProtoLens.fieldDefault,
+         _BlockRef'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: BlockRef -> Data.ProtoLens.Encoding.Bytes.Parser BlockRef
+        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 "index"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"index") y x)
+                        18
+                          -> 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)
+                        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) "BlockRef"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"index") _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 @"hash") _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 BlockRef where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_BlockRef'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_BlockRef'index x__)
+                (Control.DeepSeq.deepseq (_BlockRef'hash x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.startToken' @:: Lens' DumpHistoryRequest BlockRef@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'startToken' @:: Lens' DumpHistoryRequest (Prelude.Maybe BlockRef)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maxItems' @:: Lens' DumpHistoryRequest Data.Word.Word32@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.fieldMask' @:: Lens' DumpHistoryRequest Proto.Google.Protobuf.FieldMask.FieldMask@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'fieldMask' @:: Lens' DumpHistoryRequest (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask)@ -}
+data DumpHistoryRequest
+  = DumpHistoryRequest'_constructor {_DumpHistoryRequest'startToken :: !(Prelude.Maybe BlockRef),
+                                     _DumpHistoryRequest'maxItems :: !Data.Word.Word32,
+                                     _DumpHistoryRequest'fieldMask :: !(Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask),
+                                     _DumpHistoryRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show DumpHistoryRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField DumpHistoryRequest "startToken" BlockRef where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryRequest'startToken
+           (\ x__ y__ -> x__ {_DumpHistoryRequest'startToken = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField DumpHistoryRequest "maybe'startToken" (Prelude.Maybe BlockRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryRequest'startToken
+           (\ x__ y__ -> x__ {_DumpHistoryRequest'startToken = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField DumpHistoryRequest "maxItems" Data.Word.Word32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryRequest'maxItems
+           (\ x__ y__ -> x__ {_DumpHistoryRequest'maxItems = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField DumpHistoryRequest "fieldMask" Proto.Google.Protobuf.FieldMask.FieldMask where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryRequest'fieldMask
+           (\ x__ y__ -> x__ {_DumpHistoryRequest'fieldMask = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField DumpHistoryRequest "maybe'fieldMask" (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryRequest'fieldMask
+           (\ x__ y__ -> x__ {_DumpHistoryRequest'fieldMask = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message DumpHistoryRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.DumpHistoryRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC2DumpHistoryRequest\DC2?\n\
+      \\vstart_token\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\n\
+      \startToken\DC2\ESC\n\
+      \\tmax_items\CAN\ETX \SOH(\rR\bmaxItems\DC29\n\
+      \\n\
+      \field_mask\CAN\EOT \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        startToken__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "start_token"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockRef)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'startToken")) ::
+              Data.ProtoLens.FieldDescriptor DumpHistoryRequest
+        maxItems__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "max_items"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"maxItems")) ::
+              Data.ProtoLens.FieldDescriptor DumpHistoryRequest
+        fieldMask__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "field_mask"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.FieldMask.FieldMask)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'fieldMask")) ::
+              Data.ProtoLens.FieldDescriptor DumpHistoryRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 2, startToken__field_descriptor),
+           (Data.ProtoLens.Tag 3, maxItems__field_descriptor),
+           (Data.ProtoLens.Tag 4, fieldMask__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _DumpHistoryRequest'_unknownFields
+        (\ x__ y__ -> x__ {_DumpHistoryRequest'_unknownFields = y__})
+  defMessage
+    = DumpHistoryRequest'_constructor
+        {_DumpHistoryRequest'startToken = Prelude.Nothing,
+         _DumpHistoryRequest'maxItems = Data.ProtoLens.fieldDefault,
+         _DumpHistoryRequest'fieldMask = Prelude.Nothing,
+         _DumpHistoryRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          DumpHistoryRequest
+          -> Data.ProtoLens.Encoding.Bytes.Parser DumpHistoryRequest
+        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 len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "start_token"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"startToken") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "max_items"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"maxItems") 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)
+                                       "field_mask"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fieldMask") 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) "DumpHistoryRequest"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'startToken") _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 @"maxItems") _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'fieldMask") _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 DumpHistoryRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_DumpHistoryRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_DumpHistoryRequest'startToken x__)
+                (Control.DeepSeq.deepseq
+                   (_DumpHistoryRequest'maxItems x__)
+                   (Control.DeepSeq.deepseq (_DumpHistoryRequest'fieldMask x__) ())))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.block' @:: Lens' DumpHistoryResponse [AnyChainBlock]@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.vec'block' @:: Lens' DumpHistoryResponse (Data.Vector.Vector AnyChainBlock)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.nextToken' @:: Lens' DumpHistoryResponse BlockRef@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'nextToken' @:: Lens' DumpHistoryResponse (Prelude.Maybe BlockRef)@ -}
+data DumpHistoryResponse
+  = DumpHistoryResponse'_constructor {_DumpHistoryResponse'block :: !(Data.Vector.Vector AnyChainBlock),
+                                      _DumpHistoryResponse'nextToken :: !(Prelude.Maybe BlockRef),
+                                      _DumpHistoryResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show DumpHistoryResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField DumpHistoryResponse "block" [AnyChainBlock] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryResponse'block
+           (\ x__ y__ -> x__ {_DumpHistoryResponse'block = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField DumpHistoryResponse "vec'block" (Data.Vector.Vector AnyChainBlock) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryResponse'block
+           (\ x__ y__ -> x__ {_DumpHistoryResponse'block = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField DumpHistoryResponse "nextToken" BlockRef where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryResponse'nextToken
+           (\ x__ y__ -> x__ {_DumpHistoryResponse'nextToken = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField DumpHistoryResponse "maybe'nextToken" (Prelude.Maybe BlockRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _DumpHistoryResponse'nextToken
+           (\ x__ y__ -> x__ {_DumpHistoryResponse'nextToken = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message DumpHistoryResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.DumpHistoryResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC3DumpHistoryResponse\DC29\n\
+      \\ENQblock\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.sync.AnyChainBlockR\ENQblock\DC2=\n\
+      \\n\
+      \next_token\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\tnextToken"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        block__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "block"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainBlock)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"block")) ::
+              Data.ProtoLens.FieldDescriptor DumpHistoryResponse
+        nextToken__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "next_token"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockRef)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'nextToken")) ::
+              Data.ProtoLens.FieldDescriptor DumpHistoryResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, block__field_descriptor),
+           (Data.ProtoLens.Tag 2, nextToken__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _DumpHistoryResponse'_unknownFields
+        (\ x__ y__ -> x__ {_DumpHistoryResponse'_unknownFields = y__})
+  defMessage
+    = DumpHistoryResponse'_constructor
+        {_DumpHistoryResponse'block = Data.Vector.Generic.empty,
+         _DumpHistoryResponse'nextToken = Prelude.Nothing,
+         _DumpHistoryResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          DumpHistoryResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld AnyChainBlock
+             -> Data.ProtoLens.Encoding.Bytes.Parser DumpHistoryResponse
+        loop x mutable'block
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'block <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'block)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'block") frozen'block 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)
+                                        "block"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'block y)
+                                loop x 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)
+                                       "next_token"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"nextToken") y x)
+                                  mutable'block
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'block
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'block <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'block)
+          "DumpHistoryResponse"
+  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'block") _x))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view
+                       (Data.ProtoLens.Field.field @"maybe'nextToken") _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 DumpHistoryResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_DumpHistoryResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_DumpHistoryResponse'block x__)
+                (Control.DeepSeq.deepseq (_DumpHistoryResponse'nextToken x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.ref' @:: Lens' FetchBlockRequest [BlockRef]@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.vec'ref' @:: Lens' FetchBlockRequest (Data.Vector.Vector BlockRef)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.fieldMask' @:: Lens' FetchBlockRequest Proto.Google.Protobuf.FieldMask.FieldMask@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'fieldMask' @:: Lens' FetchBlockRequest (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask)@ -}
+data FetchBlockRequest
+  = FetchBlockRequest'_constructor {_FetchBlockRequest'ref :: !(Data.Vector.Vector BlockRef),
+                                    _FetchBlockRequest'fieldMask :: !(Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask),
+                                    _FetchBlockRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show FetchBlockRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField FetchBlockRequest "ref" [BlockRef] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockRequest'ref
+           (\ x__ y__ -> x__ {_FetchBlockRequest'ref = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField FetchBlockRequest "vec'ref" (Data.Vector.Vector BlockRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockRequest'ref
+           (\ x__ y__ -> x__ {_FetchBlockRequest'ref = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField FetchBlockRequest "fieldMask" Proto.Google.Protobuf.FieldMask.FieldMask where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockRequest'fieldMask
+           (\ x__ y__ -> x__ {_FetchBlockRequest'fieldMask = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField FetchBlockRequest "maybe'fieldMask" (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockRequest'fieldMask
+           (\ x__ y__ -> x__ {_FetchBlockRequest'fieldMask = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message FetchBlockRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.FetchBlockRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1FetchBlockRequest\DC20\n\
+      \\ETXref\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\ETXref\DC29\n\
+      \\n\
+      \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        ref__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "ref"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockRef)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"ref")) ::
+              Data.ProtoLens.FieldDescriptor FetchBlockRequest
+        fieldMask__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "field_mask"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.FieldMask.FieldMask)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'fieldMask")) ::
+              Data.ProtoLens.FieldDescriptor FetchBlockRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, ref__field_descriptor),
+           (Data.ProtoLens.Tag 2, fieldMask__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _FetchBlockRequest'_unknownFields
+        (\ x__ y__ -> x__ {_FetchBlockRequest'_unknownFields = y__})
+  defMessage
+    = FetchBlockRequest'_constructor
+        {_FetchBlockRequest'ref = Data.Vector.Generic.empty,
+         _FetchBlockRequest'fieldMask = Prelude.Nothing,
+         _FetchBlockRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          FetchBlockRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld BlockRef
+             -> Data.ProtoLens.Encoding.Bytes.Parser FetchBlockRequest
+        loop x mutable'ref
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'ref)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'ref") frozen'ref 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)
+                                        "ref"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'ref y)
+                                loop x 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)
+                                       "field_mask"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fieldMask") y x)
+                                  mutable'ref
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'ref
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'ref <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'ref)
+          "FetchBlockRequest"
+  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'ref") _x))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view
+                       (Data.ProtoLens.Field.field @"maybe'fieldMask") _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 FetchBlockRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_FetchBlockRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_FetchBlockRequest'ref x__)
+                (Control.DeepSeq.deepseq (_FetchBlockRequest'fieldMask x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.block' @:: Lens' FetchBlockResponse [AnyChainBlock]@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.vec'block' @:: Lens' FetchBlockResponse (Data.Vector.Vector AnyChainBlock)@ -}
+data FetchBlockResponse
+  = FetchBlockResponse'_constructor {_FetchBlockResponse'block :: !(Data.Vector.Vector AnyChainBlock),
+                                     _FetchBlockResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show FetchBlockResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField FetchBlockResponse "block" [AnyChainBlock] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockResponse'block
+           (\ x__ y__ -> x__ {_FetchBlockResponse'block = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField FetchBlockResponse "vec'block" (Data.Vector.Vector AnyChainBlock) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FetchBlockResponse'block
+           (\ x__ y__ -> x__ {_FetchBlockResponse'block = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message FetchBlockResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.FetchBlockResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC2FetchBlockResponse\DC29\n\
+      \\ENQblock\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.sync.AnyChainBlockR\ENQblock"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        block__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "block"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainBlock)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"block")) ::
+              Data.ProtoLens.FieldDescriptor FetchBlockResponse
+      in
+        Data.Map.fromList [(Data.ProtoLens.Tag 1, block__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _FetchBlockResponse'_unknownFields
+        (\ x__ y__ -> x__ {_FetchBlockResponse'_unknownFields = y__})
+  defMessage
+    = FetchBlockResponse'_constructor
+        {_FetchBlockResponse'block = Data.Vector.Generic.empty,
+         _FetchBlockResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          FetchBlockResponse
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld AnyChainBlock
+             -> Data.ProtoLens.Encoding.Bytes.Parser FetchBlockResponse
+        loop x mutable'block
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'block <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'block)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'block") frozen'block 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)
+                                        "block"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'block 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'block
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'block <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'block)
+          "FetchBlockResponse"
+  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'block") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData FetchBlockResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_FetchBlockResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_FetchBlockResponse'block x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.intersect' @:: Lens' FollowTipRequest [BlockRef]@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.vec'intersect' @:: Lens' FollowTipRequest (Data.Vector.Vector BlockRef)@ -}
+data FollowTipRequest
+  = FollowTipRequest'_constructor {_FollowTipRequest'intersect :: !(Data.Vector.Vector BlockRef),
+                                   _FollowTipRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show FollowTipRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField FollowTipRequest "intersect" [BlockRef] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipRequest'intersect
+           (\ x__ y__ -> x__ {_FollowTipRequest'intersect = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField FollowTipRequest "vec'intersect" (Data.Vector.Vector BlockRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipRequest'intersect
+           (\ x__ y__ -> x__ {_FollowTipRequest'intersect = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message FollowTipRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.FollowTipRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\DLEFollowTipRequest\DC2<\n\
+      \\tintersect\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\tintersect"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        intersect__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "intersect"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockRef)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"intersect")) ::
+              Data.ProtoLens.FieldDescriptor FollowTipRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, intersect__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _FollowTipRequest'_unknownFields
+        (\ x__ y__ -> x__ {_FollowTipRequest'_unknownFields = y__})
+  defMessage
+    = FollowTipRequest'_constructor
+        {_FollowTipRequest'intersect = Data.Vector.Generic.empty,
+         _FollowTipRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          FollowTipRequest
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld BlockRef
+             -> Data.ProtoLens.Encoding.Bytes.Parser FollowTipRequest
+        loop x mutable'intersect
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'intersect <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                               mutable'intersect)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'intersect") frozen'intersect 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)
+                                        "intersect"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'intersect 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'intersect
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'intersect <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'intersect)
+          "FollowTipRequest"
+  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'intersect") _x))
+             (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))
+instance Control.DeepSeq.NFData FollowTipRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_FollowTipRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_FollowTipRequest'intersect x__) ())
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'action' @:: Lens' FollowTipResponse (Prelude.Maybe FollowTipResponse'Action)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'apply' @:: Lens' FollowTipResponse (Prelude.Maybe AnyChainBlock)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.apply' @:: Lens' FollowTipResponse AnyChainBlock@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'undo' @:: Lens' FollowTipResponse (Prelude.Maybe AnyChainBlock)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.undo' @:: Lens' FollowTipResponse AnyChainBlock@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.maybe'reset' @:: Lens' FollowTipResponse (Prelude.Maybe BlockRef)@
+         * 'Proto.Utxorpc.V1alpha.Sync.Sync_Fields.reset' @:: Lens' FollowTipResponse BlockRef@ -}
+data FollowTipResponse
+  = FollowTipResponse'_constructor {_FollowTipResponse'action :: !(Prelude.Maybe FollowTipResponse'Action),
+                                    _FollowTipResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show FollowTipResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data FollowTipResponse'Action
+  = FollowTipResponse'Apply !AnyChainBlock |
+    FollowTipResponse'Undo !AnyChainBlock |
+    FollowTipResponse'Reset !BlockRef
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField FollowTipResponse "maybe'action" (Prelude.Maybe FollowTipResponse'Action) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField FollowTipResponse "maybe'apply" (Prelude.Maybe AnyChainBlock) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (FollowTipResponse'Apply x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap FollowTipResponse'Apply y__))
+instance Data.ProtoLens.Field.HasField FollowTipResponse "apply" AnyChainBlock where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (FollowTipResponse'Apply x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap FollowTipResponse'Apply y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField FollowTipResponse "maybe'undo" (Prelude.Maybe AnyChainBlock) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (FollowTipResponse'Undo x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap FollowTipResponse'Undo y__))
+instance Data.ProtoLens.Field.HasField FollowTipResponse "undo" AnyChainBlock where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (FollowTipResponse'Undo x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap FollowTipResponse'Undo y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField FollowTipResponse "maybe'reset" (Prelude.Maybe BlockRef) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (FollowTipResponse'Reset x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap FollowTipResponse'Reset y__))
+instance Data.ProtoLens.Field.HasField FollowTipResponse "reset" BlockRef where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _FollowTipResponse'action
+           (\ x__ y__ -> x__ {_FollowTipResponse'action = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (FollowTipResponse'Reset x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap FollowTipResponse'Reset y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message FollowTipResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.sync.FollowTipResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1FollowTipResponse\DC2;\n\
+      \\ENQapply\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.sync.AnyChainBlockH\NULR\ENQapply\DC29\n\
+      \\EOTundo\CAN\STX \SOH(\v2#.utxorpc.v1alpha.sync.AnyChainBlockH\NULR\EOTundo\DC26\n\
+      \\ENQreset\CAN\ETX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefH\NULR\ENQresetB\b\n\
+      \\ACKaction"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        apply__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "apply"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainBlock)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'apply")) ::
+              Data.ProtoLens.FieldDescriptor FollowTipResponse
+        undo__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "undo"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainBlock)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'undo")) ::
+              Data.ProtoLens.FieldDescriptor FollowTipResponse
+        reset__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "reset"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor BlockRef)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'reset")) ::
+              Data.ProtoLens.FieldDescriptor FollowTipResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, apply__field_descriptor),
+           (Data.ProtoLens.Tag 2, undo__field_descriptor),
+           (Data.ProtoLens.Tag 3, reset__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _FollowTipResponse'_unknownFields
+        (\ x__ y__ -> x__ {_FollowTipResponse'_unknownFields = y__})
+  defMessage
+    = FollowTipResponse'_constructor
+        {_FollowTipResponse'action = Prelude.Nothing,
+         _FollowTipResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          FollowTipResponse
+          -> Data.ProtoLens.Encoding.Bytes.Parser FollowTipResponse
+        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)
+                                       "apply"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"apply") 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)
+                                       "undo"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"undo") 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)
+                                       "reset"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"reset") 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) "FollowTipResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'action") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (FollowTipResponse'Apply 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 (FollowTipResponse'Undo 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 (FollowTipResponse'Reset 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 FollowTipResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_FollowTipResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_FollowTipResponse'action x__) ())
+instance Control.DeepSeq.NFData FollowTipResponse'Action where
+  rnf (FollowTipResponse'Apply x__) = Control.DeepSeq.rnf x__
+  rnf (FollowTipResponse'Undo x__) = Control.DeepSeq.rnf x__
+  rnf (FollowTipResponse'Reset x__) = Control.DeepSeq.rnf x__
+_FollowTipResponse'Apply ::
+  Data.ProtoLens.Prism.Prism' FollowTipResponse'Action AnyChainBlock
+_FollowTipResponse'Apply
+  = Data.ProtoLens.Prism.prism'
+      FollowTipResponse'Apply
+      (\ p__
+         -> case p__ of
+              (FollowTipResponse'Apply p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_FollowTipResponse'Undo ::
+  Data.ProtoLens.Prism.Prism' FollowTipResponse'Action AnyChainBlock
+_FollowTipResponse'Undo
+  = Data.ProtoLens.Prism.prism'
+      FollowTipResponse'Undo
+      (\ p__
+         -> case p__ of
+              (FollowTipResponse'Undo p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_FollowTipResponse'Reset ::
+  Data.ProtoLens.Prism.Prism' FollowTipResponse'Action BlockRef
+_FollowTipResponse'Reset
+  = Data.ProtoLens.Prism.prism'
+      FollowTipResponse'Reset
+      (\ p__
+         -> case p__ of
+              (FollowTipResponse'Reset p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+data ChainSyncService = ChainSyncService {}
+instance Data.ProtoLens.Service.Types.Service ChainSyncService where
+  type ServiceName ChainSyncService = "ChainSyncService"
+  type ServicePackage ChainSyncService = "utxorpc.v1alpha.sync"
+  type ServiceMethods ChainSyncService = '["dumpHistory",
+                                           "fetchBlock",
+                                           "followTip"]
+  packedServiceDescriptor _
+    = "\n\
+      \\DLEChainSyncService\DC2_\n\
+      \\n\
+      \FetchBlock\DC2'.utxorpc.v1alpha.sync.FetchBlockRequest\SUB(.utxorpc.v1alpha.sync.FetchBlockResponse\DC2b\n\
+      \\vDumpHistory\DC2(.utxorpc.v1alpha.sync.DumpHistoryRequest\SUB).utxorpc.v1alpha.sync.DumpHistoryResponse\DC2^\n\
+      \\tFollowTip\DC2&.utxorpc.v1alpha.sync.FollowTipRequest\SUB'.utxorpc.v1alpha.sync.FollowTipResponse0\SOH"
+instance Data.ProtoLens.Service.Types.HasMethodImpl ChainSyncService "fetchBlock" where
+  type MethodName ChainSyncService "fetchBlock" = "FetchBlock"
+  type MethodInput ChainSyncService "fetchBlock" = FetchBlockRequest
+  type MethodOutput ChainSyncService "fetchBlock" = FetchBlockResponse
+  type MethodStreamingType ChainSyncService "fetchBlock" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl ChainSyncService "dumpHistory" where
+  type MethodName ChainSyncService "dumpHistory" = "DumpHistory"
+  type MethodInput ChainSyncService "dumpHistory" = DumpHistoryRequest
+  type MethodOutput ChainSyncService "dumpHistory" = DumpHistoryResponse
+  type MethodStreamingType ChainSyncService "dumpHistory" = 'Data.ProtoLens.Service.Types.NonStreaming
+instance Data.ProtoLens.Service.Types.HasMethodImpl ChainSyncService "followTip" where
+  type MethodName ChainSyncService "followTip" = "FollowTip"
+  type MethodInput ChainSyncService "followTip" = FollowTipRequest
+  type MethodOutput ChainSyncService "followTip" = FollowTipResponse
+  type MethodStreamingType ChainSyncService "followTip" = 'Data.ProtoLens.Service.Types.ServerStreaming
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \\USutxorpc/v1alpha/sync/sync.proto\DC2\DC4utxorpc.v1alpha.sync\SUB google/protobuf/field_mask.proto\SUB%utxorpc/v1alpha/cardano/cardano.proto\"4\n\
+    \\bBlockRef\DC2\DC4\n\
+    \\ENQindex\CAN\SOH \SOH(\EOTR\ENQindex\DC2\DC2\n\
+    \\EOThash\CAN\STX \SOH(\fR\EOThash\"h\n\
+    \\rAnyChainBlock\DC2\DC2\n\
+    \\ETXraw\CAN\SOH \SOH(\fH\NULR\ETXraw\DC2:\n\
+    \\acardano\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.cardano.BlockH\NULR\acardanoB\a\n\
+    \\ENQchain\"\128\SOH\n\
+    \\DC1FetchBlockRequest\DC20\n\
+    \\ETXref\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\ETXref\DC29\n\
+    \\n\
+    \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask\"O\n\
+    \\DC2FetchBlockResponse\DC29\n\
+    \\ENQblock\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.sync.AnyChainBlockR\ENQblock\"\173\SOH\n\
+    \\DC2DumpHistoryRequest\DC2?\n\
+    \\vstart_token\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\n\
+    \startToken\DC2\ESC\n\
+    \\tmax_items\CAN\ETX \SOH(\rR\bmaxItems\DC29\n\
+    \\n\
+    \field_mask\CAN\EOT \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask\"\143\SOH\n\
+    \\DC3DumpHistoryResponse\DC29\n\
+    \\ENQblock\CAN\SOH \ETX(\v2#.utxorpc.v1alpha.sync.AnyChainBlockR\ENQblock\DC2=\n\
+    \\n\
+    \next_token\CAN\STX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\tnextToken\"P\n\
+    \\DLEFollowTipRequest\DC2<\n\
+    \\tintersect\CAN\SOH \ETX(\v2\RS.utxorpc.v1alpha.sync.BlockRefR\tintersect\"\205\SOH\n\
+    \\DC1FollowTipResponse\DC2;\n\
+    \\ENQapply\CAN\SOH \SOH(\v2#.utxorpc.v1alpha.sync.AnyChainBlockH\NULR\ENQapply\DC29\n\
+    \\EOTundo\CAN\STX \SOH(\v2#.utxorpc.v1alpha.sync.AnyChainBlockH\NULR\EOTundo\DC26\n\
+    \\ENQreset\CAN\ETX \SOH(\v2\RS.utxorpc.v1alpha.sync.BlockRefH\NULR\ENQresetB\b\n\
+    \\ACKaction2\183\STX\n\
+    \\DLEChainSyncService\DC2_\n\
+    \\n\
+    \FetchBlock\DC2'.utxorpc.v1alpha.sync.FetchBlockRequest\SUB(.utxorpc.v1alpha.sync.FetchBlockResponse\DC2b\n\
+    \\vDumpHistory\DC2(.utxorpc.v1alpha.sync.DumpHistoryRequest\SUB).utxorpc.v1alpha.sync.DumpHistoryResponse\DC2^\n\
+    \\tFollowTip\DC2&.utxorpc.v1alpha.sync.FollowTipRequest\SUB'.utxorpc.v1alpha.sync.FollowTipResponse0\SOHB\204\SOH\n\
+    \\CANcom.utxorpc.v1alpha.syncB\tSyncProtoP\SOHZ3github.com/utxorpc/go-sdk/spec/utxorpc/v1alpha/sync\162\STX\ETXUVS\170\STX\DC4Utxorpc.V1alpha.Sync\202\STX\DC4Utxorpc\\V1alpha\\Sync\226\STX Utxorpc\\V1alpha\\Sync\\GPBMetadata\234\STX\SYNUtxorpc::V1alpha::SyncJ\191\DC3\n\
+    \\ACK\DC2\EOT\NUL\NUL?\SOH\n\
+    \\b\n\
+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\STX\NUL\GS\n\
+    \\t\n\
+    \\STX\ETX\NUL\DC2\ETX\EOT\NUL*\n\
+    \\t\n\
+    \\STX\ETX\SOH\DC2\ETX\ENQ\NUL/\n\
+    \8\n\
+    \\STX\EOT\NUL\DC2\EOT\b\NUL\v\SOH\SUB, Represents a reference to a specific block\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\b\b\DLE\n\
+    \B\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\t\STX\DC3\"5 Height or slot number (depending on the blockchain)\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\t\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\t\t\SO\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\t\DC1\DC2\n\
+    \/\n\
+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\n\
+    \\STX\DC1\"\" Hash of the content of the block\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ENQ\DC2\ETX\n\
+    \\STX\a\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\n\
+    \\b\f\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\n\
+    \\SI\DLE\n\
+    \\n\
+    \\n\
+    \\STX\EOT\SOH\DC2\EOT\r\NUL\DC2\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX\r\b\NAK\n\
+    \\f\n\
+    \\EOT\EOT\SOH\b\NUL\DC2\EOT\SO\STX\DC1\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\b\NUL\SOH\DC2\ETX\SO\b\r\n\
+    \-\n\
+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX\SI\EOT\DC2\"  Original bytes for a raw block\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\ETX\SI\EOT\t\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX\SI\n\
+    \\r\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX\SI\DLE\DC1\n\
+    \&\n\
+    \\EOT\EOT\SOH\STX\SOH\DC2\ETX\DLE\EOT.\"\EM A parsed Cardano block.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX\DLE\EOT!\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX\DLE\")\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX\DLE,-\n\
+    \8\n\
+    \\STX\EOT\STX\DC2\EOT\NAK\NUL\CAN\SOH\SUB, Request to fetch a block by its reference.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETX\NAK\b\EM\n\
+    \(\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETX\SYN\STX\FS\"\ESC List of block references.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\EOT\DC2\ETX\SYN\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ACK\DC2\ETX\SYN\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\SYN\DC4\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\SYN\SUB\ESC\n\
+    \7\n\
+    \\EOT\EOT\STX\STX\SOH\DC2\ETX\ETB\STX+\"* Field mask to selectively return fields.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ACK\DC2\ETX\ETB\STX\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX\ETB\FS&\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX\ETB)*\n\
+    \5\n\
+    \\STX\EOT\ETX\DC2\EOT\ESC\NUL\GS\SOH\SUB) Response containing the fetched blocks.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETX\ESC\b\SUB\n\
+    \&\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETX\FS\STX#\"\EM List of fetched blocks.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\EOT\DC2\ETX\FS\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\ETX\FS\v\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX\FS\EM\RS\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX\FS!\"\n\
+    \0\n\
+    \\STX\EOT\EOT\DC2\EOT \NUL$\SOH\SUB$ Request to dump the block history.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\EOT\SOH\DC2\ETX \b\SUB\n\
+    \9\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\ETX!\STX\ESC\", Starting point for the block history dump.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ACK\DC2\ETX!\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX!\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX!\EM\SUB\n\
+    \1\n\
+    \\EOT\EOT\EOT\STX\SOH\DC2\ETX\"\STX\ETB\"$ Maximum number of items to return.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ENQ\DC2\ETX\"\STX\b\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\ETX\"\t\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\ETX\"\NAK\SYN\n\
+    \7\n\
+    \\EOT\EOT\EOT\STX\STX\DC2\ETX#\STX+\"* Field mask to selectively return fields.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\STX\ACK\DC2\ETX#\STX\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\ETX#\FS&\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\ETX#)*\n\
+    \;\n\
+    \\STX\EOT\ENQ\DC2\EOT'\NUL*\SOH\SUB/ Response containing the dumped block history.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ENQ\SOH\DC2\ETX'\b\ESC\n\
+    \-\n\
+    \\EOT\EOT\ENQ\STX\NUL\DC2\ETX(\STX#\"  List of blocks in the history.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\ETX(\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ACK\DC2\ETX(\v\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\ETX(\EM\RS\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\ETX(!\"\n\
+    \)\n\
+    \\EOT\EOT\ENQ\STX\SOH\DC2\ETX)\STX\SUB\"\FS Next token for pagination.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ACK\DC2\ETX)\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\ETX)\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\ETX)\CAN\EM\n\
+    \:\n\
+    \\STX\EOT\ACK\DC2\EOT-\NUL/\SOH\SUB. Request to follow the tip of the blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ACK\SOH\DC2\ETX-\b\CAN\n\
+    \A\n\
+    \\EOT\EOT\ACK\STX\NUL\DC2\ETX.\STX\"\"4 List of block references to find the intersection.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\ETX.\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ACK\DC2\ETX.\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\ETX.\DC4\GS\n\
+    \\f\n\
+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\ETX. !\n\
+    \P\n\
+    \\STX\EOT\a\DC2\EOT2\NUL8\SOH\SUBD Response containing the action to perform while following the tip.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\a\SOH\DC2\ETX2\b\EM\n\
+    \\f\n\
+    \\EOT\EOT\a\b\NUL\DC2\EOT3\STX7\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\a\b\NUL\SOH\DC2\ETX3\b\SO\n\
+    \ \n\
+    \\EOT\EOT\a\STX\NUL\DC2\ETX4\EOT\FS\"\DC3 Apply this block.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ACK\DC2\ETX4\EOT\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\ETX4\DC2\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\ETX4\SUB\ESC\n\
+    \\US\n\
+    \\EOT\EOT\a\STX\SOH\DC2\ETX5\EOT\ESC\"\DC2 Undo this block.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ACK\DC2\ETX5\EOT\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\SOH\DC2\ETX5\DC2\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\SOH\ETX\DC2\ETX5\EM\SUB\n\
+    \-\n\
+    \\EOT\EOT\a\STX\STX\DC2\ETX6\EOT\ETB\"  Reset to this block reference.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\STX\ACK\DC2\ETX6\EOT\f\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\STX\SOH\DC2\ETX6\r\DC2\n\
+    \\f\n\
+    \\ENQ\EOT\a\STX\STX\ETX\DC2\ETX6\NAK\SYN\n\
+    \8\n\
+    \\STX\ACK\NUL\DC2\EOT;\NUL?\SOH\SUB, Service definition for syncing chain data.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ACK\NUL\SOH\DC2\ETX;\b\CAN\n\
+    \.\n\
+    \\EOT\ACK\NUL\STX\NUL\DC2\ETX<\STXA\"! Fetch a block by its reference.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\SOH\DC2\ETX<\ACK\DLE\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\STX\DC2\ETX<\DC1\"\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\ETX\DC2\ETX<-?\n\
+    \&\n\
+    \\EOT\ACK\NUL\STX\SOH\DC2\ETX=\STXD\"\EM Dump the block history.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\SOH\DC2\ETX=\ACK\DC1\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\STX\DC2\ETX=\DC2$\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\SOH\ETX\DC2\ETX=/B\n\
+    \0\n\
+    \\EOT\ACK\NUL\STX\STX\DC2\ETX>\STXE\"# Follow the tip of the blockchain.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\SOH\DC2\ETX>\ACK\SI\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\STX\DC2\ETX>\DLE \n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\ACK\DC2\ETX>+1\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\STX\ETX\DC2\ETX>2Cb\ACKproto3"
diff --git a/Proto/Utxorpc/V1alpha/Sync/Sync_Fields.hs b/Proto/Utxorpc/V1alpha/Sync/Sync_Fields.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Sync/Sync_Fields.hs
@@ -0,0 +1,183 @@
+{- This file was auto-generated from utxorpc/v1alpha/sync/sync.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.Utxorpc.V1alpha.Sync.Sync_Fields where
+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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+apply ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "apply" a) =>
+  Lens.Family2.LensLike' f s a
+apply = Data.ProtoLens.Field.field @"apply"
+block ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "block" a) =>
+  Lens.Family2.LensLike' f s a
+block = Data.ProtoLens.Field.field @"block"
+cardano ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "cardano" a) =>
+  Lens.Family2.LensLike' f s a
+cardano = Data.ProtoLens.Field.field @"cardano"
+fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+fieldMask = Data.ProtoLens.Field.field @"fieldMask"
+hash ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "hash" a) =>
+  Lens.Family2.LensLike' f s a
+hash = Data.ProtoLens.Field.field @"hash"
+index ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "index" a) =>
+  Lens.Family2.LensLike' f s a
+index = Data.ProtoLens.Field.field @"index"
+intersect ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "intersect" a) =>
+  Lens.Family2.LensLike' f s a
+intersect = Data.ProtoLens.Field.field @"intersect"
+maxItems ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maxItems" a) =>
+  Lens.Family2.LensLike' f s a
+maxItems = Data.ProtoLens.Field.field @"maxItems"
+maybe'action ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'action" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'action = Data.ProtoLens.Field.field @"maybe'action"
+maybe'apply ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'apply" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'apply = Data.ProtoLens.Field.field @"maybe'apply"
+maybe'cardano ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'cardano" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'cardano = Data.ProtoLens.Field.field @"maybe'cardano"
+maybe'chain ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'chain" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'chain = Data.ProtoLens.Field.field @"maybe'chain"
+maybe'fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'fieldMask = Data.ProtoLens.Field.field @"maybe'fieldMask"
+maybe'nextToken ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'nextToken" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'nextToken = Data.ProtoLens.Field.field @"maybe'nextToken"
+maybe'raw ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'raw" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'raw = Data.ProtoLens.Field.field @"maybe'raw"
+maybe'reset ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'reset" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'reset = Data.ProtoLens.Field.field @"maybe'reset"
+maybe'startToken ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'startToken" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'startToken = Data.ProtoLens.Field.field @"maybe'startToken"
+maybe'undo ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'undo" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'undo = Data.ProtoLens.Field.field @"maybe'undo"
+nextToken ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "nextToken" a) =>
+  Lens.Family2.LensLike' f s a
+nextToken = Data.ProtoLens.Field.field @"nextToken"
+raw ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "raw" a) =>
+  Lens.Family2.LensLike' f s a
+raw = Data.ProtoLens.Field.field @"raw"
+ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ref" a) =>
+  Lens.Family2.LensLike' f s a
+ref = Data.ProtoLens.Field.field @"ref"
+reset ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "reset" a) =>
+  Lens.Family2.LensLike' f s a
+reset = Data.ProtoLens.Field.field @"reset"
+startToken ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "startToken" a) =>
+  Lens.Family2.LensLike' f s a
+startToken = Data.ProtoLens.Field.field @"startToken"
+undo ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "undo" a) =>
+  Lens.Family2.LensLike' f s a
+undo = Data.ProtoLens.Field.field @"undo"
+vec'block ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'block" a) =>
+  Lens.Family2.LensLike' f s a
+vec'block = Data.ProtoLens.Field.field @"vec'block"
+vec'intersect ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'intersect" a) =>
+  Lens.Family2.LensLike' f s a
+vec'intersect = Data.ProtoLens.Field.field @"vec'intersect"
+vec'ref ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'ref" a) =>
+  Lens.Family2.LensLike' f s a
+vec'ref = Data.ProtoLens.Field.field @"vec'ref"
diff --git a/Proto/Utxorpc/V1alpha/Watch/Watch.hs b/Proto/Utxorpc/V1alpha/Watch/Watch.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Watch/Watch.hs
@@ -0,0 +1,1265 @@
+{- This file was auto-generated from utxorpc/v1alpha/watch/watch.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.Utxorpc.V1alpha.Watch.Watch (
+        WatchService(..), AnyChainTx(), AnyChainTx'Chain(..),
+        _AnyChainTx'Cardano, AnyChainTxPattern(),
+        AnyChainTxPattern'Chain(..), _AnyChainTxPattern'Cardano,
+        TxPredicate(), WatchTxRequest(), WatchTxResponse(),
+        WatchTxResponse'Action(..), _WatchTxResponse'Apply,
+        _WatchTxResponse'Undo
+    ) 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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'chain' @:: Lens' AnyChainTx (Prelude.Maybe AnyChainTx'Chain)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'cardano' @:: Lens' AnyChainTx (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.cardano' @:: Lens' AnyChainTx Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx@ -}
+data AnyChainTx
+  = AnyChainTx'_constructor {_AnyChainTx'chain :: !(Prelude.Maybe AnyChainTx'Chain),
+                             _AnyChainTx'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainTx where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainTx'Chain
+  = AnyChainTx'Cardano !Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainTx "maybe'chain" (Prelude.Maybe AnyChainTx'Chain) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'chain (\ x__ y__ -> x__ {_AnyChainTx'chain = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainTx "maybe'cardano" (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'chain (\ x__ y__ -> x__ {_AnyChainTx'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainTx'Cardano x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainTx'Cardano y__))
+instance Data.ProtoLens.Field.HasField AnyChainTx "cardano" Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTx'chain (\ x__ y__ -> x__ {_AnyChainTx'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainTx'Cardano x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainTx'Cardano y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message AnyChainTx where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.watch.AnyChainTx"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \AnyChainTx\DC27\n\
+      \\acardano\CAN\SOH \SOH(\v2\ESC.utxorpc.v1alpha.cardano.TxH\NULR\acardanoB\a\n\
+      \\ENQchain"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        cardano__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cardano"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'cardano")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainTx
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, cardano__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainTx'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainTx'_unknownFields = y__})
+  defMessage
+    = AnyChainTx'_constructor
+        {_AnyChainTx'chain = Prelude.Nothing,
+         _AnyChainTx'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainTx -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainTx
+        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)
+                                       "cardano"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"cardano") 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) "AnyChainTx"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'chain") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainTx'Cardano 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 AnyChainTx where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainTx'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainTx'chain x__) ())
+instance Control.DeepSeq.NFData AnyChainTx'Chain where
+  rnf (AnyChainTx'Cardano x__) = Control.DeepSeq.rnf x__
+_AnyChainTx'Cardano ::
+  Data.ProtoLens.Prism.Prism' AnyChainTx'Chain Proto.Utxorpc.V1alpha.Cardano.Cardano.Tx
+_AnyChainTx'Cardano
+  = Data.ProtoLens.Prism.prism'
+      AnyChainTx'Cardano
+      (\ p__
+         -> case p__ of (AnyChainTx'Cardano p__val) -> Prelude.Just p__val)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'chain' @:: Lens' AnyChainTxPattern (Prelude.Maybe AnyChainTxPattern'Chain)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'cardano' @:: Lens' AnyChainTxPattern (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.cardano' @:: Lens' AnyChainTxPattern Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern@ -}
+data AnyChainTxPattern
+  = AnyChainTxPattern'_constructor {_AnyChainTxPattern'chain :: !(Prelude.Maybe AnyChainTxPattern'Chain),
+                                    _AnyChainTxPattern'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show AnyChainTxPattern where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data AnyChainTxPattern'Chain
+  = AnyChainTxPattern'Cardano !Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "maybe'chain" (Prelude.Maybe AnyChainTxPattern'Chain) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "maybe'cardano" (Prelude.Maybe Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (AnyChainTxPattern'Cardano x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap AnyChainTxPattern'Cardano y__))
+instance Data.ProtoLens.Field.HasField AnyChainTxPattern "cardano" Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _AnyChainTxPattern'chain
+           (\ x__ y__ -> x__ {_AnyChainTxPattern'chain = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (AnyChainTxPattern'Cardano x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap AnyChainTxPattern'Cardano y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message AnyChainTxPattern where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.watch.AnyChainTxPattern"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1AnyChainTxPattern\DC2>\n\
+      \\acardano\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.TxPatternH\NULR\acardanoB\a\n\
+      \\ENQchain"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        cardano__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "cardano"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'cardano")) ::
+              Data.ProtoLens.FieldDescriptor AnyChainTxPattern
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, cardano__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _AnyChainTxPattern'_unknownFields
+        (\ x__ y__ -> x__ {_AnyChainTxPattern'_unknownFields = y__})
+  defMessage
+    = AnyChainTxPattern'_constructor
+        {_AnyChainTxPattern'chain = Prelude.Nothing,
+         _AnyChainTxPattern'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          AnyChainTxPattern
+          -> Data.ProtoLens.Encoding.Bytes.Parser AnyChainTxPattern
+        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)
+                                       "cardano"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"cardano") 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) "AnyChainTxPattern"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'chain") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (AnyChainTxPattern'Cardano 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 AnyChainTxPattern where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_AnyChainTxPattern'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_AnyChainTxPattern'chain x__) ())
+instance Control.DeepSeq.NFData AnyChainTxPattern'Chain where
+  rnf (AnyChainTxPattern'Cardano x__) = Control.DeepSeq.rnf x__
+_AnyChainTxPattern'Cardano ::
+  Data.ProtoLens.Prism.Prism' AnyChainTxPattern'Chain Proto.Utxorpc.V1alpha.Cardano.Cardano.TxPattern
+_AnyChainTxPattern'Cardano
+  = Data.ProtoLens.Prism.prism'
+      AnyChainTxPattern'Cardano
+      (\ p__
+         -> case p__ of
+              (AnyChainTxPattern'Cardano p__val) -> Prelude.Just p__val)
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.match' @:: Lens' TxPredicate AnyChainTxPattern@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'match' @:: Lens' TxPredicate (Prelude.Maybe AnyChainTxPattern)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.not' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.vec'not' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.allOf' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.vec'allOf' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.anyOf' @:: Lens' TxPredicate [TxPredicate]@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.vec'anyOf' @:: Lens' TxPredicate (Data.Vector.Vector TxPredicate)@ -}
+data TxPredicate
+  = TxPredicate'_constructor {_TxPredicate'match :: !(Prelude.Maybe AnyChainTxPattern),
+                              _TxPredicate'not :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'allOf :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'anyOf :: !(Data.Vector.Vector TxPredicate),
+                              _TxPredicate'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show TxPredicate where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField TxPredicate "match" AnyChainTxPattern where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'match (\ x__ y__ -> x__ {_TxPredicate'match = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField TxPredicate "maybe'match" (Prelude.Maybe AnyChainTxPattern) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'match (\ x__ y__ -> x__ {_TxPredicate'match = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "not" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'not (\ x__ y__ -> x__ {_TxPredicate'not = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'not" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'not (\ x__ y__ -> x__ {_TxPredicate'not = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "allOf" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'allOf (\ x__ y__ -> x__ {_TxPredicate'allOf = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'allOf" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'allOf (\ x__ y__ -> x__ {_TxPredicate'allOf = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField TxPredicate "anyOf" [TxPredicate] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'anyOf (\ x__ y__ -> x__ {_TxPredicate'anyOf = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField TxPredicate "vec'anyOf" (Data.Vector.Vector TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _TxPredicate'anyOf (\ x__ y__ -> x__ {_TxPredicate'anyOf = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message TxPredicate where
+  messageName _ = Data.Text.pack "utxorpc.v1alpha.watch.TxPredicate"
+  packedMessageDescriptor _
+    = "\n\
+      \\vTxPredicate\DC2>\n\
+      \\ENQmatch\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.watch.AnyChainTxPatternR\ENQmatch\DC24\n\
+      \\ETXnot\CAN\STX \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ETXnot\DC29\n\
+      \\ACKall_of\CAN\ETX \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ENQallOf\DC29\n\
+      \\ACKany_of\CAN\EOT \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ENQanyOf"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        match__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "match"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTxPattern)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'match")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        not__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "not"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"not")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        allOf__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "all_of"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"allOf")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+        anyOf__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "any_of"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"anyOf")) ::
+              Data.ProtoLens.FieldDescriptor TxPredicate
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, match__field_descriptor),
+           (Data.ProtoLens.Tag 2, not__field_descriptor),
+           (Data.ProtoLens.Tag 3, allOf__field_descriptor),
+           (Data.ProtoLens.Tag 4, anyOf__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _TxPredicate'_unknownFields
+        (\ x__ y__ -> x__ {_TxPredicate'_unknownFields = y__})
+  defMessage
+    = TxPredicate'_constructor
+        {_TxPredicate'match = Prelude.Nothing,
+         _TxPredicate'not = Data.Vector.Generic.empty,
+         _TxPredicate'allOf = Data.Vector.Generic.empty,
+         _TxPredicate'anyOf = Data.Vector.Generic.empty,
+         _TxPredicate'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          TxPredicate
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld TxPredicate
+                   -> Data.ProtoLens.Encoding.Bytes.Parser TxPredicate
+        loop x mutable'allOf mutable'anyOf mutable'not
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'allOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'allOf)
+                      frozen'anyOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'anyOf)
+                      frozen'not <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'not)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         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'allOf") frozen'allOf
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'anyOf") frozen'anyOf
+                                 (Lens.Family2.set
+                                    (Data.ProtoLens.Field.field @"vec'not") frozen'not 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)
+                                       "match"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"match") y x)
+                                  mutable'allOf mutable'anyOf mutable'not
+                        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)
+                                        "not"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'not y)
+                                loop x mutable'allOf mutable'anyOf v
+                        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)
+                                        "all_of"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'allOf y)
+                                loop x v mutable'anyOf mutable'not
+                        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)
+                                        "any_of"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'anyOf y)
+                                loop x mutable'allOf v mutable'not
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'allOf mutable'anyOf mutable'not
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'allOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              mutable'anyOf <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              mutable'not <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                               Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'allOf mutable'anyOf mutable'not)
+          "TxPredicate"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'match") _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.<>)
+                (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'not") _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'allOf") _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'anyOf") _x))
+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
+instance Control.DeepSeq.NFData TxPredicate where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_TxPredicate'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_TxPredicate'match x__)
+                (Control.DeepSeq.deepseq
+                   (_TxPredicate'not x__)
+                   (Control.DeepSeq.deepseq
+                      (_TxPredicate'allOf x__)
+                      (Control.DeepSeq.deepseq (_TxPredicate'anyOf x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.predicate' @:: Lens' WatchTxRequest TxPredicate@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'predicate' @:: Lens' WatchTxRequest (Prelude.Maybe TxPredicate)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.fieldMask' @:: Lens' WatchTxRequest Proto.Google.Protobuf.FieldMask.FieldMask@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'fieldMask' @:: Lens' WatchTxRequest (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask)@ -}
+data WatchTxRequest
+  = WatchTxRequest'_constructor {_WatchTxRequest'predicate :: !(Prelude.Maybe TxPredicate),
+                                 _WatchTxRequest'fieldMask :: !(Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask),
+                                 _WatchTxRequest'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WatchTxRequest where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField WatchTxRequest "predicate" TxPredicate where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxRequest'predicate
+           (\ x__ y__ -> x__ {_WatchTxRequest'predicate = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField WatchTxRequest "maybe'predicate" (Prelude.Maybe TxPredicate) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxRequest'predicate
+           (\ x__ y__ -> x__ {_WatchTxRequest'predicate = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WatchTxRequest "fieldMask" Proto.Google.Protobuf.FieldMask.FieldMask where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxRequest'fieldMask
+           (\ x__ y__ -> x__ {_WatchTxRequest'fieldMask = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField WatchTxRequest "maybe'fieldMask" (Prelude.Maybe Proto.Google.Protobuf.FieldMask.FieldMask) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxRequest'fieldMask
+           (\ x__ y__ -> x__ {_WatchTxRequest'fieldMask = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message WatchTxRequest where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.watch.WatchTxRequest"
+  packedMessageDescriptor _
+    = "\n\
+      \\SOWatchTxRequest\DC2@\n\
+      \\tpredicate\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.watch.TxPredicateR\tpredicate\DC29\n\
+      \\n\
+      \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        predicate__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "predicate"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor TxPredicate)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'predicate")) ::
+              Data.ProtoLens.FieldDescriptor WatchTxRequest
+        fieldMask__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "field_mask"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.FieldMask.FieldMask)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'fieldMask")) ::
+              Data.ProtoLens.FieldDescriptor WatchTxRequest
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, predicate__field_descriptor),
+           (Data.ProtoLens.Tag 2, fieldMask__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WatchTxRequest'_unknownFields
+        (\ x__ y__ -> x__ {_WatchTxRequest'_unknownFields = y__})
+  defMessage
+    = WatchTxRequest'_constructor
+        {_WatchTxRequest'predicate = Prelude.Nothing,
+         _WatchTxRequest'fieldMask = Prelude.Nothing,
+         _WatchTxRequest'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WatchTxRequest
+          -> Data.ProtoLens.Encoding.Bytes.Parser WatchTxRequest
+        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)
+                                       "predicate"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"predicate") 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)
+                                       "field_mask"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fieldMask") 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) "WatchTxRequest"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view
+                    (Data.ProtoLens.Field.field @"maybe'predicate") _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'fieldMask") _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 WatchTxRequest where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WatchTxRequest'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_WatchTxRequest'predicate x__)
+                (Control.DeepSeq.deepseq (_WatchTxRequest'fieldMask x__) ()))
+{- | Fields :
+     
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'action' @:: Lens' WatchTxResponse (Prelude.Maybe WatchTxResponse'Action)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'apply' @:: Lens' WatchTxResponse (Prelude.Maybe AnyChainTx)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.apply' @:: Lens' WatchTxResponse AnyChainTx@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.maybe'undo' @:: Lens' WatchTxResponse (Prelude.Maybe AnyChainTx)@
+         * 'Proto.Utxorpc.V1alpha.Watch.Watch_Fields.undo' @:: Lens' WatchTxResponse AnyChainTx@ -}
+data WatchTxResponse
+  = WatchTxResponse'_constructor {_WatchTxResponse'action :: !(Prelude.Maybe WatchTxResponse'Action),
+                                  _WatchTxResponse'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show WatchTxResponse where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data WatchTxResponse'Action
+  = WatchTxResponse'Apply !AnyChainTx |
+    WatchTxResponse'Undo !AnyChainTx
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField WatchTxResponse "maybe'action" (Prelude.Maybe WatchTxResponse'Action) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxResponse'action
+           (\ x__ y__ -> x__ {_WatchTxResponse'action = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField WatchTxResponse "maybe'apply" (Prelude.Maybe AnyChainTx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxResponse'action
+           (\ x__ y__ -> x__ {_WatchTxResponse'action = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (WatchTxResponse'Apply x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap WatchTxResponse'Apply y__))
+instance Data.ProtoLens.Field.HasField WatchTxResponse "apply" AnyChainTx where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxResponse'action
+           (\ x__ y__ -> x__ {_WatchTxResponse'action = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (WatchTxResponse'Apply x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap WatchTxResponse'Apply y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField WatchTxResponse "maybe'undo" (Prelude.Maybe AnyChainTx) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxResponse'action
+           (\ x__ y__ -> x__ {_WatchTxResponse'action = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (WatchTxResponse'Undo x__val)) -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap WatchTxResponse'Undo y__))
+instance Data.ProtoLens.Field.HasField WatchTxResponse "undo" AnyChainTx where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _WatchTxResponse'action
+           (\ x__ y__ -> x__ {_WatchTxResponse'action = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (WatchTxResponse'Undo x__val)) -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap WatchTxResponse'Undo y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message WatchTxResponse where
+  messageName _
+    = Data.Text.pack "utxorpc.v1alpha.watch.WatchTxResponse"
+  packedMessageDescriptor _
+    = "\n\
+      \\SIWatchTxResponse\DC29\n\
+      \\ENQapply\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.watch.AnyChainTxH\NULR\ENQapply\DC27\n\
+      \\EOTundo\CAN\STX \SOH(\v2!.utxorpc.v1alpha.watch.AnyChainTxH\NULR\EOTundoB\b\n\
+      \\ACKaction"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        apply__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "apply"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTx)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'apply")) ::
+              Data.ProtoLens.FieldDescriptor WatchTxResponse
+        undo__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "undo"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor AnyChainTx)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'undo")) ::
+              Data.ProtoLens.FieldDescriptor WatchTxResponse
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, apply__field_descriptor),
+           (Data.ProtoLens.Tag 2, undo__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _WatchTxResponse'_unknownFields
+        (\ x__ y__ -> x__ {_WatchTxResponse'_unknownFields = y__})
+  defMessage
+    = WatchTxResponse'_constructor
+        {_WatchTxResponse'action = Prelude.Nothing,
+         _WatchTxResponse'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          WatchTxResponse
+          -> Data.ProtoLens.Encoding.Bytes.Parser WatchTxResponse
+        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)
+                                       "apply"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"apply") 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)
+                                       "undo"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"undo") 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) "WatchTxResponse"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'action") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just (WatchTxResponse'Apply 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 (WatchTxResponse'Undo 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 WatchTxResponse where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_WatchTxResponse'_unknownFields x__)
+             (Control.DeepSeq.deepseq (_WatchTxResponse'action x__) ())
+instance Control.DeepSeq.NFData WatchTxResponse'Action where
+  rnf (WatchTxResponse'Apply x__) = Control.DeepSeq.rnf x__
+  rnf (WatchTxResponse'Undo x__) = Control.DeepSeq.rnf x__
+_WatchTxResponse'Apply ::
+  Data.ProtoLens.Prism.Prism' WatchTxResponse'Action AnyChainTx
+_WatchTxResponse'Apply
+  = Data.ProtoLens.Prism.prism'
+      WatchTxResponse'Apply
+      (\ p__
+         -> case p__ of
+              (WatchTxResponse'Apply p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_WatchTxResponse'Undo ::
+  Data.ProtoLens.Prism.Prism' WatchTxResponse'Action AnyChainTx
+_WatchTxResponse'Undo
+  = Data.ProtoLens.Prism.prism'
+      WatchTxResponse'Undo
+      (\ p__
+         -> case p__ of
+              (WatchTxResponse'Undo p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+data WatchService = WatchService {}
+instance Data.ProtoLens.Service.Types.Service WatchService where
+  type ServiceName WatchService = "WatchService"
+  type ServicePackage WatchService = "utxorpc.v1alpha.watch"
+  type ServiceMethods WatchService = '["watchTx"]
+  packedServiceDescriptor _
+    = "\n\
+      \\fWatchService\DC2Z\n\
+      \\aWatchTx\DC2%.utxorpc.v1alpha.watch.WatchTxRequest\SUB&.utxorpc.v1alpha.watch.WatchTxResponse0\SOH"
+instance Data.ProtoLens.Service.Types.HasMethodImpl WatchService "watchTx" where
+  type MethodName WatchService "watchTx" = "WatchTx"
+  type MethodInput WatchService "watchTx" = WatchTxRequest
+  type MethodOutput WatchService "watchTx" = WatchTxResponse
+  type MethodStreamingType WatchService "watchTx" = 'Data.ProtoLens.Service.Types.ServerStreaming
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \!utxorpc/v1alpha/watch/watch.proto\DC2\NAKutxorpc.v1alpha.watch\SUB google/protobuf/field_mask.proto\SUB%utxorpc/v1alpha/cardano/cardano.proto\"\\\n\
+    \\DC1AnyChainTxPattern\DC2>\n\
+    \\acardano\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.cardano.TxPatternH\NULR\acardanoB\a\n\
+    \\ENQchain\"\249\SOH\n\
+    \\vTxPredicate\DC2>\n\
+    \\ENQmatch\CAN\SOH \SOH(\v2(.utxorpc.v1alpha.watch.AnyChainTxPatternR\ENQmatch\DC24\n\
+    \\ETXnot\CAN\STX \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ETXnot\DC29\n\
+    \\ACKall_of\CAN\ETX \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ENQallOf\DC29\n\
+    \\ACKany_of\CAN\EOT \ETX(\v2\".utxorpc.v1alpha.watch.TxPredicateR\ENQanyOf\"\141\SOH\n\
+    \\SOWatchTxRequest\DC2@\n\
+    \\tpredicate\CAN\SOH \SOH(\v2\".utxorpc.v1alpha.watch.TxPredicateR\tpredicate\DC29\n\
+    \\n\
+    \field_mask\CAN\STX \SOH(\v2\SUB.google.protobuf.FieldMaskR\tfieldMask\"N\n\
+    \\n\
+    \AnyChainTx\DC27\n\
+    \\acardano\CAN\SOH \SOH(\v2\ESC.utxorpc.v1alpha.cardano.TxH\NULR\acardanoB\a\n\
+    \\ENQchain\"\143\SOH\n\
+    \\SIWatchTxResponse\DC29\n\
+    \\ENQapply\CAN\SOH \SOH(\v2!.utxorpc.v1alpha.watch.AnyChainTxH\NULR\ENQapply\DC27\n\
+    \\EOTundo\CAN\STX \SOH(\v2!.utxorpc.v1alpha.watch.AnyChainTxH\NULR\EOTundoB\b\n\
+    \\ACKaction2j\n\
+    \\fWatchService\DC2Z\n\
+    \\aWatchTx\DC2%.utxorpc.v1alpha.watch.WatchTxRequest\SUB&.utxorpc.v1alpha.watch.WatchTxResponse0\SOHB\211\SOH\n\
+    \\EMcom.utxorpc.v1alpha.watchB\n\
+    \WatchProtoP\SOHZ4github.com/utxorpc/go-sdk/spec/utxorpc/v1alpha/watch\162\STX\ETXUVW\170\STX\NAKUtxorpc.V1alpha.Watch\202\STX\NAKUtxorpc\\V1alpha\\Watch\226\STX!Utxorpc\\V1alpha\\Watch\\GPBMetadata\234\STX\ETBUtxorpc::V1alpha::WatchJ\150\SO\n\
+    \\ACK\DC2\EOT\NUL\NUL.\SOH\n\
+    \\b\n\
+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\STX\NUL\RS\n\
+    \\t\n\
+    \\STX\ETX\NUL\DC2\ETX\EOT\NUL*\n\
+    \\t\n\
+    \\STX\ETX\SOH\DC2\ETX\ENQ\NUL/\n\
+    \D\n\
+    \\STX\EOT\NUL\DC2\EOT\b\NUL\f\SOH\SUB8 Represents a tx pattern from any supported blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\b\b\EM\n\
+    \\f\n\
+    \\EOT\EOT\NUL\b\NUL\DC2\EOT\t\STX\v\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\b\NUL\SOH\DC2\ETX\t\b\r\n\
+    \$\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\n\
+    \\EOT2\"\ETB A Cardano tx pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX\n\
+    \\EOT%\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\n\
+    \&-\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\n\
+    \01\n\
+    \]\n\
+    \\STX\EOT\SOH\DC2\EOT\SI\NUL\DC4\SOH\SUBQ Represents a simple tx predicate that can composed to create more complext ones\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX\SI\b\DC3\n\
+    \8\n\
+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX\DLE\STX\RS\"+ Predicate is true if tx exhibits pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX\DLE\STX\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX\DLE\DC4\EM\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX\DLE\FS\GS\n\
+    \?\n\
+    \\EOT\EOT\SOH\STX\SOH\DC2\ETX\DC1\STX\US\"2 Predicate is true if tx doesn't exhibit pattern.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\EOT\DC2\ETX\DC1\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX\DC1\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX\DC1\ETB\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX\DC1\GS\RS\n\
+    \D\n\
+    \\EOT\EOT\SOH\STX\STX\DC2\ETX\DC2\STX\"\"7 Predicate is true if tx exhibits all of the patterns.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\EOT\DC2\ETX\DC2\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ACK\DC2\ETX\DC2\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX\DC2\ETB\GS\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX\DC2 !\n\
+    \D\n\
+    \\EOT\EOT\SOH\STX\ETX\DC2\ETX\DC3\STX\"\"7 Predicate is true if tx exhibits any of the patterns.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\EOT\DC2\ETX\DC3\STX\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX\DC3\v\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX\DC3\ETB\GS\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX\DC3 !\n\
+    \X\n\
+    \\STX\EOT\STX\DC2\EOT\ETB\NUL\SUB\SOH\SUBL Request to watch transactions from the chain based on a set of predicates.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETX\ETB\b\SYN\n\
+    \3\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETX\CAN\STX\FS\"& Predicate to filter transactions by.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ACK\DC2\ETX\CAN\STX\r\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX\CAN\SO\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX\CAN\SUB\ESC\n\
+    \7\n\
+    \\EOT\EOT\STX\STX\SOH\DC2\ETX\EM\STX+\"* Field mask to selectively return fields.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ACK\DC2\ETX\EM\STX\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX\EM\FS&\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX\EM)*\n\
+    \E\n\
+    \\STX\EOT\ETX\DC2\EOT\GS\NUL!\SOH\SUB9 Represents a transaction from any supported blockchain.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETX\GS\b\DC2\n\
+    \\f\n\
+    \\EOT\EOT\ETX\b\NUL\DC2\EOT\RS\STX \ETX\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\b\NUL\SOH\DC2\ETX\RS\b\r\n\
+    \%\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETX\US\EOT+\"\CAN A Cardano transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\ETX\US\EOT\RS\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETX\US\US&\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETX\US)*\n\
+    \B\n\
+    \\STX\EOT\EOT\DC2\EOT$\NUL)\SOH\SUB6 Response containing the matching chain transactions.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\EOT\SOH\DC2\ETX$\b\ETB\n\
+    \\f\n\
+    \\EOT\EOT\EOT\b\NUL\DC2\EOT%\STX(\ETX\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\b\NUL\SOH\DC2\ETX%\b\SO\n\
+    \&\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\ETX&\EOT\EM\"\EM Apply this transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ACK\DC2\ETX&\EOT\SO\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\ETX&\SI\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\ETX&\ETB\CAN\n\
+    \%\n\
+    \\EOT\EOT\EOT\STX\SOH\DC2\ETX'\EOT\CAN\"\CAN Undo this transaction.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\ETX'\EOT\SO\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\ETX'\SI\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\ETX'\SYN\ETB\n\
+    \O\n\
+    \\STX\ACK\NUL\DC2\EOT,\NUL.\SOH\SUBC Service definition for watching transactions based on predicates.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ACK\NUL\SOH\DC2\ETX,\b\DC4\n\
+    \T\n\
+    \\EOT\ACK\NUL\STX\NUL\DC2\ETX-\STX?\"G Stream transactions from the chain matching the specified predicates.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\SOH\DC2\ETX-\ACK\r\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\STX\DC2\ETX-\SO\FS\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\ACK\DC2\ETX-'-\n\
+    \\f\n\
+    \\ENQ\ACK\NUL\STX\NUL\ETX\DC2\ETX-.=b\ACKproto3"
diff --git a/Proto/Utxorpc/V1alpha/Watch/Watch_Fields.hs b/Proto/Utxorpc/V1alpha/Watch/Watch_Fields.hs
new file mode 100644
--- /dev/null
+++ b/Proto/Utxorpc/V1alpha/Watch/Watch_Fields.hs
@@ -0,0 +1,143 @@
+{- This file was auto-generated from utxorpc/v1alpha/watch/watch.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.Utxorpc.V1alpha.Watch.Watch_Fields where
+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
+import qualified Proto.Google.Protobuf.FieldMask
+import qualified Proto.Utxorpc.V1alpha.Cardano.Cardano
+allOf ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "allOf" a) =>
+  Lens.Family2.LensLike' f s a
+allOf = Data.ProtoLens.Field.field @"allOf"
+anyOf ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "anyOf" a) =>
+  Lens.Family2.LensLike' f s a
+anyOf = Data.ProtoLens.Field.field @"anyOf"
+apply ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "apply" a) =>
+  Lens.Family2.LensLike' f s a
+apply = Data.ProtoLens.Field.field @"apply"
+cardano ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "cardano" a) =>
+  Lens.Family2.LensLike' f s a
+cardano = Data.ProtoLens.Field.field @"cardano"
+fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+fieldMask = Data.ProtoLens.Field.field @"fieldMask"
+match ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "match" a) =>
+  Lens.Family2.LensLike' f s a
+match = Data.ProtoLens.Field.field @"match"
+maybe'action ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'action" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'action = Data.ProtoLens.Field.field @"maybe'action"
+maybe'apply ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'apply" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'apply = Data.ProtoLens.Field.field @"maybe'apply"
+maybe'cardano ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'cardano" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'cardano = Data.ProtoLens.Field.field @"maybe'cardano"
+maybe'chain ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'chain" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'chain = Data.ProtoLens.Field.field @"maybe'chain"
+maybe'fieldMask ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'fieldMask" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'fieldMask = Data.ProtoLens.Field.field @"maybe'fieldMask"
+maybe'match ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'match" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'match = Data.ProtoLens.Field.field @"maybe'match"
+maybe'predicate ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'predicate" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'predicate = Data.ProtoLens.Field.field @"maybe'predicate"
+maybe'undo ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'undo" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'undo = Data.ProtoLens.Field.field @"maybe'undo"
+not ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "not" a) =>
+  Lens.Family2.LensLike' f s a
+not = Data.ProtoLens.Field.field @"not"
+predicate ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "predicate" a) =>
+  Lens.Family2.LensLike' f s a
+predicate = Data.ProtoLens.Field.field @"predicate"
+undo ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "undo" a) =>
+  Lens.Family2.LensLike' f s a
+undo = Data.ProtoLens.Field.field @"undo"
+vec'allOf ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'allOf" a) =>
+  Lens.Family2.LensLike' f s a
+vec'allOf = Data.ProtoLens.Field.field @"vec'allOf"
+vec'anyOf ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "vec'anyOf" a) =>
+  Lens.Family2.LensLike' f s a
+vec'anyOf = Data.ProtoLens.Field.field @"vec'anyOf"
+vec'not ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'not" a) =>
+  Lens.Family2.LensLike' f s a
+vec'not = Data.ProtoLens.Field.field @"vec'not"
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# UTxO RPC
+
+This package contains the generated code from [the UTxO RPC specification](https://utxorpc.org/). Codegen was performed using `proto-lens-protoc` and contains `Message` types useful for serde.
+
+Users: For more support for implementing a UTxO RPC client or service, see [the SDK](https://www.github.com/utxorpc/haskell-sdk).
+
+Maintainers: See [the UTxO spec repo README](https://github.com/utxorpc/spec#readme).
diff --git a/utxorpc.cabal b/utxorpc.cabal
new file mode 100644
--- /dev/null
+++ b/utxorpc.cabal
@@ -0,0 +1,43 @@
+cabal-version: 3.0
+
+name:           utxorpc
+version:        0.0.3.0
+synopsis:       A gRPC interface for UTxO Blockchains
+description:    UTxO RPC (u5c for short) is an interface tailored for interactions with UTxO-based blockchains, prioritizing performance and developer experience. By providing a common contract, a range of SDKs, and thorough documentation, UTxO RPC aims to facilitate:
+
+                * Reusability: Enabling shared components that can be reused across different projects to simplify the integration effort.
+                * Interoperability: A common interface to simplify integrations between different parties and avoid the common pitfall of vendor lock-in.
+                * Performance: A serialized binary format which is compact and efficient, resulting in smaller message sizes and reduced network overhead compared to its JSON counterpart
+
+                Please note that UTxO RPC is just a specification of an interface between agents and the blockchain, it doesn't provide any concrete client / provider implementations. The primary purpose of u5c is to define a set of standardized methods, data structures, and communication patterns.
+category:       Network, GRPC, Blockchain, Cardano
+homepage:       https://github.com/utxorpc/spec#readme
+bug-reports:    https://github.com/utxorpc/spec/issues
+license:        Apache-2.0
+build-type:     Simple
+author:         TxPipe <registrant@txpipe.io>
+maintainer:     TxPipe <registrant@txpipe.io>
+                Dominic Mayhew <dominic.j.mayhew@gmail.com>
+extra-source-files:
+    README.md
+
+library
+  exposed-modules:
+      Proto.Utxorpc.V1alpha.Build.Build
+      Proto.Utxorpc.V1alpha.Build.Build_Fields
+      Proto.Utxorpc.V1alpha.Cardano.Cardano
+      Proto.Utxorpc.V1alpha.Cardano.Cardano_Fields
+      Proto.Utxorpc.V1alpha.Submit.Submit
+      Proto.Utxorpc.V1alpha.Submit.Submit_Fields
+      Proto.Utxorpc.V1alpha.Sync.Sync
+      Proto.Utxorpc.V1alpha.Sync.Sync_Fields
+      Proto.Utxorpc.V1alpha.Watch.Watch
+      Proto.Utxorpc.V1alpha.Watch.Watch_Fields
+  hs-source-dirs:
+      .
+  build-depends:
+      base >=4.7 && <5
+    , proto-lens >= 0.7.1 && < 0.8
+    , proto-lens-protobuf-types >= 0.7.2 && < 0.8
+    , proto-lens-runtime >= 0.7.0 && < 0.8
+  default-language: Haskell2010
