# UTxO RPC

This package is generated by `proto-lens-protoc` from the [u5c specification](https://utxorpc.org) and contains `Data.ProtoLens.Message.Message` instances useful for serde. It is designed to be used with the [client](https://hackage.haskell.org/package/utxorpc-client) or [server](https://hackage.haskell.org/package/utxorpc-server) SDK. Build a message with the `lens` library by importing the relevant `utxorpc` modules and calling `Data.ProtoLens.Message.defMessage`:

```haskell
import Control.Lens.Operators ((&), (.~))
import Data.ProtoLens.Message (Message (defMessage))
import qualified Data.Text.Encoding as T
import Proto.Utxorpc.V1.Sync.Sync (FetchBlockRequest)
import Proto.Utxorpc.V1.Sync.Sync_Fields (hash, index)

fetchBlockRequest :: FetchBlockRequest
fetchBlockRequest =
defMessage
    & ref .~
    [ defMessage 
        & index .~ 116541970
        & hash .~ T.encodeUtf8 "9d5abce5b1a7d94b141a597fd621a1ff9dcd46579ff1939664364311cd1be338"
    ]
```

The easieset way to send requests or run a service is through the SDKs: [utxorpc-client](https://hackage.haskell.org/package/utxorpc-client) and [utxorpc-server](https://hackage.haskell.org/package/utxorpc-server).

# Generating this package from the spec
Please see the u5c project [README](https://github.com/utxorpc/spec#readme) for information on how this package was generated. To generate this code yourself, please see [`proto-lens`](https://github.com/google/proto-lens#readme).

NOTE: `proto-lens-protobuf-types` version >= 0.7.2 is required to build this package, as it includes support of the `FieldMask` well-known type.

# Maintainers
See [the UTxO spec repo README](https://github.com/utxorpc/spec#readme).

> [!NOTE]
> `proto-lens-protobuf-types` version >= 0.7.2 is required to build this package as it contains support for the `FieldMask` well-known type.