Packages
stellar_sdk
0.15.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 contract :: 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 raw_pre_auth_tx(public_key()) :: binary()
@callback raw_sha256_hash(public_key()) :: binary()
@callback raw_signed_payload(public_key()) :: binary()
@callback raw_contract(contract()) :: binary()
@callback validate_public_key(public_key()) :: validation()
@callback validate_muxed_account(public_key()) :: validation()
@callback validate_secret_seed(public_key()) :: validation()
@callback validate_pre_auth_tx(public_key()) :: validation()
@callback validate_sha256_hash(public_key()) :: validation()
@callback validate_signed_payload(public_key()) :: validation()
@callback validate_contract(contract()) :: validation()
@callback sign(binary(), secret_seed()) :: binary() | error()
@callback valid_signature?(binary(), binary(), public_key()) :: boolean()
@callback signature_hint_for_signed_payload(binary(), binary()) :: binary()
@optional_callbacks from_raw_public_key: 1,
from_raw_muxed_account: 1,
validate_public_key: 1,
validate_muxed_account: 1,
validate_secret_seed: 1,
validate_pre_auth_tx: 1,
validate_sha256_hash: 1,
validate_signed_payload: 1
end