lib/types/signature.ex
defmodule Kadena.Types.Signature do
@moduledoc """
`Signature` struct definition.
"""
@behaviour Kadena.Types.Spec
@type sig :: String.t()
@type t :: %__MODULE__{sig: sig()}
defstruct [:sig]
@impl true
def new(sig) when is_binary(sig), do: %__MODULE__{sig: sig}
def new(_sig), do: {:error, [sig: :invalid]}
end