Documentation ¶
Index ¶
- Constants
- type BitcoinKey
- type CoinType
- type Key
- func (k *Key) Bip32Key() *bip32.Key
- func (k *Key) Encode(compress bool) (wif, address, segwitBech32, segwitNested string, err error)
- func (k *Key) GetPath() string
- func (k *Key) PrivateKey() *btcec.PrivateKey
- func (k *Key) PrivateKeyBytes() []byte
- func (k *Key) PublicKey() *btcec.PublicKey
- func (k *Key) PublicKeyBytes() []byte
- type KeyManager
- func (km *KeyManager) GenerateKey(purpose, coinType, account, change, index uint32) (*Key, error)
- func (km *KeyManager) GetAccountKey(purpose, coinType, account uint32) (*bip32.Key, error)
- func (km *KeyManager) GetChangeKey(purpose, coinType, account, change uint32) (*bip32.Key, error)
- func (km *KeyManager) GetCoinTypeKey(purpose, coinType uint32) (*bip32.Key, error)
- func (km *KeyManager) GetMasterKey() (*bip32.Key, error)
- func (km *KeyManager) GetMnemonic() string
- func (km *KeyManager) GetPassphrase() string
- func (km *KeyManager) GetPurposeKey(purpose uint32) (*bip32.Key, error)
- func (km *KeyManager) GetSeed() []byte
- type Purpose
Constants ¶
const (
Apostrophe uint32 = 0x80000000 // 0'
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BitcoinKey ¶
type BitcoinKey struct { *Key *KeyManager }
func (*BitcoinKey) Address ¶
func (k *BitcoinKey) Address() string
func (*BitcoinKey) Bech32 ¶
func (k *BitcoinKey) Bech32() string
func (*BitcoinKey) MasterKeyB58 ¶
func (k *BitcoinKey) MasterKeyB58() string
func (*BitcoinKey) WIF ¶
func (k *BitcoinKey) WIF() string
type CoinType ¶
type CoinType = uint32
CoinType SLIP-0044 : Registered coin types for BIP-0044 https://github.com/satoshilabs/slips/blob/master/slip-0044.md
type Key ¶
type Key struct {
// contains filtered or unexported fields
}
func (*Key) PrivateKey ¶
func (k *Key) PrivateKey() *btcec.PrivateKey
func (*Key) PrivateKeyBytes ¶
func (*Key) PublicKeyBytes ¶
type KeyManager ¶
type KeyManager struct {
// contains filtered or unexported fields
}
func NewKeyManager ¶
func NewKeyManager(bitSize int, passphrase, mnemonic string) (*KeyManager, error)
NewKeyManager return new key manager bitSize has to be a multiple 32 and be within the inclusive range of {128, 256} 128: 12 phrases 256: 24 phrases
func (*KeyManager) GenerateKey ¶
func (km *KeyManager) GenerateKey(purpose, coinType, account, change, index uint32) (*Key, error)
func (*KeyManager) GetAccountKey ¶
func (km *KeyManager) GetAccountKey(purpose, coinType, account uint32) (*bip32.Key, error)
func (*KeyManager) GetChangeKey ¶
func (km *KeyManager) GetChangeKey(purpose, coinType, account, change uint32) (*bip32.Key, error)
GetChangeKey ... https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change change constant 0 is used for external chain change constant 1 is used for internal chain (also known as change addresses)
func (*KeyManager) GetCoinTypeKey ¶
func (km *KeyManager) GetCoinTypeKey(purpose, coinType uint32) (*bip32.Key, error)
func (*KeyManager) GetMasterKey ¶
func (km *KeyManager) GetMasterKey() (*bip32.Key, error)
func (*KeyManager) GetMnemonic ¶
func (km *KeyManager) GetMnemonic() string
func (*KeyManager) GetPassphrase ¶
func (km *KeyManager) GetPassphrase() string
func (*KeyManager) GetPurposeKey ¶
func (km *KeyManager) GetPurposeKey(purpose uint32) (*bip32.Key, error)
func (*KeyManager) GetSeed ¶
func (km *KeyManager) GetSeed() []byte
type Purpose ¶
type Purpose = uint32
Purpose BIP43 - Purpose Field for Deterministic Wallets https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki
Purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation. It indicates that the subtree of this node is used according to this specification.
What does 44' mean in BIP44? https://bitcoin.stackexchange.com/questions/74368/what-does-44-mean-in-bip44
44' means that hardened keys should be used. The distinguisher for whether a key a given index is hardened is that the index is greater than 2^31, which is 2147483648. In hex, that is 0x80000000. That is what the apostrophe (') means. The 44 comes from adding it to 2^31 to get the final hardened key index. In hex, 44 is 2C, so 0x80000000 + 0x2C = 0x8000002C.