defmodule Web3AptosEx.Aptos.SigningKey do @moduledoc """ An Ed25519 keypair. """ import Web3AptosEx.Aptos.Helpers defstruct [:private_key, :public_key] def new() do {public_key, private_key} = ed25519_new() {:ok, %__MODULE__{ private_key: private_key, public_key: public_key }} end def new(private_key) do with {:ok, private_key} <- normalize_key(private_key) do public_key = ed25519_public_key(private_key) {:ok, %__MODULE__{ private_key: private_key, public_key: public_key }} end end defimpl Inspect do import Inspect.Algebra def inspect(%{public_key: public_key}, _opts) do concat(["#Key<", to_hex(public_key), ">"]) end end defimpl String.Chars do def to_string(%{public_key: public_key}) do to_hex(public_key) end end end