Skip to content

Commit

Permalink
Add methods for getting xPub of root node and getting private key for…
Browse files Browse the repository at this point in the history
… an address
  • Loading branch information
rileystephens28 committed Jun 26, 2024
1 parent 755bfc2 commit 356cbee
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/wallet/hdwallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,15 @@ export abstract class AbstractHDWallet {
return (this.constructor as typeof AbstractHDWallet)._coinType!;
}

/**
* Returns the extended public key of the root node of the HD wallet.
*
* @returns {string} The extended public key.
*/
get xPub(): string {
return this._root.extendedKey;
}

/**
* Derives the next valid address node for a specified account, starting index, and zone. The method ensures the
* derived address belongs to the correct shard and ledger, as defined by the Quai blockchain specifications.
Expand Down Expand Up @@ -223,6 +232,18 @@ export abstract class AbstractHDWallet {
return addressInfo;
}

/**
* Returns the private key for a given address. This method should be used with caution as it exposes the private
* key to the user.
*
* @param {string} address - The address associated with the desired private key.
* @returns {string} The private key.
*/
public getPrivateKey(address: string): string {
const hdNode = this._getHDNodeForAddress(address);
return hdNode.privateKey;
}

/**
* Gets the addresses for a given account.
*
Expand Down

0 comments on commit 356cbee

Please sign in to comment.