Provides an interface to Bitshares/ Graphene 2.0 JSONRPC protocol. Graphene_client_ex is a supervised application, so don't forget to add it to applications in mix.exs
If available in Hex, the package can be installed as:
- Add
graphene_client_ex
to your list of dependencies inmix.exs
:
```elixir
def deps do
[{:graphene_client_ex, "~> 0.4.0"}]
end
```
- Ensure
graphene_client_ex
is started before your application:
```elixir
def application do
[applications: [:graphene_client_ex]]
end
```
First, add a websockets url for the graphene daemon, for example, wss://bitshares.openledger.info/ws
to the config.
config :graphene_client_ex,
url: "GRAPHENE_URL",
activate_stage_sup: true
If you want to activate GenStage blocks producer, use activate_stage_sup: true
in the config file.
It's easy to subscribe to new blockchain events with consumers that implement GenStage specification for handling and exchanging events among Elixir/Erlang processes.
If activate_stage_sup
is enabled, following GenStage processes are started and registered:
- Graphene.Stage.Blocks.Producer which, perhaps unsurprisingly, produces new block events
- Graphene.Stage.Ops.ConsumerProducer [planned]
- Graphene.Stage.TransformedOps.ConsumerProducer [planned]
The main module function is Graphene.call
. It will block the calling process and return a success tuple with a "result" data from the JSONRPC call response. JSONRPC call ids are handled automatically.