mirror of
https://github.com/urbit/shrub.git
synced 2024-12-30 15:44:03 +03:00
485 lines
16 KiB
Plaintext
485 lines
16 KiB
Plaintext
:: tests for the bip32 lib
|
|
::
|
|
:: Test vectors from:
|
|
:: https://en.bitcoin.it/wiki/BIP_0032_TestVectors
|
|
::
|
|
/+ *test, bip32
|
|
=, bip32
|
|
::
|
|
|%
|
|
+$ vector
|
|
$: mk=byts
|
|
pf=@ux
|
|
dp=tape
|
|
ad=@uc
|
|
id=@ux
|
|
sk=@ux
|
|
pk=@ux
|
|
cc=@ux
|
|
xpub=tape
|
|
xprv=tape
|
|
==
|
|
::
|
|
++ test-vectors
|
|
^- tang
|
|
|^ ;: weld
|
|
%+ category "identity"
|
|
(zing (turn vectors check-id))
|
|
%+ category "public-key"
|
|
(zing (turn vectors check-pk))
|
|
%+ category "private-key"
|
|
(zing (turn vectors check-sk))
|
|
%+ category "chaincode"
|
|
(zing (turn vectors check-cc))
|
|
%+ category "fingerprint"
|
|
(zing (turn vectors check-pf))
|
|
%+ category "address-from-xprv"
|
|
(zing (check-addr-xprv vectors))
|
|
%+ category "address-from-xpub"
|
|
(zing (check-addr-xpub vectors))
|
|
%+ category "extended-private"
|
|
(zing (turn vectors check-xprv))
|
|
%+ category "extended-public"
|
|
(zing (turn vectors check-xpub))
|
|
==
|
|
::
|
|
++ check-id
|
|
|= vector
|
|
=/ identity=@ux
|
|
=< identity
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> id
|
|
!> identity
|
|
::
|
|
++ check-pk
|
|
|= vector
|
|
=/ public-key=@ux
|
|
=< public-key
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> pk
|
|
!> public-key
|
|
::
|
|
++ check-sk
|
|
|= vector
|
|
=/ private-key=@ux
|
|
=< private-key
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> sk
|
|
!> private-key
|
|
::
|
|
++ check-cc
|
|
|= vector
|
|
=/ chain-code=@ux
|
|
=< chain-code
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> cc
|
|
!> chain-code
|
|
::
|
|
++ check-pf
|
|
|= vector
|
|
=/ parent-fingerprint=@ux
|
|
=< fingerprint
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> pf
|
|
!> parent-fingerprint
|
|
::
|
|
++ check-addr-xprv
|
|
|= vectors=(list vector)
|
|
?> ?=(^ vectors)
|
|
=/ base=vector i.vectors
|
|
=/ tests=(list vector) t.vectors
|
|
|- ^- (list tang)
|
|
?~ tests ~
|
|
=* deriv i.tests
|
|
:_ %_ $
|
|
tests t.tests
|
|
base ?:(=(dp.deriv "m") deriv base)
|
|
==
|
|
:: force success before starting second round of vectors
|
|
::
|
|
?: =(dp.deriv "m") *tang
|
|
=/ address=@uc
|
|
=< (address %main)
|
|
(derive-path:(from-extended xprv.base) dp.deriv)
|
|
%+ expect-eq
|
|
!> ad.deriv
|
|
!> address
|
|
::
|
|
++ check-addr-xpub
|
|
|= vectors=(list vector)
|
|
:: we can only derive non-hardened keys from an xpub key
|
|
:: e.g. from m/0'/1/2' to m/0'/1/2'/2/1000000000
|
|
::
|
|
?> ?=([^ ^ ^ ^ *] vectors)
|
|
=/ base=vector i.t.t.t.vectors
|
|
=/ tests=(list vector) t.t.t.t.vectors
|
|
|- ^- (list tang)
|
|
?~ tests ~
|
|
=* deriv i.tests
|
|
:_ :: Second list of vectors has hardened paths. we skip those.
|
|
::
|
|
$(tests ?:(=(dp.deriv "m") ~ t.tests), base base)
|
|
?: =(dp.deriv "m") *tang
|
|
:: strips the hardened part of the path (at index=9)
|
|
:: m/0'/1/2'/2
|
|
:: --------^
|
|
::
|
|
=. dp.deriv ['m' q:(trim 9 dp.deriv)]
|
|
=/ address=@uc
|
|
=< (address %main)
|
|
(derive-path:(from-extended xpub.base) dp.deriv)
|
|
%+ expect-eq
|
|
!> ad.deriv
|
|
!> address
|
|
::
|
|
++ check-xprv
|
|
|= vector
|
|
=/ extended-xprv=tape
|
|
=< (prv-extended %main)
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> xprv
|
|
!> extended-xprv
|
|
::
|
|
++ check-xpub
|
|
|= vector
|
|
=/ extended-pub=tape
|
|
=< (pub-extended %main)
|
|
?: =("m" dp)
|
|
(from-seed mk)
|
|
(derive-path:(from-seed mk) dp)
|
|
%+ expect-eq
|
|
!> xpub
|
|
!> extended-pub
|
|
::
|
|
++ vectors
|
|
^- (list vector)
|
|
:~ :* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0x3442.193e
|
|
"m"
|
|
0c15mKKb2eos1hWa6tisdPwwDC1a5J1y9nma
|
|
0x3442.193e.1bb7.0916.e914.5521.72cd.4e2d.bc9d.f811
|
|
::
|
|
0xe8f3.2e72.3dec.f405.1aef.ac8e.2c93.c9c5.
|
|
b214.3138.17cd.b01a.1494.b917.c843.6b35
|
|
::
|
|
0x3.39a3.6013.3015.97da.ef41.fbe5.93a0.2cc5.
|
|
13d0.b555.27ec.2df1.050e.2e8f.f49c.85c2
|
|
::
|
|
0x873d.ff81.c02f.5256.23fd.1fe5.167e.ac3a.
|
|
55a0.49de.3d31.4bb4.2ee2.27ff.ed37.d508
|
|
::
|
|
%+ weld
|
|
"xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2g"
|
|
"Z29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"
|
|
::
|
|
%+ weld
|
|
"xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiC"
|
|
"hkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi"
|
|
==
|
|
::
|
|
:* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0x5c1b.d648
|
|
"m/0'"
|
|
0c19Q2WoS5hSS6T8GjhK8KZLMgmWaq4neXrh
|
|
0x5c1b.d648.ed23.aa5f.d50b.a52b.2457.c11e.9e80.a6a7
|
|
::
|
|
0xedb2.e14f.9ee7.7d26.dd93.b4ec.ede8.d16e.
|
|
d408.ce14.9b6c.d80b.0715.a2d9.11a0.afea
|
|
::
|
|
0x3.5a78.4662.a4a2.0a65.bf6a.ab9a.e98a.6c06.
|
|
8a81.c52e.4b03.2c0f.b540.0c70.6cfc.cc56
|
|
::
|
|
0x47fd.acbd.0f10.9704.3b78.c63c.20c3.4ef4.
|
|
ed9a.111d.9800.47ad.1628.2c7a.e623.6141
|
|
::
|
|
%+ weld
|
|
"xpub68Gmy5EdvgibQVfPdqkBBCHxA5htiqg55crXYuXoQRKfDBFA1WEjWgP6"
|
|
"LHhwBZeNK1VTsfTFUHCdrfp1bgwQ9xv5ski8PX9rL2dZXvgGDnw"
|
|
::
|
|
%+ weld
|
|
"xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkX8Br5ngLNv1TxvUxt4c"
|
|
"V1rGL5hj6KCesnDYUhd7oWgT11eZG7XnxHrnYeSvkzY7d2bhkJ7"
|
|
==
|
|
::
|
|
:* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0xbef5.a2f9
|
|
"m/0'/1"
|
|
0c1JQheacLPdM5ySCkrZkV66G2ApAXe1mqLj
|
|
0xbef5.a2f9.a56a.94aa.b124.59f7.2ad9.cf8c.f19c.7bbe
|
|
::
|
|
0x3c6c.b8d0.f6a2.64c9.1ea8.b503.0fad.aa8e.
|
|
538b.020f.0a38.7421.a12d.e931.9dc9.3368
|
|
::
|
|
0x3.501e.454b.f007.51f2.4b1b.489a.a925.215d.
|
|
66af.2234.e389.1c3b.21a5.2bed.b3cd.711c
|
|
::
|
|
0x2a78.5763.1386.ba23.daca.c341.80dd.1983.
|
|
734e.444f.dbf7.7404.1578.e9b6.adb3.7c19
|
|
::
|
|
%+ weld
|
|
"xpub6ASuArnXKPbfEwhqN6e3mwBcDTgzisQN1wXN9BJcM47sSikHjJf3UFHKk"
|
|
"NAWbWMiGj7Wf5uMash7SyYq527Hqck2AxYysAA7xmALppuCkwQ"
|
|
::
|
|
%+ weld
|
|
"xprv9wTYmMFdV23N2TdNG573QoEsfRrWKQgWeibmLntzniatZvR9BmLnvSxqu5"
|
|
"3Kw1UmYPxLgboyZQaXwTCg8MSY3H2EU4pWcQDnRnrVA1xe8fs"
|
|
==
|
|
::
|
|
:* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0xee7a.b90c
|
|
"m/0'/1/2'"
|
|
0c1NjxqbA9aZWnh17q1UW3rB4EPu79wDXj7x
|
|
0xee7a.b90c.de56.a8c0.e2bb.086a.c497.48b8.db9d.ce72
|
|
::
|
|
0xcbce.0d71.9ecf.7431.d88e.6a89.fa14.83e0.
|
|
2e35.092a.f60c.042b.1df2.ff59.fa42.4dca
|
|
::
|
|
0x3.57bf.e1e3.41d0.1c69.fe56.5430.9956.cbea.
|
|
5168.22fb.a8a6.0174.3a01.2a78.96ee.8dc2
|
|
::
|
|
0x446.6b9c.c8e1.61e9.6640.9ca5.2986.c584.f07e.
|
|
9dc8.1f73.5db6.83c3.ff6e.c7b1.503f
|
|
::
|
|
%+ weld
|
|
"xpub6D4BDPcP2GT577Vvch3R8wDkScZWzQzMMUm3PWbmWvVJrZwQY4VUNgqFJPM"
|
|
"M3No2dFDFGTsxxpG5uJh7n7epu4trkrX7x7DogT5Uv6fcLW5"
|
|
::
|
|
%+ weld
|
|
"xprv9z4pot5VBttmtdRTWfWQmoH1taj2axGVzFqSb8C9xaxKymcFzXBDptWmT7F"
|
|
"wuEzG3ryjH4ktypQSAewRiNMjANTtpgP4mLTj34bhnZX7UiM"
|
|
==
|
|
::
|
|
:* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0xd880.d7d8
|
|
"m/0'/1/2'/2"
|
|
0c1LjmJcdPnDHhNTUgrWyhLGnRDKxQjoxAgt
|
|
0xd880.d7d8.9384.8509.a62d.8fb7.4e32.148d.ac68.412f
|
|
::
|
|
0xf47.9245.fb19.a38a.1954.c5c7.c0eb.ab2f.
|
|
9bdf.d96a.1756.3ef2.8a6a.4b1a.2a76.4ef4
|
|
::
|
|
0x2.e844.5082.a72f.29b7.5ca4.8748.a914.df60.
|
|
622a.609c.acfc.e8ed.0e35.8045.6074.1d29
|
|
::
|
|
0xcfb7.1883.f016.76f5.87d0.23cc.53a3.5bc7.
|
|
f88f.724b.1f8c.2892.ac12.75ac.822a.3edd
|
|
::
|
|
%+ weld
|
|
"xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiL"
|
|
"jTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV"
|
|
::
|
|
%+ weld
|
|
"xprvA2JDeKCSNNZky6uBCviVfJSKyQ1mDYahRjijr5idH2WwLsEd4Hsb2Tyh8Rf"
|
|
"QMuPh7f7RtyzTtdrbdqqsunu5Mm3wDvUAKRHSC34sJ7in334"
|
|
==
|
|
::
|
|
:* 16^0x1.0203.0405.0607.0809.0a0b.0c0d.0e0f
|
|
0xd69a.a102
|
|
"m/0'/1/2'/2/1000000000"
|
|
0c1LZiqrop2HGR4qrH1ULZPyBpU6AUP49Uam
|
|
0xd69a.a102.255f.ed74.3782.78c7.8127.01ea.641f.df32
|
|
::
|
|
0x471b.76e3.89e5.28d6.de6d.8168.57e0.12c5.
|
|
4550.51ca.d666.0850.e583.72a6.c3e6.e7c8
|
|
::
|
|
0x2.2a47.1424.da5e.6574.99d1.ff51.cb43.c474.
|
|
81a0.3b1e.77f9.51fe.64ce.c9f5.a48f.7011
|
|
::
|
|
0xc783.e67b.921d.2beb.8f6b.389c.c646.d726.
|
|
3b41.4570.1dad.d216.1548.a8b0.78e6.5e9e
|
|
::
|
|
%+ weld
|
|
"xpub6H1LXWLaKsWFhvm6RVpEL9P4KfRZSW7abD2ttkWP3SSQvnyA8FSVqNTEcYF"
|
|
"gJS2UaFcxupHiYkro49S8yGasTvXEYBVPamhGW6cFJodrTHy"
|
|
::
|
|
%+ weld
|
|
"xprvA41z7zogVVwxVSgdKUHDy1SKmdb533PjDz7J6N6mV6uS3ze1ai8FHa8kmHS"
|
|
"cGpWmj4WggLyQjgPie1rFSruoUihUZREPSL39UNdE3BBDu76"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.9f9c.9996.9390.8d8a.
|
|
8784.817e.7b78.7572.6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0xbd16.bee5
|
|
"m"
|
|
0c1JEoxevbLLG8cVqeoGKQiAwoWbNYSUyYjg
|
|
0xbd16.bee5.3961.a47d.6ad8.88e2.9545.434a.89bd.fe95
|
|
::
|
|
0x4b03.d6fc.3404.55b3.63f5.1020.ad3e.cca4.
|
|
f085.0280.cf43.6c70.c727.923f.6db4.6c3e
|
|
::
|
|
0x3.cbca.a9c9.8c87.7a26.977d.0082.5c95.6a23.
|
|
8e8d.ddfb.d322.cce4.f74b.0b5b.d6ac.e4a7
|
|
::
|
|
0x6049.9f80.1b89.6d83.179a.4374.aeb7.822a.
|
|
aeac.eaa0.db1f.85ee.3e90.4c4d.efbd.9689
|
|
::
|
|
%+ weld
|
|
"xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8E"
|
|
"D9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB"
|
|
::
|
|
%+ weld
|
|
"xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pG"
|
|
"z6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.9f9c.9996.9390.8d8a.
|
|
8784.817e.7b78.7572.6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0x5a61.ff8e
|
|
"m/0"
|
|
0c19EuDJdgfRkwCmRzbzVBHZWQG9QNWhftbZ
|
|
0x5a61.ff8e.b7aa.ca30.10db.97eb.da76.1216.10b7.8096
|
|
::
|
|
0xabe7.4a98.f6c7.eabe.e042.8f53.798f.0ab8.
|
|
aa1b.d378.7399.9041.703c.742f.15ac.7e1e
|
|
::
|
|
0x2.fc9e.5af0.ac8d.9b3c.ecfe.2a88.8e21.17ba.
|
|
3d08.9d85.8588.6c9c.826b.6b22.a98d.12ea
|
|
::
|
|
0xf090.9aff.aa7e.e7ab.e5dd.4e10.0598.d4dc.
|
|
53cd.709d.5a5c.2cac.40e7.412f.232f.7c9c
|
|
::
|
|
%+ weld
|
|
"xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC"
|
|
"6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH"
|
|
::
|
|
%+ weld
|
|
"xprv9vHkqa6EV4sPZHYqZznhT2NPtPCjKuDKGY38FBWLvgaDx45zo9WQRUT3dKY"
|
|
"njwih2yJD9mkrocEZXo1ex8G81dwSM1fwqWpWkeS3v86pgKt"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.
|
|
9f9c.9996.9390.8d8a.8784.817e.7b78.7572.
|
|
6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0xd8ab.4937
|
|
"m/0/2147483647'"
|
|
0c1Lke9bXGhn5VPrBuXgN12uGUphrttUErmk
|
|
0xd8ab.4937.36da.02f1.1ed6.82f8.8339.e720.fb03.79d1
|
|
::
|
|
0x877c.779a.d968.7164.e9c2.f4f0.f4ff.0340.
|
|
8143.9233.0693.ce95.a58f.e18f.d52e.6e93
|
|
::
|
|
0x3.c01e.7425.647b.defa.82b1.2d9b.ad5e.3e68.
|
|
65be.e050.2694.b94c.a58b.666a.bc0a.5c3b
|
|
::
|
|
0xbe17.a268.474a.6bb9.c61e.1d72.0cf6.215e.
|
|
2a88.c540.6c4a.ee7b.3854.7f58.5c9a.37d9
|
|
::
|
|
%+ weld
|
|
"xpub6ASAVgeehLbnwdqV6UKMHVzgqAG8Gr6riv3Fxxpj8ksbH9ebxaEyBLZ85y"
|
|
"SDhKiLDBrQSARLq1uNRts8RuJiHjaDMBU4Zn9h8LZNnBC5y4a"
|
|
::
|
|
%+ weld
|
|
"xprv9wSp6B7kry3Vj9m1zSnLvN3xH8RdsPP1Mh7fAaR7aRLcQMKTR2vidYEeEg"
|
|
"2mUCTAwCd6vnxVrcjfy2kRgVsFawNzmjuHc2YmYRmagcEPdU9"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.
|
|
9f9c.9996.9390.8d8a.8784.817e.7b78.7572.
|
|
6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0x7841.2e3a
|
|
"m/0/2147483647'/1"
|
|
0c1BxrAr2pHpeBheusmd6fHDP2tSLAUa3qsW
|
|
0x7841.2e3a.2296.a40d.e124.307b.6485.bd19.833e.2e34
|
|
::
|
|
0x704a.ddf5.44a0.6e5e.e4be.a370.9846.3c23.
|
|
613d.a320.20d6.0450.6da8.c051.8e1d.a4b7
|
|
::
|
|
0x3.a7d1.d856.deb7.4c50.8e05.031f.9895.dab5.
|
|
4626.251b.3806.e16b.4bd1.2e78.1a7d.f5b9
|
|
::
|
|
0xf366.f48f.1ea9.f2d1.d3fe.958c.95ca.84ea.
|
|
18e4.c4dd.b936.6c33.6c92.7eb2.46fb.38cb
|
|
::
|
|
%+ weld
|
|
"xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvm"
|
|
"dMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon"
|
|
::
|
|
%+ weld
|
|
"xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25U"
|
|
"EPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.
|
|
9f9c.9996.9390.8d8a.8784.817e.7b78.7572.
|
|
6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0x31a5.07b8
|
|
"m/0/2147483647'/1/2147483646'"
|
|
0c15XVotxCAV7sRx1PSCkQNsGw3W9jT9A94R
|
|
0x31a5.07b8.1559.3dfc.51ff.c724.5ae7.e5ae.e304.246e
|
|
::
|
|
0xf1c7.c871.a54a.804a.fe32.8b4c.83a1.c33b.
|
|
8e5f.f48f.5087.273f.04ef.a83b.247d.6a2d
|
|
::
|
|
0x2.d2b3.6900.396c.9282.fa14.6285.6658.2f20.
|
|
6a5d.d0bc.c8d5.e892.6118.06ca.fb03.01f0
|
|
::
|
|
0x6378.0703.0d55.d01f.9a0c.b3a7.8395.15d7.
|
|
96bd.0770.6386.a6ed.df06.cc29.a65a.0e29
|
|
::
|
|
%+ weld
|
|
"xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZR"
|
|
"krgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL"
|
|
::
|
|
%+ weld
|
|
"xprvA1RpRA33e1JQ7ifknakTFpgNXPmW2YvmhqLQYMmrj4xJXXWYpDPS3xz7iA"
|
|
"xn8L39njGVyuoseXzU6rcxFLJ8HFsTjSyQbLYnMpCqE2VbFWc"
|
|
==
|
|
::
|
|
:* 64^0xfffc.f9f6.f3f0.edea.e7e4.e1de.dbd8.d5d2.
|
|
cfcc.c9c6.c3c0.bdba.b7b4.b1ae.aba8.a5a2.
|
|
9f9c.9996.9390.8d8a.8784.817e.7b78.7572.
|
|
6f6c.6966.6360.5d5a.5754.514e.4b48.4542
|
|
::
|
|
0x2613.2fdb
|
|
"m/0/2147483647'/1/2147483646'/2"
|
|
0c14UKfRV9ZPUp6ZC9PLhqbRtxdihW9em3xt
|
|
0x2613.2fdb.e7bf.89cb.c64c.f8da.fa3f.9f88.b866.6220
|
|
::
|
|
0xbb7d.39bd.b83e.cf58.f2fd.82b6.d918.341c.
|
|
bef4.2866.1ef0.1ab9.7c28.a484.2125.ac23
|
|
::
|
|
0x2.4d90.2e1a.2fc7.a875.5ab5.b694.c575.fce7.
|
|
42c4.8d9f.f192.e63d.f519.3e4c.7afe.1f9c
|
|
::
|
|
0x9452.b549.be8c.ea3e.cb7a.84be.c10d.cfd9.
|
|
4afe.4d12.9ebf.d3b3.cb58.eedf.394e.d271
|
|
::
|
|
%+ weld
|
|
"xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbd"
|
|
"pq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt"
|
|
::
|
|
%+ weld
|
|
"xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7n"
|
|
"adnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j"
|
|
== ==
|
|
--
|
|
--
|