Packages
stellar_sdk
0.22.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/ErrorMapper.ex
defmodule Stellar.Horizon.ErrorMapper do
@moduledoc """
Assigns errors returned by the HTTP client to a custom structure.
"""
alias Stellar.Horizon.AsyncTransactionError
alias Stellar.Horizon.AsyncTransaction
alias Stellar.Horizon.Error
@type error_source :: :horizon | :network
@type error_body :: map() | atom() | String.t()
@type error :: {error_source(), error_body()}
@type t :: {:error, struct()}
@spec build(error :: error()) :: t()
def build(
{:horizon,
%{hash: _hash, errorResultXdr: _error_result_xdr, tx_status: _tx_status} = decoded_body}
) do
error = AsyncTransactionError.new(decoded_body)
{:error, error}
end
def build({:horizon, %{hash: _hash, tx_status: _tx_status} = decoded_body}) do
error = AsyncTransaction.new(decoded_body)
{:error, error}
end
def build(error), do: {:error, Error.new(error)}
end