bip32

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2021 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

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

Variables

View Source
var (
	// add "xpr" prefix
	PrivateWalletVersion, _ = hex.DecodeString("0488ADE4")
	// add "xpr" prefix
	PublicWalletVersion, _    = hex.DecodeString("0488B21E")
	ErrSerializedKeyWrongSize = errors.New("Serialized keys should by exactly 82 bytes")
	ErrHardenedChildPublicKey = errors.New("Can't create hardened child for public key")
	ErrInvalidChecksum        = errors.New("Checksum doesn't match")
	ErrInvalidPrivateKey      = errors.New("Invalid private key")
	ErrInvalidPublicKey       = errors.New("Invalid public key")
)

Functions

func JsonString

func JsonString(data interface{}) string

func NewSeed

func NewSeed() ([]byte, error)

NewSeed returns a cryptographically secure seed

func ParseHDNum

func ParseHDNum(num uint32) uint32

将HD显示的数字转换为uint32 m/44'/60'/0'/0/account_index,如,那么传入44,将会转换为0x8000002C

func PubKeyToAddr

func PubKeyToAddr(pubKey []byte) string

Types

type Key

type Key struct {
	Key         []byte `json:"key"`          // 33 bytes
	Version     []byte `json:"version"`      // 4 bytes
	ChildNumber []byte `json:"child_number"` // 4 bytes bip44 level
	FingerPrint []byte `json:"finger_print"` // 4 bytes
	ChainCode   []byte `json:"chain_code"`   // 32 bytes
	Depth       byte   `json:"depth"`        // 1 bytes
	IsPrivate   bool   `json:"is_private"`   // unserialized
}

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 master extended key from a seed

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