lib/chainweb/p2p/block_payload_with_outputs_response.ex

defmodule Kadena.Chainweb.P2P.BlockPayloadWithOutputsResponse do
  @moduledoc """
  `BlockPayloadWithOutputsResponse` struct definition.
  """

  @behaviour Kadena.Chainweb.Type

  @type miner_data :: String.t()
  @type transactions_hash :: String.t()
  @type outputs_hash :: String.t()
  @type payload_hash :: String.t()
  @type transactions :: list(String.t())
  @type coinbase :: String.t()

  @type t :: %__MODULE__{
          transactions: transactions(),
          miner_data: miner_data(),
          transactions_hash: transactions_hash(),
          outputs_hash: outputs_hash(),
          payload_hash: payload_hash(),
          coinbase: coinbase()
        }

  defstruct [
    :transactions,
    :miner_data,
    :transactions_hash,
    :outputs_hash,
    :payload_hash,
    :coinbase
  ]

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