key

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2023 License: BSD-3-Clause Imports: 24 Imported by: 0

Documentation

Overview

Package key implements key manager and helper functions.

Index

Constants

View Source
const (
	EwoqPrivateKey = "PrivateKey-" + rawEwoqPk
)

Variables

View Source
var (
	ErrInvalidType = errors.New("invalid type")
	ErrCantSpend   = errors.New("can't spend")
)
View Source
var (
	ErrInvalidPrivateKey         = errors.New("invalid private key")
	ErrInvalidPrivateKeyLen      = errors.New("invalid private key length (expect 64 bytes in hex)")
	ErrInvalidPrivateKeyEnding   = errors.New("invalid private key ending")
	ErrInvalidPrivateKeyEncoding = errors.New("invalid private key encoding")
)

Functions

func SortTransferableInputsWithSigners added in v0.0.2

func SortTransferableInputsWithSigners(ins []*avax.TransferableInput, signers [][]ids.ShortID)

SortTransferableInputsWithSigners sorts the inputs and signers based on the input's utxo ID.

This is based off of (generics?): https://github.com/ava-labs/avalanchego/blob/224c9fd23d41839201dd0275ac864a845de6e93e/vms/components/avax/transferables.go#L202

Types

type HardKey added in v0.0.2

type HardKey struct {
	// contains filtered or unexported fields
}

func NewHard added in v0.0.2

func NewHard(networkID uint32) (*HardKey, error)

func (*HardKey) Addresses added in v0.0.2

func (h *HardKey) Addresses() []ids.ShortID

func (*HardKey) Disconnect added in v0.0.2

func (h *HardKey) Disconnect() error

func (*HardKey) Match added in v0.0.2

func (h *HardKey) Match(owners *secp256k1fx.OutputOwners, time uint64) ([]uint32, []ids.ShortID, bool)

func (*HardKey) P added in v0.0.2

func (h *HardKey) P() []string

func (*HardKey) Sign added in v0.0.2

func (h *HardKey) Sign(pTx *txs.Tx, signers [][]ids.ShortID) error

Sign transaction with the Ledger private key

This is a slightly modified version of *platformvm.Tx.Sign().

func (*HardKey) Spends added in v0.0.2

func (h *HardKey) Spends(outputs []*avax.UTXO, opts ...OpOption) (
	totalBalanceToSpend uint64,
	inputs []*avax.TransferableInput,
	signers [][]ids.ShortID,
)

type Key

type Key interface {
	// P returns all formatted P-Chain addresses.
	P() []string
	// Addresses returns the all raw ids.ShortID address.
	Addresses() []ids.ShortID
	// Match attempts to match a list of addresses up to the provided threshold.
	Match(owners *secp256k1fx.OutputOwners, time uint64) ([]uint32, []ids.ShortID, bool)
	// Spend attempts to spend all specified UTXOs (outputs)
	// and returns the new UTXO inputs.
	//
	// If target amount is specified, it only uses the
	// outputs until the total spending is below the target
	// amount.
	Spends(outputs []*avax.UTXO, opts ...OpOption) (
		totalBalanceToSpend uint64,
		inputs []*avax.TransferableInput,
		signers [][]ids.ShortID,
	)
	// Sign generates [numSigs] signatures and attaches them to [pTx].
	Sign(pTx *txs.Tx, signers [][]ids.ShortID) error
}

Key defines methods for key manager interface.

type Op

type Op struct {
	// contains filtered or unexported fields
}

type OpOption

type OpOption func(*Op)

func WithFeeDeduct

func WithFeeDeduct(fee uint64) OpOption

To deduct transfer fee from total spend (output). e.g., "units.MilliAvax" for X/P-Chain transfer.

func WithTargetAmount

func WithTargetAmount(ta uint64) OpOption

func WithTime

func WithTime(t uint64) OpOption

type SOp added in v0.0.2

type SOp struct {
	// contains filtered or unexported fields
}

type SOpOption added in v0.0.2

type SOpOption func(*SOp)

func WithPrivateKey

func WithPrivateKey(privKey *crypto.PrivateKeySECP256K1R) SOpOption

To create a new key SoftKey with a pre-loaded private key.

func WithPrivateKeyEncoded

func WithPrivateKeyEncoded(privKey string) SOpOption

To create a new key SoftKey with a pre-defined private key.

type SoftKey added in v0.0.2

type SoftKey struct {
	// contains filtered or unexported fields
}

func LoadSoft added in v0.0.2

func LoadSoft(networkID uint32, keyPath string) (*SoftKey, error)

LoadSoft loads the private key from disk and creates the corresponding SoftKey.

func NewSoft added in v0.0.2

func NewSoft(networkID uint32, opts ...SOpOption) (*SoftKey, error)

func (*SoftKey) Addresses added in v0.0.2

func (m *SoftKey) Addresses() []ids.ShortID

func (*SoftKey) Encode added in v0.0.2

func (m *SoftKey) Encode() string

Returns the private key encoded in CB58 and "PrivateKey-" prefix.

func (*SoftKey) Key added in v0.0.2

Returns the private key.

func (*SoftKey) Match added in v0.0.2

func (m *SoftKey) Match(owners *secp256k1fx.OutputOwners, time uint64) ([]uint32, []ids.ShortID, bool)

func (*SoftKey) P added in v0.0.2

func (m *SoftKey) P() []string

func (*SoftKey) Raw added in v0.0.2

func (m *SoftKey) Raw() []byte

Returns the private key in raw bytes.

func (*SoftKey) Save added in v0.0.2

func (m *SoftKey) Save(p string) error

Saves the private key to disk with hex encoding.

func (*SoftKey) Sign added in v0.0.2

func (m *SoftKey) Sign(pTx *txs.Tx, signers [][]ids.ShortID) error

func (*SoftKey) Spends added in v0.0.2

func (m *SoftKey) Spends(outputs []*avax.UTXO, opts ...OpOption) (
	totalBalanceToSpend uint64,
	inputs []*avax.TransferableInput,
	signers [][]ids.ShortID,
)

Jump to

Keyboard shortcuts

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