@@ -484,7 +484,7 @@ export class HdKeyring implements Keyring {
484484 * @returns The Uint8Array mnemonic.
485485 */
486486 #mnemonicToUint8Array(
487- mnemonic : Buffer | SerializedBuffer | string | Uint8Array | number [ ] ,
487+ mnemonic : Mnemonic ,
488488 ) : Uint8Array {
489489 let mnemonicData : unknown = mnemonic ;
490490 // When using `Buffer.toJSON()`, the Buffer is serialized into an object
@@ -653,28 +653,9 @@ export class HdKeyring implements Keyring {
653653 * @throws If the mnemonic is invalid.
654654 */
655655 #isValidMnemonic( mnemonic : Mnemonic ) : void {
656- let mnemonicString : string ;
657-
658- if ( typeof mnemonic === 'string' ) {
659- mnemonicString = mnemonic ;
660- } else if ( Array . isArray ( mnemonic ) ) {
661- mnemonicString = Buffer . from ( mnemonic ) . toString ( ) ;
662- } else if ( isSerializedBuffer ( mnemonic ) ) {
663- mnemonicString = Buffer . from ( mnemonic . data ) . toString ( ) ;
664- } else if ( Buffer . isBuffer ( mnemonic ) ) {
665- mnemonicString = mnemonic . toString ( ) ;
666- } else if ( mnemonic instanceof Uint8Array ) {
667- mnemonicString = this . #uint8ArrayToString( mnemonic ) ;
668- } else if ( typeof mnemonic === 'object' ) {
669- // When encrypted/decrypted, Uint8Arrays can become plain objects like {0: ..., 1: ..., ...}
670- // Convert back to Uint8Array first, then to mnemonic string
671- const mnemonicAsUint8Array = Uint8Array . from (
672- Object . values ( mnemonic as Record < string , number > ) ,
673- ) ;
674- mnemonicString = this . #uint8ArrayToString( mnemonicAsUint8Array ) ;
675- } else {
676- throw new Error ( 'Eth-Hd-Keyring: Invalid mnemonic format' ) ;
677- }
656+ // Reuse #mnemonicToUint8Array for format conversion to avoid duplication
657+ const mnemonicAsUint8Array = this . #mnemonicToUint8Array( mnemonic ) ;
658+ const mnemonicString = this . #uint8ArrayToString( mnemonicAsUint8Array ) ;
678659
679660 if ( ! validateMnemonic ( mnemonicString , wordlist ) ) {
680661 throw new Error (
0 commit comments