keystore

package
v4.3.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2018 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSigningAborted = errors.New("signing aborted by user")

ErrSigningAborted is used when the user aborts a signing in process (e.g. abort on HW wallet).

Functions

This section is empty.

Types

type Keystore

type Keystore interface {

	// CosignerIndex returns the index at which the keystore signs in a multisig configuration.
	// The returned value is always zero for a singlesig configuration.
	CosignerIndex() int

	// HasSecureOutput returns whether the keystore supports to output an address securely.
	// This is typically done through a screen on the device or through a paired mobile phone.
	HasSecureOutput(*signing.Configuration, coin.Coin) bool

	// OutputAddress outputs the public key at the given configuration for the given coin.
	// Please note that this is only supported if the keystore has a secure output channel.
	OutputAddress(*signing.Configuration, coin.Coin) error

	// ExtendedPublicKey returns the extended public key at the given absolute keypath.
	ExtendedPublicKey(signing.AbsoluteKeypath) (*hdkeychain.ExtendedKey, error)

	// SignTransaction signs the given transaction proposal. Returns ErrSigningAborted if the user
	// aborts.
	SignTransaction(coin.ProposedTransaction) error
}

Keystore supports hardened key derivation according to BIP32 and signing of transactions.

type Keystores

type Keystores interface {
	// Count returns the number of keystores in the collection.
	Count() int

	// Add adds the given keystore to the collection of keystores.
	Add(Keystore) error

	// Remove removes the given keystore from the collection of keystores.
	Remove(Keystore) error

	// HaveSecureOutput returns whether any of the keystores has a secure output.
	HaveSecureOutput(*signing.Configuration, coin.Coin) bool

	// OutputAddress outputs the address for the given coin with the given configuration on all
	// keystores that have a secure output.
	OutputAddress(*signing.Configuration, coin.Coin) error

	// SignTransaction signs the given proposed transaction on all keystores. Returns
	// ErrSigningAborted if the user aborts.
	SignTransaction(coin.ProposedTransaction) error

	// Configuration returns the configuration at the given path with the given signing threshold.
	Configuration(signing.ScriptType, signing.AbsoluteKeypath, int) (*signing.Configuration, error)
}

Keystores models a collection of keystores that can be passed from a wallet to its accounts.

func NewKeystores

func NewKeystores(keystores ...Keystore) Keystores

NewKeystores returns a collection of the given keystores.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL