lib/types/proof.ex

defmodule Kadena.Types.Proof do
  @moduledoc """
  `Proof` struct definition.
  """

  @behaviour Kadena.Types.Spec

  @type value :: String.t()
  @type t :: %__MODULE__{value: value()}

  defstruct [:value]

  @impl true
  def new(value) when is_binary(value), do: %__MODULE__{value: value}
  def new(_proof), do: {:error, [value: :invalid]}
end