Documentation ¶
Index ¶
- Constants
- Variables
- func IsMnemonicValid(mnemonic string) bool
- func MnemonicToByteArray(mnemonic string) ([]byte, error)
- func NewEntropy(bitSize int) ([]byte, error)
- func NewMnemonic(entropy []byte) (string, error)
- func NewSeed(mnemonic string, password string) []byte
- func NewSeedWithErrorChecking(mnemonic string, password string) ([]byte, error)
- type Key
Constants ¶
const ( // FirstHardenedChild is the index of the firxt "harded" child key as per the // bip32 spec FirstHardenedChild = uint32(0x80000000) WIFPrefix = 0x80 )
Variables ¶
var (
// PrivateWalletVersion is the version flag for serialized private keys
PrivateWalletVersion, _ = hex.DecodeString("0488ADE4")
// PublicWalletVersion is the version flag for serialized private keys
PublicWalletVersion, _ = hex.DecodeString("0488B21E")
// 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")
)
var ( Last11BitsMask = big.NewInt(2047) RightShift11BitsDivider = big.NewInt(2048) BigOne = big.NewInt(1) BigTwo = big.NewInt(2) )
Some bitwise operands for working with big.Ints
var EnglishWordList = strings.Split(englishWordList, "\n")
Language-specific wordlists
var ReverseWordMap map[string]int = map[string]int{}
var WordList = EnglishWordList
The wordlist to use
Functions ¶
func IsMnemonicValid ¶
IsMnemonicValid attempts to verify that the provided mnemonic is valid. Validity is determined by both the number of words being appropriate, and that all the words in the mnemonic are present in the word list.
func MnemonicToByteArray ¶
MnemonicToByteArray takes a mnemonic string and turns it into a byte array suitable for creating another mnemonic. An error is returned if the mnemonic is invalid. FIXME This does not work for all values in the test vectors. Namely Vectors 0, 4, and 8. This is not really important because BIP39 doesnt really define a conversion from string to bytes.
func NewEntropy ¶
NewEntropy will create random entropy bytes so long as the requested size bitSize is an appropriate size.
func NewMnemonic ¶
NewMnemonic will return a string consisting of the mnemonic words for the given entropy. If the provide entropy is invalid, an error will be returned.
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 }
Key represents a bip32 extended key
func B58Deserialize ¶
B58Deserialize deserializes a Key encoded in base58 encoding
func FromMnemonic ¶
func NewMasterKey ¶
NewMasterKey creates a new master extended key from a seed
func (*Key) B58Serialize ¶
B58Serialize encodes the Key in the standard Bitcoin base58 encoding
func (*Key) NewChildKey ¶
NewChildKey derives a child key from a given parent as outlined by bip32
func (*Key) PublicKey ¶
PublicKey returns the public version of key or return a copy The 'Neuter' function from the bip32 spec