lib/rujira/fin/events/range_fee.ex
defmodule Rujira.Fin.Events.RangeFee do
@moduledoc "A range fee accrual event (`wasm-rujira-fin/range.fee`)."
alias Rujira.Math
defstruct idx: 0
@type t :: %__MODULE__{
idx: non_neg_integer()
}
@spec new(map()) :: {:ok, t()} | {:error, term()}
def new(%{"idx" => idx}) do
with {:ok, idx} <- Math.to_integer(idx) do
{:ok, %__MODULE__{idx: idx}}
end
end
def new(_), do: {:error, :invalid_attrs}
end