Mavryk_client_base.Client_contextThis 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
class type printer = object ... endprinter is a class for objects that provide output functions to display information to the end-user.
class type prompter = object ... endprompter 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 ... endclass type wallet = object ... endOperations on the wallet.
class type chain = object ... endAccessor on the chain.
class type block = object ... endOperations on blocks.
class type io_wallet = object ... endPrimitives 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 ... endPrimitives for input, output and RPCs.
class type ui = object ... endUser interface related operations.
class type ux_options = object ... endUser experience options.
class type full = object ... endA comprehensive class type gathering the above class types, that is used for #Protocol_client_context.full.
class simple_printer : (string -> string -> unit Lwt.t) -> printerA simple printer can be used to implement a printer as it is done in class Client_context_unix.unix_logger.
class proxy_context : full -> fullval null_printer : printer