Asset resolution for Rujira.
Merges base-layer asset handling (chain/symbol/denom parsing) with app-layer token support (x/ruji, x/staking-, x/bow-xyk-, etc.).
Summary
Functions
@spec decimals(Rujira.Assets.Asset.t() | map()) :: non_neg_integer()
@spec eq_denom(Rujira.Assets.Asset.t(), String.t()) :: boolean()
@spec from_denom(String.t()) :: {:ok, Rujira.Assets.Asset.t()} | {:error, :invalid_denom}
@spec from_id(String.t()) :: {:ok, Rujira.Assets.Asset.t()}
@spec from_shortcode(String.t()) :: Rujira.Assets.Asset.t()
@spec from_string(String.t()) :: Rujira.Assets.Asset.t()
@spec label(Rujira.Assets.Asset.t() | map()) :: String.t()
@spec load_metadata(Rujira.Assets.Asset.t()) :: {:ok, map()} | {:error, term()}
@spec to_native(Rujira.Assets.Asset.t() | map() | nil) :: {:ok, String.t() | nil} | {:error, term()}
@spec to_secured(Rujira.Assets.Asset.t()) :: {:ok, Rujira.Assets.Asset.t()} | {:error, :not_supported}
@spec type(String.t()) :: :native | :layer_1 | :synth | :trade | :secured