EIP712 (eip712 v0.1.0)

Documentation for EIP712.

Summary

Functions

Link to this function

sign(message, priv_key, opts \\ [])

@spec sign(EIP712.Typed.t(), binary(), Keyword.t()) ::
  {:ok, binary()} | {:error, String.t()}
@spec sign(String.t(), binary(), Keyword.t()) ::
  {:ok, binary()} | {:error, String.t()}
Link to this function

sign!(message, priv_key, opts \\ [])

@spec sign!(EIP712.Typed.t() | String.t(), binary(), Keyword.t()) :: binary()

Sign a message.

iex> %EIP712.Typed{
...>   domain: %EIP712.Typed.Domain{
...>     chain_id: 1,
...>     name: "Test",
...>     verifying_contract: EIP712.Util.decode_hex!("0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"),
...>     version: "1"
...>   },
...>   types: %{
...>     "Test" => %EIP712.Typed.Type{fields: [{"items", {:array, :string}}]}
...>   },
...>   value: %{
...>     "items" => ["item1", "item2"]
...>   }
...> }
...> |> EIP712.sign!(
...>   EIP712.Util.decode_hex!("0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"),
...>   hex?: true
...> )
"0x97ce47cfb1497f72019606ba462c3ab4e3552c4225f3b7b75ca42c5787a19b7c29d53b9fe402102a82ea782e806224f819b326b74f98049fe59486640d6fa2911c"