@@ -293,11 +293,8 @@ var DashHd = ("object" === typeof module && exports) || {};
293
293
return null ;
294
294
}
295
295
296
- let key = new Uint8Array ( KEY_SIZE ) ;
297
- key . set ( [ 0 ] , 0 ) ;
298
- key . set ( hdkey . privateKey , 1 ) ;
299
296
//@ts -ignore - wth?
300
- return await Utils . encodeXPrv ( serialize ( hdkey , key ) ) ;
297
+ return await Utils . encodeXPrv ( serialize ( hdkey , hdkey . privateKey ) ) ;
301
298
} ;
302
299
303
300
DashHd . toXPub = async function ( hdkey ) {
@@ -606,9 +603,9 @@ var DashHd = ("object" === typeof module && exports) || {};
606
603
607
604
/**
608
605
* @param {HDKey } hdkey - TODO attach to hdkey
609
- * @param {Uint8Array } key
606
+ * @param {Uint8Array } keyBytes
610
607
*/
611
- function serialize ( hdkey , key ) {
608
+ function serialize ( hdkey , keyBytes ) {
612
609
// version(4) + depth(1) + fingerprint(4) + index(4) + chain(32) + key(33)
613
610
let xkey = new Uint8Array ( XKEY_SIZE ) ;
614
611
let xkeyDv = new DataView ( xkey . buffer ) ;
@@ -623,7 +620,14 @@ var DashHd = ("object" === typeof module && exports) || {};
623
620
xkeyDv . setUint32 ( 5 , hdkey . index , BUFFER_BE ) ;
624
621
625
622
xkey . set ( hdkey . chainCode , 9 ) ;
626
- xkey . set ( key , 41 ) ;
623
+
624
+ let keyStart = 41 ;
625
+ let isPrivate = 32 === keyBytes . length ;
626
+ if ( isPrivate ) {
627
+ xkey [ keyStart ] = 0x00 ;
628
+ keyStart += 1 ;
629
+ }
630
+ xkey . set ( keyBytes , keyStart ) ;
627
631
628
632
return xkey ;
629
633
}
0 commit comments