defmodule Immudb.Schemas.DualProof do
@type t :: %__MODULE__{
consistency_proof: [binary()],
inclusion_proof: [binary()],
last_inclusion_proof: [binary()],
linear_proof: Immudb.Schemas.LinearProof.t(),
source_tx_metadata: Immudb.Schemas.TxMetaData.t(),
target_bl_tx_alh: binary(),
target_tx_metadata: Immudb.Schemas.TxMetaData.t()
}
defstruct consistency_proof: [],
inclusion_proof: [],
last_inclusion_proof: [],
linear_proof: nil,
source_tx_metadata: nil,
target_bl_tx_alh: nil,
target_tx_metadata: nil
def convert(%{
consistencyProof: consitency_proof,
inclusionProof: inclusion_proof,
lastInclusionProof: last_inclusion_proof,
linearProof: linear_proof,
sourceTxMetadata: source_tx_metadata,
targetBlTxAlh: target_bl_tx_alh,
targetTxMetadata: target_tx_metadata
}) do
%Immudb.Schemas.DualProof{
consistency_proof: consitency_proof,
inclusion_proof: inclusion_proof,
last_inclusion_proof: last_inclusion_proof,
linear_proof: linear_proof |> Immudb.Schemas.LinearProof.convert(),
source_tx_metadata: source_tx_metadata |> Immudb.Schemas.TxMetaData.convert(),
target_bl_tx_alh: target_bl_tx_alh,
target_tx_metadata: target_tx_metadata |> Immudb.Schemas.TxMetaData.convert()
}
end
def convert(_) do
:not_found
end
end