Users of this package, see [this getting started guide](docs/getting-started.md).
npm install @oasisprotocol/clientUsers of this package, see this getting started guide.
Prioritize exposing an unopinionated binding tooasis-node's gRPC
services.
Mostly leave the protocol and formats be, and don't create too much abstraction over it.
Aim to create a library that will take less work to maintain when oasis-core changes.
The target audience is developers who are already familiar with oasis-core.
1. A layer over grpc-web to hook up CBOR-based message
serialization.
1. Method definitions and wrappers to represent the node's gRPC methods.
1. A heuristic to convert structures from CBOR maps to JavaScript objects.
1. Type definitions for structures.
1. Helpers for operating on a few kinds of data.
1. Constants.
1. JSDoc copied from Godoc.
1. Wrappers for consensus transactions.
1. There is no conversion layer between deserialized messages and further object model.
1. Non-structure types, e.g. specialized byte arrays such as Quantity and PublicKey don't have
dedicated names in the type system.
1. Types are only interfaces (where possible), and helpers are standalone functions.
1. oasis-node's gRPC interface is not desigend to be secure against untrusted clients. We suggest
using this SDK with an additional access control component.
1. Native gRPC is not accessible over the web. The grpc-web project suggests setting up an
Envoy proxy to allow browsers to connect.
1. Empty structures are deserialized into an empty Map, due to a limitation in the heuristic that
converts structures to objets.
1. Go prefers to use nil instead of some empty values and to serialize them as null or missing
structure fields. This behavior is not modeled in this library's type system.