Packages
stellar_sdk
0.11.2
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/request_params.ex
defmodule Stellar.Horizon.RequestParams do
@moduledoc """
Returns a Keyword list of formatted params
"""
@type args :: Keyword.t()
@type type :: atom()
@spec build_assets_params(args :: args(), type :: type()) :: Keyword.t()
def build_assets_params(args, type)
when type in ~w(selling_asset buying_asset destination_asset source_asset base_asset counter_asset)a do
args
|> Keyword.get(type)
|> resolve_asset_params(type)
end
def build_assets_params(_args, _type), do: []
@spec resolve_asset_params(args :: args(), type :: type()) :: Keyword.t()
defp resolve_asset_params([code: code, issuer: issuer], type) do
[
"#{type}_type": resolve_asset_type(code),
"#{type}_code": code,
"#{type}_issuer": issuer
]
end
defp resolve_asset_params(:native, type), do: ["#{type}_type": :native]
defp resolve_asset_params(_args, _type), do: []
@spec resolve_asset_type(code :: String.t()) :: atom()
defp resolve_asset_type(code) when byte_size(code) < 5, do: :credit_alphanum4
defp resolve_asset_type(_code), do: :credit_alphanum12
end