defmodule Stellar.TxBuild.SequenceNumber do
@moduledoc """
`SequenceNumber` struct definition.
"""
alias StellarBase.XDR.SequenceNumber
@behaviour Stellar.TxBuild.XDR
@type t :: %__MODULE__{sequence_number: non_neg_integer()}
defstruct [:sequence_number]
@impl true
def new(sequence_number \\ 0, opts \\ [])
def new(sequence_number, _opts) when is_integer(sequence_number) and sequence_number >= 0 do
%__MODULE__{sequence_number: sequence_number}
end
def new(_sequence_number, _opts), do: {:error, :sequence_number}
@impl true
def to_xdr(%__MODULE__{sequence_number: sequence_number}) do
SequenceNumber.new(sequence_number)
end
end