tools

package
v0.0.0-...-103dbe2 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2021 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FirstHardenedChild        = uint32(0x80000000)
	PublicKeyCompressedLength = 33
)

Variables

View Source
var (
	Curve = btcutil.Secp256k1()

	CurveWizegene = &curve{
		Curve:   Curve,
		hmacKey: hmacKey,
	}
)
View Source
var (
	PrivateWalletVersion, _ = hex.DecodeString(PrivPrefix)
	PublicWalletVersion, _  = hex.DecodeString(PubPrefix)
	// ErrSerializedKeyWrongSize is returned when trying to deserialize a key that
	// has an incorrect length
	ErrSerializedKeyWrongSize = errors.New("Serialized keys should by exactly 82 bytes")

	// ErrHardnedChildPublicKey is returned when trying to create a harded child
	// of the public key
	ErrHardnedChildPublicKey = errors.New("Can't create hardened child for public key")

	// ErrInvalidChecksum is returned when deserializing a key with an incorrect
	// checksum
	ErrInvalidChecksum = errors.New("Checksum doesn't match")

	// ErrInvalidPrivateKey is returned when a derived private key is invalid
	ErrInvalidPrivateKey = errors.New("Invalid private key")

	// ErrInvalidPublicKey is returned when a derived public key is invalid
	ErrInvalidPublicKey = errors.New("Invalid public key")
)
View Source
var PrivPrefix = "0488ADE4"
View Source
var PubPrefix = "0488B21E"
View Source
var WizegeneBase58Encoding = basen.NewEncoding("wWzZiIbcdeghjklmnopqQrstuxy123456789ABCDEGHKLMOPRSTUVXYaFf")

WizegeneBase58Encoding is the encoding used for wizegene addresses

Functions

func GetGenesisPayload

func GetGenesisPayload() []byte

func KeyDerivationFromBlake3

func KeyDerivationFromBlake3(context string, key []byte) []byte

func NewSeed

func NewSeed() ([]byte, error)

NewSeed returns a cryptographically secure seed

func To4byte

func To4byte(content ...byte) [4]byte

func ToBlake3Hash

func ToBlake3Hash(data []byte) []byte

BLAKE3 (testing might use)

func ToBlake3Key

func ToBlake3Key(data []byte, key []byte) []byte

Types

type Key

type Key struct {
	Key         []byte // 33 bytes
	Version     []byte // 4 bytes
	ChildNumber []byte // 4 bytes
	FingerPrint []byte // 4 bytes
	ChainCode   []byte // 32 bytes
	Depth       byte   // 1 bytes
	IsPrivate   bool   // unserialized
	// contains filtered or unexported fields
}

Key represents a bip32 extended key

func B58Deserialize

func B58Deserialize(data string) (*Key, error)

B58Deserialize deserializes a Key encoded in base58 encoding

func Deserialize

func Deserialize(data []byte) (*Key, error)

Deserialize a byte slice into a Key

func NewMasterKey

func NewMasterKey(seed []byte) (*Key, error)

NewMasterKey creates a new Bitcoin master extended key from a seed

func NewMasterKeyWithCurve

func NewMasterKeyWithCurve(seed []byte) (*Key, error)

NewMasterKey creates a new master extended key from a seed using the given curve

func (*Key) B58Serialize

func (key *Key) B58Serialize() string

B58Serialize encodes the Key in the standard Bitcoin base58 encoding

func (*Key) NewChildKey

func (key *Key) NewChildKey(childIdx uint32) (*Key, error)

NewChildKey derives a child key from a given parent as outlined by bip32

func (*Key) PublicKey

func (key *Key) PublicKey() *Key

PublicKey returns the public version of key or return a copy The 'Neuter' function from the bip32 spec

func (*Key) Serialize

func (key *Key) Serialize() ([]byte, error)

Serialize a Key to a 78 byte byte slice

func (*Key) String

func (key *Key) String() string

String encodes the Key in the standard Bitcoin base58 encoding

Jump to

Keyboard shortcuts

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