View Source DigitalToken (Digital Token v0.1.0)
Functions to validate, search and retrieve digital token data sourced from the DTIF registry.
Link to this section Summary
Types
A digital token may have zero of more short names associated with it. They are arbitrary strings, usually three or four characters in length. For example "BTC", "ETH" and "DOGE".
A mapping from a short name to token identifier.
The structure of data matching that hosted in the DTIF registry/
token_id is a random 9-character string defined by the dtif registry that uniquely identifies a digital token.
A mapping of digital token identifiers to the registry data for that token.
Functions
Returns the registry data for a given token identifier.
Returns the registry data for a given token identifier.
Returns a mapping of digital token short names to digital token identifiers.
Returns a map of the digital tokens in the dtif registry.
Validates a token identifier or short name and returns the token identifier or an error.
Link to this section Types
@type short_name() :: String.t()
A digital token may have zero of more short names associated with it. They are arbitrary strings, usually three or four characters in length. For example "BTC", "ETH" and "DOGE".
@type short_name_map() :: %{required(short_name()) => token_id()}
A mapping from a short name to token identifier.
The structure of data matching that hosted in the DTIF registry/
@type token_id() :: String.t()
token_id is a random 9-character string defined by the dtif registry that uniquely identifies a digital token.
A mapping of digital token identifiers to the registry data for that token.
Link to this section Functions
@spec get_token!(token_id() | short_name()) :: t() | no_return()
Returns the registry data for a given token identifier.
arugments
Arugments
id
is any token identifier or short name
returns
Returns
registry_data
orraises an exception
example
Example
DigitalToken.get_token("BTC")
#=> %DigitalToken{
header: %{
dlt_type: :blockchain,
dti: "4H95J0R2X",
dti_type: :native,
template_version: #Version<1.0.0>
},
informative: %{
long_name: "Bitcoin",
public_distributed_ledger_indication: false,
short_names: ["BTC", "XBT"],
unit_multiplier: 100000000,
url: "https://github.com/bitcoin/bitcoin"
},
metadata: %{
.....
@spec get_token(token_id() | short_name()) :: {:ok, t()} | {:error, {module(), any()}}
Returns the registry data for a given token identifier.
arugments
Arugments
id
is any token identifier or short name
returns
Returns
{:ok, registry_data}
or{:error, {exception, id}}
example
Example
DigitalToken.get_token("BTC")
#=> {:ok,
%DigitalToken{
header: %{
dlt_type: :blockchain,
dti: "4H95J0R2X",
dti_type: :native,
template_version: #Version<1.0.0>
},
informative: %{
long_name: "Bitcoin",
public_distributed_ledger_indication: false,
short_names: ["BTC", "XBT"],
unit_multiplier: 100000000,
url: "https://github.com/bitcoin/bitcoin"
},
metadata: %{
.....
@spec short_names() :: short_name_map()
Returns a mapping of digital token short names to digital token identifiers.
@spec tokens() :: token_map()
Returns a map of the digital tokens in the dtif registry.
@spec validate_token(token_id() | short_name()) :: {:ok, token_id()} | {:error, {module(), any()}}
Validates a token identifier or short name and returns the token identifier or an error.
arguments
Arguments
id
is any token identifier or short name
returns
Returns
{:ok, token_id}
or{:error, {exception, id}}
example
Example
iex> DigitalToken.validate_token("BTC")
{:ok, "4H95J0R2X"}
iex> DigitalToken.validate_token("Bitcoin")
{:ok, "4H95J0R2X"}
iex> DigitalToken.validate_token("Nothing")
{:error, {DigitalToken.UnknownTokenError, "Nothing"}}