iota_lib

An Elixir wrapper around the IOTA node RPC API.


License
Unlicense

Documentation

iota.lib.ex

An Elixir wrapper around the IOTA node API.

Installation

In your mix.exs, add the following line:

def application do
  [applications: [..., :iota_lib]]
end

...

defp deps do
  ...
  {:iota_lib, github: "peaqio/iota.lib.ex"}
end

This library will be released on hex.pm when it covers all basic functions.

Configuration

In your config/config.exs or any other environment-specific files it includes, set:

config :iota_lib, :node_addr, http://example.com:14265

Documentation

When all functions will have been ported, documentation will be available on hexducs.pm. In the mean time, here's a short summary:

The Iota.Node process accepts calls corresponding to the API, using snake case and removing the get prefix when present. This is because the API actually uses the POST HTTP word and the get prefix makes it confusing. So, for instance, getInclusionStates becomes :inclusion_states.

iex(1)> {:ok, pid} = Iota.Node.start_link()
{:ok, #PID<0.213.0>}
iex(2)> info = GenServer.call(pid, :node_info)
%Iota.Node.Info{appName: "IRI", appVersion: "1.4.1",
  latestMilestone: "DDPASKGNBAGUVQWSDKOBVTAVNLGWQTCVVHVTYPJDQQZHCDRZYMKRLEDYJUXJZHWGAAQEXFSPLUOQ99999",
  latestMilestoneIndex: 257455,
  latestSolidSubtangleMilestone: "DDPASKGNBAGUVQWSDKOBVTAVNLGWQTCVVHVTYPJDQQZHCDRZYMKRLEDYJUXJZHWGAAQEXFSPLUOQ99999",
  latestSolidSubtangleMilestoneIndex: 257455, neighbors: 4, time: 1509196327069,
  tips: 4165}

Running tests

$ mix test

Contributing

We welcome PRs, or simply open an issue!

TODO

  • Finish low-level API
  • Implement iota.api