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/transactions.ex
defmodule Stellar.Horizon.Transactions do
@moduledoc """
Exposes functions to interact with Transactions in Horizon.
You can:
- Create a transaction.
Horizon API reference: https://developers.stellar.org/api/resources/transactions/
"""
alias Stellar.Horizon.{Error, Transaction}
alias Stellar.Horizon.Client, as: Horizon
@type hash :: String.t()
@type response :: {:ok, Transaction.t()} | {:error, Error.t()}
@endpoint "/transactions/"
@spec create(base64_envelope :: String.t()) :: response()
def create(base64_envelope) do
headers = [{"Content-Type", "application/x-www-form-urlencoded"}]
body = URI.encode_query(tx: base64_envelope)
case Horizon.request(:post, @endpoint, headers, body) do
{:ok, tx} -> {:ok, Transaction.new(tx)}
error -> error
end
end
@spec retrieve(hash :: hash()) :: response()
def retrieve(hash) do
case Horizon.request(:get, @endpoint <> hash) do
{:ok, tx} -> {:ok, Transaction.new(tx)}
error -> error
end
end
@spec all() :: response()
def all() do
body = URI.encode_query(limit: 2)
case Horizon.request(:get, @endpoint, [], {:limit, 2}) do
{:ok, tx} -> {:ok, tx}
error -> error
end
end
end