@@ -13,18 +13,28 @@ def test_vector_1():
1313 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX ]) ==
1414"xpub68Gmy5EdvgibQVfPdqkBBCHxA5htiqg55crXYuXoQRKfDBFA1WEjWgP6LHhwBZeNK1VTsfTFUHCdrfp1bgwQ9xv5ski8PX9rL2dZXvgGDnw" )
1515 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX ]) == "xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkX8Br5ngLNv1TxvUxt4cV1rGL5hj6KCesnDYUhd7oWgT11eZG7XnxHrnYeSvkzY7d2bhkJ7" )
16+ assert (bip32 .get_xpub_from_path ("m/0H" ) == bip32 .get_xpub_from_path ([HARDENED_INDEX ]))
17+ assert (bip32 .get_xpriv_from_path ("m/0H" ) == bip32 .get_xpriv_from_path ([HARDENED_INDEX ]))
1618 # m/0H/1
1719 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 ]) == "xpub6ASuArnXKPbfEwhqN6e3mwBcDTgzisQN1wXN9BJcM47sSikHjJf3UFHKkNAWbWMiGj7Wf5uMash7SyYq527Hqck2AxYysAA7xmALppuCkwQ" )
1820 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 ]) == "xprv9wTYmMFdV23N2TdNG573QoEsfRrWKQgWeibmLntzniatZvR9BmLnvSxqu53Kw1UmYPxLgboyZQaXwTCg8MSY3H2EU4pWcQDnRnrVA1xe8fs" )
21+ assert (bip32 .get_xpub_from_path ("m/0'/1" ) == bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 ]))
22+ assert (bip32 .get_xpriv_from_path ("m/0'/1" ) == bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 ]))
1923 # m/0H/1/2H
2024 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 ]) == "xpub6D4BDPcP2GT577Vvch3R8wDkScZWzQzMMUm3PWbmWvVJrZwQY4VUNgqFJPMM3No2dFDFGTsxxpG5uJh7n7epu4trkrX7x7DogT5Uv6fcLW5" )
2125 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 ]) == "xprv9z4pot5VBttmtdRTWfWQmoH1taj2axGVzFqSb8C9xaxKymcFzXBDptWmT7FwuEzG3ryjH4ktypQSAewRiNMjANTtpgP4mLTj34bhnZX7UiM" )
26+ assert (bip32 .get_xpub_from_path ("m/0h/1/2h" ) == bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 ]))
27+ assert (bip32 .get_xpriv_from_path ("m/0h/1/2h" ) == bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 ]))
2228 # m/0H/1/2H/2
2329 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 ]) == "xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiLjTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV" )
2430 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 ]) == "xprvA2JDeKCSNNZky6uBCviVfJSKyQ1mDYahRjijr5idH2WwLsEd4Hsb2Tyh8RfQMuPh7f7RtyzTtdrbdqqsunu5Mm3wDvUAKRHSC34sJ7in334" )
31+ assert (bip32 .get_xpub_from_path ("m/0'/1/2'/2" ) == "xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiLjTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV" )
32+ assert (bip32 .get_xpriv_from_path ("m/0'/1/2'/2" ) == "xprvA2JDeKCSNNZky6uBCviVfJSKyQ1mDYahRjijr5idH2WwLsEd4Hsb2Tyh8RfQMuPh7f7RtyzTtdrbdqqsunu5Mm3wDvUAKRHSC34sJ7in334" )
2533 # m/0H/1/2H/2/1000000000
2634 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 , 1000000000 ]) == "xpub6H1LXWLaKsWFhvm6RVpEL9P4KfRZSW7abD2ttkWP3SSQvnyA8FSVqNTEcYFgJS2UaFcxupHiYkro49S8yGasTvXEYBVPamhGW6cFJodrTHy" )
2735 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 , 1000000000 ]) == "xprvA41z7zogVVwxVSgdKUHDy1SKmdb533PjDz7J6N6mV6uS3ze1ai8FHa8kmHScGpWmj4WggLyQjgPie1rFSruoUihUZREPSL39UNdE3BBDu76" )
36+ assert (bip32 .get_xpub_from_path ("m/0H/1/2H/2/1000000000" ) == bip32 .get_xpub_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 , 1000000000 ]))
37+ assert (bip32 .get_xpriv_from_path ("m/0H/1/2H/2/1000000000" ) == bip32 .get_xpriv_from_path ([HARDENED_INDEX , 1 , HARDENED_INDEX + 2 , 2 , 1000000000 ]))
2838
2939
3040def test_vector_2 ():
@@ -36,18 +46,28 @@ def test_vector_2():
3646 # Chain m/0
3747 assert (bip32 .get_xpub_from_path ([0 ]) == "xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH" )
3848 assert (bip32 .get_xpriv_from_path ([0 ]) == "xprv9vHkqa6EV4sPZHYqZznhT2NPtPCjKuDKGY38FBWLvgaDx45zo9WQRUT3dKYnjwih2yJD9mkrocEZXo1ex8G81dwSM1fwqWpWkeS3v86pgKt" )
49+ assert (bip32 .get_xpriv_from_path ("m/0" ) == bip32 .get_xpriv_from_path ([0 ]))
50+ assert (bip32 .get_xpub_from_path ("m/0" ) == bip32 .get_xpub_from_path ([0 ]))
3951 # Chain m/0/2147483647H
4052 assert (bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 ]) == "xpub6ASAVgeehLbnwdqV6UKMHVzgqAG8Gr6riv3Fxxpj8ksbH9ebxaEyBLZ85ySDhKiLDBrQSARLq1uNRts8RuJiHjaDMBU4Zn9h8LZNnBC5y4a" )
4153 assert (bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 ]) == "xprv9wSp6B7kry3Vj9m1zSnLvN3xH8RdsPP1Mh7fAaR7aRLcQMKTR2vidYEeEg2mUCTAwCd6vnxVrcjfy2kRgVsFawNzmjuHc2YmYRmagcEPdU9" )
54+ assert (bip32 .get_xpub_from_path ("m/0/2147483647H" ) == bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 ]))
55+ assert (bip32 .get_xpriv_from_path ("m/0/2147483647H" ) == bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 ]))
4256 # Chain m/0/2147483647H/1
4357 assert (bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 ]) == "xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvmdMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon" )
4458 assert (bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 ]) == "xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25UEPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef" )
59+ assert (bip32 .get_xpub_from_path ("m/0/2147483647H/1" ) == bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 ]))
60+ assert (bip32 .get_xpriv_from_path ("m/0/2147483647H/1" ) == bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 ]))
4561 # Chain m/0/2147483647H/1/2147483646H
4662 assert (bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 ]) == "xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL" )
4763 assert (bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 ]) == "xprvA1RpRA33e1JQ7ifknakTFpgNXPmW2YvmhqLQYMmrj4xJXXWYpDPS3xz7iAxn8L39njGVyuoseXzU6rcxFLJ8HFsTjSyQbLYnMpCqE2VbFWc" )
64+ assert (bip32 .get_xpub_from_path ("m/0/2147483647H/1/2147483646H" ) == bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 ]))
65+ assert (bip32 .get_xpriv_from_path ("m/0/2147483647H/1/2147483646H" ) == bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 ]))
4866 # Chain m/0/2147483647H/1/2147483646H/2
4967 assert (bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 , 2 ]) == "xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt" )
5068 assert (bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 , 2 ]) == "xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j" )
69+ assert (bip32 .get_xpub_from_path ("m/0/2147483647H/1/2147483646H/2" ) == bip32 .get_xpub_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 , 2 ]))
70+ assert (bip32 .get_xpriv_from_path ("m/0/2147483647H/1/2147483646H/2" ) == bip32 .get_xpriv_from_path ([0 , HARDENED_INDEX + 2147483647 , 1 , HARDENED_INDEX + 2147483646 , 2 ]))
5171
5272
5373def test_vector_3 ():
@@ -56,9 +76,13 @@ def test_vector_3():
5676 # Chain m
5777 assert (bip32 .get_xpub_from_path ([]) == "xpub661MyMwAqRbcEZVB4dScxMAdx6d4nFc9nvyvH3v4gJL378CSRZiYmhRoP7mBy6gSPSCYk6SzXPTf3ND1cZAceL7SfJ1Z3GC8vBgp2epUt13" )
5878 assert (bip32 .get_xpriv_from_path ([]) == "xprv9s21ZrQH143K25QhxbucbDDuQ4naNntJRi4KUfWT7xo4EKsHt2QJDu7KXp1A3u7Bi1j8ph3EGsZ9Xvz9dGuVrtHHs7pXeTzjuxBrCmmhgC6" )
79+ assert (bip32 .get_xpub_from_path ("m" ) == bip32 .get_xpub_from_path ([]))
80+ assert (bip32 .get_xpriv_from_path ("m" ) == bip32 .get_xpriv_from_path ([]))
5981 # Chain m/0H
6082 assert (bip32 .get_xpub_from_path ([HARDENED_INDEX ]) == "xpub68NZiKmJWnxxS6aaHmn81bvJeTESw724CRDs6HbuccFQN9Ku14VQrADWgqbhhTHBaohPX4CjNLf9fq9MYo6oDaPPLPxSb7gwQN3ih19Zm4Y" )
6183 assert (bip32 .get_xpriv_from_path ([HARDENED_INDEX ]) == "xprv9uPDJpEQgRQfDcW7BkF7eTya6RPxXeJCqCJGHuCJ4GiRVLzkTXBAJMu2qaMWPrS7AANYqdq6vcBcBUdJCVVFceUvJFjaPdGZ2y9WACViL4L" )
84+ assert (bip32 .get_xpub_from_path ("m/0H" ) == bip32 .get_xpub_from_path ([HARDENED_INDEX ]))
85+ assert (bip32 .get_xpriv_from_path ("m/0H" ) == bip32 .get_xpriv_from_path ([HARDENED_INDEX ]))
6286
6387
6488def test_sanity_tests ():
0 commit comments