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。