import proto service
What
Part of %Tezlink: empty Tezos blocks
Follows !17082 (merged)
Import service declarations from the protocol.
Why
The main goal is compatibility with tezos. To ensure we respect the interface of the octez-node we reuse the service declarations it uses, soi the encodings of inputs and outputs are the same.
How
We use Resto substitutions functions to change the prefix and param types of the services for types of our own.
The interface is a type used to group the implementation we need for the services, and a function to build a Resto.Directory.t from the implementations, and merge it into another directory.
Manually testing the MR
If at least it builds, it means the services are cast to types we can build. Proper testing will require registering the services in the public server of the node.