lib/rpc/responses/simulate_transaction_response.ex

defmodule Soroban.RPC.SimulateTransactionResponse do
  @moduledoc """
  `SimulateTransactionResponse` struct definition.
  """
  @behaviour Soroban.RPC.Response.Spec

  @type results :: list(map())
  @type cost :: map()
  @type latest_ledger :: String.t()
  @type error :: String.t() | nil
  @type t :: %__MODULE__{
          results: results(),
          cost: cost(),
          latest_ledger: latest_ledger(),
          error: error()
        }

  defstruct [
    :transaction_data,
    :events,
    :min_resource_fee,
    :results,
    :cost,
    :latest_ledger,
    :error
  ]

  @impl true
  def new(attrs), do: struct(%__MODULE__{}, attrs)
end