Help us shape the future of Go! Take the 2026 Go Developer Survey

keychain

package
v1.16.17 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2025 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidIndicesLength    = errors.New("number of indices should be greater than 0")
	ErrInvalidNumAddrsToDerive = errors.New("number of addresses to derive should be greater than 0")
	ErrInvalidNumAddrsDerived  = errors.New("incorrect number of ledger derived addresses")
	ErrInvalidNumSignatures    = errors.New("incorrect number of signatures")
)

Functions

This section is empty.

Types

type Keychain

type Keychain interface {
	// The returned Signer can provide a signature for [addr]
	Get(addr ids.ShortID) (Signer, bool)
	// Returns the set of addresses for which the accessor keeps an associated
	// signer
	Addresses() set.Set[ids.ShortID]
}

Keychain maintains a set of addresses together with their corresponding signers

func NewLedgerKeychain

func NewLedgerKeychain(ledger Ledger, indices []uint32) (Keychain, error)

NewLedgerKeychain creates a new ledger keychain

type Ledger

type Ledger interface {
	Version() (*version.Semantic, error)
	Address(displayHRP string, addressIndex uint32) (ids.ShortID, error)
	SignHash(hash []byte, addressIndex uint32) ([]byte, error)
	Sign(hash []byte, addressIndex uint32) ([]byte, error)
	SignTransaction(rawUnsignedHash []byte, addressIndices []uint32) ([][]byte, error)
	GetAddresses(addressIndices []uint32) ([]ids.ShortID, error)
	Disconnect() error
}

Ledger interface for hardware wallet support

type Signer

type Signer interface {
	SignHash([]byte) ([]byte, error)
	Sign([]byte) ([]byte, error)
	Address() ids.ShortID
}

Signer implements functions for a keychain to return its main address and to sign a hash

Jump to

Keyboard shortcuts

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