This module contains several class types used to provide I/O services for the client, the wallet, etc.
This interface is independent of the backend. This is intended for the client library code, so it can be independent of the backend. The client, and each other client-like systems (wallet apps, in-browser widgets, etc.), are responsible for providing a backend-specific implementation.
To find examples on how these methods are called, you can have a look at
type ('a, 'b) lwt_format = ('a, Format.formatter, unit, 'b Lwt.t) format4
class type printer = object ... end
printer is a class for objects that provide output functions to display information to the end-user.
class type prompter = object ... end
prompter is a class of objects that provide input functions to request data from the end-user, whether normal inputs or passwords.
class type io = object ... end
class type wallet = object ... end
Operations on the wallet.
class type chain = object ... end
Accessor on the chain.
class type block = object ... end
Operations on blocks.
class type io_wallet = object ... end
Primitives for input, output and wallet. The general organisation of the code in this module is to provide small classes that are also combined into bigger classes. It allows different client library functions to only depend on some features, but not all, so that these functions can be used in places that only have access to these features.
class type io_rpcs = object ... end
Primitives for input, output and RPCs.
class type ui = object ... end
User interface related operations.
class type ux_options = object ... end
User experience options.
class type full = object ... end
A comprehensive class type gathering the above class types, that is used for #Protocol_client_context.full.
class simple_printer : (string -> string -> unit Lwt.t) -> printer
A simple printer can be used to implement a printer as it is done in class
class proxy_context : full -> full
val null_printer : printer