diff --git a/lib/archethic/transaction_chain/transaction/validation_stamp.ex b/lib/archethic/transaction_chain/transaction/validation_stamp.ex index 1bc9fc4b4..b5e6cf25e 100755 --- a/lib/archethic/transaction_chain/transaction/validation_stamp.ex +++ b/lib/archethic/transaction_chain/transaction/validation_stamp.ex @@ -4,6 +4,8 @@ defmodule Archethic.TransactionChain.Transaction.ValidationStamp do """ alias Archethic.Crypto + + alias Archethic.Utils alias Archethic.Utils.VarInt alias __MODULE__.LedgerOperations @@ -275,7 +277,7 @@ defmodule Archethic.TransactionChain.Transaction.ValidationStamp do {recipients_length, rest} = rest |> VarInt.get_value() {recipients, <>} = - deserialize_list_of_recipients_addresses(rest, recipients_length, []) + Utils.deserialize_addresses(rest, recipients_length, []) error = deserialize_error(error_byte) @@ -403,26 +405,6 @@ defmodule Archethic.TransactionChain.Transaction.ValidationStamp do Crypto.verify?(signature, raw_stamp, public_key) end - defp deserialize_list_of_recipients_addresses(rest, 0, _acc), do: {[], rest} - - defp deserialize_list_of_recipients_addresses(rest, nb_recipients, acc) - when length(acc) == nb_recipients do - {Enum.reverse(acc), rest} - end - - defp deserialize_list_of_recipients_addresses( - <>, - nb_recipients, - acc - ) do - hash_size = Crypto.hash_size(hash_id) - <> = rest - - deserialize_list_of_recipients_addresses(rest, nb_recipients, [ - <> | acc - ]) - end - defp serialize_error(nil), do: 0 defp serialize_error(:invalid_pending_transaction), do: 1 defp serialize_error(:invalid_inherit_constraints), do: 2