lib/rpc/error.ex

defmodule Soroban.RPC.Error do
  @moduledoc """
  Represents an error which occurred during a Soroban RPC call.
  """

  @type code :: -32_099..-32_000 | -32_603..-32_600 | -32_700
  @type message :: String.t()
  @type t :: %__MODULE__{
          code: code(),
          message: message()
        }

  defstruct [:code, :message]

  @spec new(error :: map()) :: t()
  def new(%{code: code, message: message}),
    do: %__MODULE__{code: code, message: message}
end