utxorpc: A gRPC interface for UTxO Blockchains

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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:

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.


[Skip to Readme]

Properties

Versions 0.0.3.0, 0.0.4.0, 0.0.4.1, 0.0.4.1, 0.0.4.2, 0.0.4.3, 0.0.4.4, 0.0.5.0, 0.0.5.1
Change log None available
Dependencies 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) [details]
License Apache-2.0
Author TxPipe <registrant@txpipe.io>
Maintainer TxPipe <registrant@txpipe.io> Dominic Mayhew <dominic.j.mayhew@gmail.com>
Category Network, GRPC, Blockchain, Cardano
Home page https://github.com/utxorpc/spec#readme
Bug tracker https://github.com/utxorpc/spec/issues
Uploaded by txpipe at 2024-03-16T22:09:10Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for utxorpc-0.0.4.1

[back to package description]

UTxO RPC

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

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 and utxorpc-server.

Generating this package from the spec

Please see the u5c project README for information on how this package was generated. To generate this code yourself, please see proto-lens.

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.

[!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.