Packages
stellar_sdk
0.3.0
0.23.0
0.22.0
0.21.2
0.21.1
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Elixir SDK for the Stellar network.
Current section
Files
Jump to
Current section
Files
lib/horizon/accounts.ex
defmodule Stellar.Horizon.Accounts do
@moduledoc """
Exposes functions to interact with Accounts in Horizon.
You can:
- Retrieve an account.
- Fetch next account sequence number.
Horizon API reference: https://developers.stellar.org/api/resources/accounts/
"""
alias Stellar.Horizon.{Account, Error}
alias Stellar.Horizon.Client, as: Horizon
@type account_id :: String.t()
@type resource :: Account.t() | non_neg_integer()
@type response :: {:ok, resource()} | {:error, Error.t()}
@endpoint "/accounts/"
@spec retrieve(account_id :: account_id()) :: response()
def retrieve(account_id) do
case Horizon.request(:get, @endpoint <> account_id) do
{:ok, account} -> {:ok, Account.new(account)}
error -> error
end
end
@spec fetch_next_sequence_number(account_id :: account_id()) :: response()
def fetch_next_sequence_number(account_id) do
case retrieve(account_id) do
{:ok, %Account{sequence: sequence}} -> {:ok, sequence + 1}
error -> error
end
end
end