Packages
stellar_sdk
0.21.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/util/network.ex
defmodule Stellar.Network do
@moduledoc """
Utility that handles Stellar's network configuration.
"""
alias StellarBase.XDR.Hash
@passphrases [
public: "Public Global Stellar Network ; September 2015",
test: "Test SDF Network ; September 2015",
future: "Test SDF Future Network ; October 2022",
standalone: "Standalone Network ; February 2017"
]
@horizon_urls [
public: "https://horizon.stellar.org",
test: "https://horizon-testnet.stellar.org",
future: "https://horizon-futurenet.stellar.org",
local: "http://localhost:8000"
]
@type passphrase :: String.t()
@type url :: String.t()
@type hash :: String.t()
@spec public_passphrase() :: passphrase()
def public_passphrase, do: @passphrases[:public]
@spec testnet_passphrase() :: passphrase()
def testnet_passphrase, do: @passphrases[:test]
@spec futurenet_passphrase() :: passphrase()
def futurenet_passphrase, do: @passphrases[:future]
@spec standalone_passphrase() :: passphrase()
def standalone_passphrase, do: @passphrases[:standalone]
@spec public_horizon_url() :: url()
def public_horizon_url, do: @horizon_urls[:public]
@spec testnet_horizon_url() :: url()
def testnet_horizon_url, do: @horizon_urls[:test]
@spec futurenet_horizon_url() :: url()
def futurenet_horizon_url, do: @horizon_urls[:future]
@spec local_horizon_url() :: url()
def local_horizon_url, do: @horizon_urls[:local]
@spec network_id(passphrase :: passphrase()) :: hash()
def network_id(passphrase), do: :crypto.hash(:sha256, passphrase)
@spec network_id_xdr(passphrase :: passphrase()) :: Hash.t()
def network_id_xdr(passphrase) do
passphrase
|> network_id()
|> Hash.new()
end
end