lib/ex_web3_ec_recover.ex

defmodule ExWeb3EcRecover do
   @moduledoc """
  Documentation for `ExWeb3RecoverSignature`.
  """

  @doc """
  Returns the address that created the signature for a personal signed message on the ETH network.  Useful for checking metamask signatures.  Returns error if sig is invalid.

  ## Examples

      iex> ExWeb3EcRecover.recover_personal_signature(%{sig: "0x1dd3657c91d95f350ab25f17ee7cbcdbccd3f5bc52976bfd4dd03bd6bc29d2ac23e656bee509ca33b921e0e6b53eb64082be1bb3c69c3a4adccd993b1d667f8d1b", msg: "hello world"})
      "0xb117a8bc3ecf2c3f006b89da6826e49b4193977a"


  """
  require Logger 
  def recover_personal_signature(params = %{sig: _signature_hex, msg: _message }) do
    ExWeb3EcRecover.RecoverPersonalSignature.recover_personal_signature(params)
  end

  def recover_personal_signature(_other) do
        raise ArgumentError, message: "Invalid recover_personal_signature argument.  Should be %{sig: signature, msg: message}"
  end
end