File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -116,6 +116,14 @@ include an index `>= HARDENED_INDEX`.
116116
117117Equivalent to ` get_xpriv_from_path([]) ` .
118118
119+ ### get_xpriv_bytes(path)
120+
121+ Equivalent to ` get_xpriv([]) ` , but not serialized in base58
122+
119123### get_xpub(path)
120124
121125Equivalent to ` get_xpub_from_path([]) ` .
126+
127+ ### get_xpub_bytes(path)
128+
129+ Equivalent to ` get_xpub([]) ` , but not serialized in base58
Original file line number Diff line number Diff line change @@ -245,30 +245,36 @@ def get_xpub_from_path(self, path):
245245 return base58 .b58encode_check (extended_key ).decode ()
246246
247247 def get_xpriv (self ):
248+ """Get the base58 encoded extended private key."""
249+ return base58 .b58encode_check (self .get_xpriv_bytes ()).decode ()
250+
251+ def get_xpriv_bytes (self ):
248252 """Get the encoded extended private key."""
249253 if self .privkey is None :
250254 raise PrivateDerivationError
251- extended_key = _serialize_extended_key (
255+ return _serialize_extended_key (
252256 self .privkey ,
253257 self .depth ,
254258 self .parent_fingerprint ,
255259 self .index ,
256260 self .chaincode ,
257261 self .network ,
258262 )
259- return base58 .b58encode_check (extended_key ).decode ()
260263
261264 def get_xpub (self ):
262265 """Get the encoded extended public key."""
263- extended_key = _serialize_extended_key (
266+ return base58 .b58encode_check (self .get_xpub_bytes ()).decode ()
267+
268+ def get_xpub_bytes (self ):
269+ """Get the encoded extended public key."""
270+ return _serialize_extended_key (
264271 self .pubkey ,
265272 self .depth ,
266273 self .parent_fingerprint ,
267274 self .index ,
268275 self .chaincode ,
269276 self .network ,
270277 )
271- return base58 .b58encode_check (extended_key ).decode ()
272278
273279 @classmethod
274280 def from_xpriv (cls , xpriv ):
Original file line number Diff line number Diff line change @@ -13,10 +13,16 @@ def test_vector_1():
1313 bip32 .get_xpub ()
1414 == "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"
1515 )
16+ assert bip32 .get_xpub_bytes () == bytes .fromhex (
17+ "0488b21e000000000000000000873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d5080339a36013301597daef41fbe593a02cc513d0b55527ec2df1050e2e8ff49c85c2"
18+ )
1619 assert (
1720 bip32 .get_xpriv ()
1821 == "xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi"
1922 )
23+ assert bip32 .get_xpriv_bytes () == bytes .fromhex (
24+ "0488ade4000000000000000000873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d50800e8f32e723decf4051aefac8e2c93c9c5b214313817cdb01a1494b917c8436b35"
25+ )
2026 # Chain m/0H
2127 assert (
2228 bip32 .get_xpub_from_path ([HARDENED_INDEX ])
@@ -112,10 +118,16 @@ def test_vector_2():
112118 bip32 .get_xpub ()
113119 == "xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB"
114120 )
121+ assert bip32 .get_xpub_bytes () == bytes .fromhex (
122+ "0488b21e00000000000000000060499f801b896d83179a4374aeb7822aaeaceaa0db1f85ee3e904c4defbd968903cbcaa9c98c877a26977d00825c956a238e8dddfbd322cce4f74b0b5bd6ace4a7"
123+ )
115124 assert (
116125 bip32 .get_xpriv ()
117126 == "xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U"
118127 )
128+ assert bip32 .get_xpriv_bytes () == bytes .fromhex (
129+ "0488ade400000000000000000060499f801b896d83179a4374aeb7822aaeaceaa0db1f85ee3e904c4defbd9689004b03d6fc340455b363f51020ad3ecca4f0850280cf436c70c727923f6db46c3e"
130+ )
119131 # Chain m/0
120132 assert (
121133 bip32 .get_xpub_from_path ([0 ])
You can’t perform that action at this time.
0 commit comments