Packages
stellar_sdk
0.7.0
0.23.0
0.22.0
0.21.2
0.21.1
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Elixir SDK for the Stellar network.
Current section
Files
Jump to
Current section
Files
lib/keypair/spec.ex
defmodule Stellar.KeyPair.Spec do
@moduledoc """
Defines contracts to generate, validate and encode/decode Stellar KeyPairs.
This `behaviour` allows you to use any crypto package of your choice.
The default is Ed25519.
"""
@type public_key :: String.t()
@type secret_seed :: String.t()
@type error :: {:error, atom()}
@type validation :: :ok | error()
@callback random() :: {public_key(), secret_seed()}
@callback from_secret_seed(secret_seed()) :: {public_key(), secret_seed()}
@callback from_raw_public_key(binary()) :: public_key()
@callback from_raw_muxed_account(binary()) :: public_key()
@callback raw_public_key(public_key()) :: binary()
@callback raw_muxed_account(public_key()) :: binary()
@callback raw_secret_seed(public_key()) :: binary()
@callback validate_public_key(public_key()) :: validation()
@callback validate_muxed_account(public_key()) :: validation()
@callback validate_secret_seed(public_key()) :: validation()
@callback sign(binary(), secret_seed()) :: binary() | error()
@optional_callbacks from_raw_public_key: 1,
from_raw_muxed_account: 1,
validate_public_key: 1,
validate_muxed_account: 1,
validate_secret_seed: 1
end