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.

t()

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.

@type t() :: %DigitalToken{
  header: map(),
  informative: map(),
  metadata: map(),
  normative: map()
}

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.

@type token_map() :: %{required(token_id()) => t()}

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 or

  • raises 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"}}