Skip to main content

lib/rujira/thorchain/events/add_liquidity.ex

defmodule Rujira.Thorchain.Events.AddLiquidity do
  @moduledoc "A THORChain add liquidity event."

  defstruct pool: nil, rune_address: nil, asset_address: nil

  @type t :: %__MODULE__{
          pool: String.t(),
          rune_address: String.t() | nil,
          asset_address: String.t() | nil
        }

  @spec new(map()) :: {:ok, t()} | {:error, :invalid_attrs}
  def new(%{"pool" => pool} = attrs) do
    {:ok,
     %__MODULE__{
       pool: pool,
       rune_address: Map.get(attrs, "rune_address"),
       asset_address: Map.get(attrs, "asset_address")
     }}
  end

  def new(_), do: {:error, :invalid_attrs}
end