@dashevo/dashcore-lib
Version:
A pure and powerful JavaScript Dash library.
146 lines (88 loc) • 5.52 kB
Markdown
**Usage**: `new HDPrivateKey(data)`
**Description**: Instantiate an instance of a hierarchically derived private key (read more about HD in the [BIP-32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)).
| parameters | type | required | Description |
| ---------- | -------------------- | -------- | -------------------------------- |
| **data** | Object/Buffer/String | yes | A Buffer, JSON string, or Object |
**Returns**: {HDPrivateKey} A new instance of a HDPrivateKey
## HDPrivateKey.isValidPath(path)
**Description**: Verifies that a given path is valid.
**Parameters**:
| parameter | type | required | Description |
| --------- | ------------- | -------- | ----------- |
| **path** | String/Number | yes | A path |
**Returns**: {Boolean}
## HDPrivateKey.isValidSerialized(data, network)
**Description**: Verifies that a given serialized private key in base58 with checksum format is valid.
**Parameters**:
| parameter | type | required | Description |
| ----------- | -------------- | -------- | -------------------------------------------------------------------------------------- |
| **data** | String/Buffer | yes | the serialized private key |
| **network** | String/Network | no | optional, if present, checks that the network provided matches the network serialized. |
**Returns**: {Boolean}
## HDPrivateKey.getSerializedError(data, network)
**Description**: Checks what's the error that causes the validation of a serialized private key in base58 with checksum to fail.
| parameter | type | required | Description |
| ----------- | -------------- | -------- | -------------------------------------------------------------------------------------- |
| **data** | String/Buffer | yes | the serialized private key |
| **network** | String/Network | no | optional, if present, checks that the network provided matches the network serialized. |
## HDPrivateKey.fromSeed(hex, network)
**Description**: Verifies that a given serialized private key in base58 with checksum format is valid.
**Parameters**:
| parameter | type | required | Description |
| ----------- | -------------- | -------- | ---------------------------------- |
| **hex** | String/Buffer | yes | seed serialized as string a buffer |
| **network** | String/Network | no | |
**Returns**: {HDPrivateKey}
## HDPrivateKey.fromString(str)
**Description**: Instantiate a HDPrivateKey from a string representation
**Parameters**:
| parameter | type | required | Description |
| --------- | ------ | -------- | ----------- |
| **str** | String | yes | |
Returns : {HDPrivateKey} An instance of HDPrivateKey
## HDPrivateKey.fromObject(obj)
**Description**: Instantiate a HDPrivateKey from an object
**Parameters**:
| parameter | type | required | Description |
| --------- | ------ | -------- | ----------- |
| **obj** | Object | yes | |
Returns : {HDPrivateKey} An instance of HDPrivateKey
## HDPrivateKey.fromBuffer(buf)
**Description**: Instantiate a HDPrivateKey from a buffer
**Parameters**:
| parameter | type | required | Description |
| --------- | ------ | -------- | ----------- |
| **buf** | Buffer | yes | |
Returns : {HDPrivateKey} An instance of HDPrivateKey
## .deriveChild(arg)
**Description**: Get a derived child based on a string or number.
If the first argument is a string, it's parsed as the full path of derivation. Valid values for this argument include "m" (which returns the same private key), "m/0/1/40/2'/1000", where the ' quote means a hardened derivation.
If the first argument is a number, the child with that index will be derived. If the second argument is truthy, the hardened version will bederived. See the example usage for clarification.
**Parameters**: None.
**Returns**: {string} A hex encoded string of the HD private key
```js
const parent = new HDPrivateKey('xprv...');
const child_0_1_2h = parent.deriveChild(0).deriveChild(1).deriveChild(2, true);
const copy_of_child_0_1_2h = parent.deriveChild("m/0/1/2'");
assert(child_0_1_2h.xprivkey === copy_of_child_0_1_2h);
```
## .toString()
**Description**:Will return a string representation of the HD private key
**Parameters**: None.
**Returns**: {string} A hex encoded string of the HD private key
## .toJSON() / .toObject()
**Description**: Will return an object representation of the HD private key
**Parameters**: None.
**Returns**: {Object} A plain object with the HDPrivateKey properties
## .toBuffer()
**Description**: Will return a buffer representation of the HD private key
**Parameters**: None.
**Returns**: {Buffer} A buffer of the HD private key
## .inspect()
**Description**: Will return a string formatted for the console
**Parameters**: None.
**Returns**: {string} Console representation of this extended private key.
```js
const hdPrivateKey = new HDPrivateKey(...);
hdPrivateKey.toInspect() // <HDPrivateKey: xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi>
```