HD 钱包

分层确定性钱包(HD钱包, Hierarchal Desterministic Wallet) 是为比特币创建的一个标准,但也适用于各种依赖secp256k1私钥的区块链。

更详细的技术理解:

类型

常量

ethers.utils.defaultPath "m/44'/60'/0'/0/0"

以太坊在HD钱包中的默认路径

助记词

mnemonic.phrase string

助记词的的助记短语,有12、15、18、21或24个单词长,由locale指定的空格进行分隔。

mnemonic.path string

助记词的HD路径。

mnemonic.locale string

这个助记词所使用的单词表语言。

HDNode

创建实例

ethers.HDNode.fromMnemonic( phrase [ , password [ , wordlist ] ] ) HDNode

为带有可选密码和单词列表的短语返回HDNode

ethers.HDNode.fromSeed( aBytesLike ) HDNode

为带有aBytesLike的种子返回HDNode

ethers.HDNode.fromExtendedKey( extendedKey ) HDNode

extendedKey返回HDNode。如果extendedKey被neutered,HDNode将只能计算地址,而不能计算私钥。

属性

hdNode.privateKey string< DataHexString< 32 > >

HDNode的私钥。

hdNode.publicKey string< DataHexString< 33 > >

HDNode压缩后的公钥。

hdNode.fingerprint string< DataHexString< 4 > >

fingerprint是用来快速匹配父节点和子节点的索引,但是可能会发生冲突,软件应该验证匹配的节点。

大多数开发者不会用到它。

hdNode.parentFingerprint string< DataHexString< 4 > >

父节点的fingerprint。请参阅fingerprint了解更多细节。

大多数开发者不会用到它。

hdNode.address string< 地址(Address) >

HDNode的地址。

hdNode.mnemonic 助记词

HDNode的助记符(如果已知)。

hdNode.path string

HDNode的path(如果已知)。如果助记词也是已知的,这将匹配mnemonic.path

hdNode.chainCode string< DataHexString< 32 > >

The chain code is used as a non-secret private key which is then used with EC-multiply to provide the ability to derive addresses without the private key of child non-hardened nodes.

大多数开发者不会用到它。

hdNode.index number

The index of this HDNode. This will match the last component of the path.

大多数开发者不会用到它。

hdNode.depth number

The depth of this HDNode. This will match the number of components (less one, the m/) of the path.

大多数开发者不会用到它。

hdNode.extendedKey string

此HDNode的序列化字符串表示形式。 并不是所有属性都包含在序列化中,例如助记符和路径,因此序列化和反序列化(使用fromExtendedKey类方法)将造成信息(information)的减少。

Methods

hdNode.neuter( ) HDNode

返回一个新的hdNode实例,其私钥被删除,但所有其他属性保留。 这确保了密钥不会泄露自己或任何派生子密钥,但仍然可以用于计算自己和任何未硬化(non-hardened)子密钥的地址。

hdNode.derivePath( path ) HDNode

返回一个新的HDNode,它是通过派生path找到的hdNode的子节点。

其他的函数

ethers.utils.mnemonicToSeed( phrase [ , password ] ) string< DataHexString< 64 > >

根据BIP-39,将助记词短语转换成种子。

ethers.utils.mnemonicToEntropy( phrase [ , wordlist ] ) string< DataHexString >

根据BIP-39,将助记词短语转换成熵(entropy)。

ethers.utils.isValidMnemonic( phrase [ , wordlist ] ) boolean

通过测试校验和,如果短语是有效的助记短语,则返回true。