package Ġbitcoin . wallet . kit . hd wallet Ċ Ċ import Ġbitcoin . wallet . kit . core . hex StringTo ByteArray Ċ import Ġbitcoin . wallet . kit . core . to HexString Ċ import Ġbitcoin . wallet . kit . network . Main Net Ċ import Ġbitcoin . wallet . kit . network . Test Net Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ Ċ class ĠAddress Test Ġ{ ĊĠĠĠ Ġval Ġmain Net Ġ= ĠMain Net () ĊĠĠĠ Ġval Ġtest Net Ġ= ĠTest Net () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhash : ĠByteArray ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaddr : ĠAddress ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 pk h _ main net () Ġ{ ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" e 3 4 cce 7 0 c 8 6 3 7 3 2 7 3 ef cc 5 4 ce 7 d 2 a 4 9 1 bb 4 a 0 e 8 4 ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . P 2 PK H , Ġhash , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 Mir Q 9 b wy Qc GV JP w KU gap u 5 ou K 2 E 2 Ey 4 g X ", Ġaddr . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 pk h _ main net _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 Mir Q 9 b wy Qc GV JP w KU gap u 5 ou K 2 E 2 Ey 4 g X " ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( text , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . P 2 PK H , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" e 3 4 cce 7 0 c 8 6 3 7 3 2 7 3 ef cc 5 4 ce 7 d 2 a 4 9 1 bb 4 a 0 e 8 4 ", Ġaddr . hash . to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 pk h _ test net () Ġ{ ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 7 8 b 3 1 6 a 0 8 6 4 7 d 5 b 7 7 2 8 3 e 5 1 2 d 3 6 0 3 f 1 f 1 c 8 de 6 8 f ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . P 2 PK H , Ġhash , Ġtest Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . P 2 PK H , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" mr X 9 v MR YL f Vy 1 Bn Z bc 5 g Z ju ya q H 3 ZW 2 Z Hz ", Ġaddr . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 sh _ main net () Ġ{ ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" f 8 1 5 b 0 3 6 d 9 bbb ce 5 e 9 f 2 a 0 0 abd 1 bf 3 dc 9 1 e 9 5 5 1 0 ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . P 2 SH , Ġhash , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . P 2 SH , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 3 Q J mV 3 q fv L 9 Su Yo 3 4 Y ih Af 3 s RC W 3 q S iny C ", Ġaddr . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 sh _ main net _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 3 Q J mV 3 q fv L 9 Su Yo 3 4 Y ih Af 3 s RC W 3 q S iny C " ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( text , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . P 2 SH , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" f 8 1 5 b 0 3 6 d 9 bbb ce 5 e 9 f 2 a 0 0 abd 1 bf 3 dc 9 1 e 9 5 5 1 0 ", Ġaddr . hash . to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 sh _ test net () Ġ{ ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" c 5 7 9 3 4 2 c 2 c 4 c 9 2 2 0 2 0 5 e 2 cdc 2 8 5 6 1 7 0 4 0 c 9 2 4 a 0 a ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . P 2 SH , Ġhash , Ġtest Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 NB FN JT kt Na 7 GZ us Gb Db G KR ZT xd K 9 V Ve z 3 n ", Ġaddr . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 w pk h () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" bc 1 qw 5 0 8 d 6 q ej x td g 4 y 5 r 3 z ar vary 0 c 5 xw 7 kv 8 f 3 t 4 " ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 7 5 1 e 7 6 e 8 1 9 9 1 9 6 d 4 5 4 9 4 1 c 4 5 d 1 b 3 a 3 2 3 f 1 4 3 3 bd 6 ". hex StringTo ByteArray () ĊĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . W ITNESS , Ġhash , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . W ITNESS , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( text , Ġaddr . toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hash . to HexString (), Ġaddr . program ?. to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 w pk h _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" bc 1 qw 5 0 8 d 6 q ej x td g 4 y 5 r 3 z ar vary 0 c 5 xw 7 kv 8 f 3 t 4 " ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 7 5 1 e 7 6 e 8 1 9 9 1 9 6 d 4 5 4 9 4 1 c 4 5 d 1 b 3 a 3 2 3 f 1 4 3 3 bd 6 ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( text , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . W ITNESS , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( text , Ġaddr . toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hash . to HexString (), Ġaddr . program ?. to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 w sh () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" bc 1 q rp 3 3 g 0 q 5 c 5 tx sp 9 ary s rx 4 k 6 z dk fs 4 n ce 4 xj 0 gd cc ce fv py s xf 3 q ccf mv 3 " ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 1 8 6 3 1 4 3 c 1 4 c 5 1 6 6 8 0 4 bd 1 9 2 0 3 3 5 6 da 1 3 6 c 9 8 5 6 7 8 cd 4 d 2 7 a 1 b 8 c 6 3 2 9 6 0 4 9 0 3 2 6 2 ". hex StringTo ByteArray () ĊĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( Address . Type . W ITNESS , Ġhash , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . W ITNESS , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( text , Ġaddr . toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hash . to HexString (), Ġaddr . program ?. to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 w sh _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" bc 1 q rp 3 3 g 0 q 5 c 5 tx sp 9 ary s rx 4 k 6 z dk fs 4 n ce 4 xj 0 gd cc ce fv py s xf 3 q ccf mv 3 " ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 1 8 6 3 1 4 3 c 1 4 c 5 1 6 6 8 0 4 bd 1 9 2 0 3 3 5 6 da 1 3 6 c 9 8 5 6 7 8 cd 4 d 2 7 a 1 b 8 c 6 3 2 9 6 0 4 9 0 3 2 6 2 ". hex StringTo ByteArray () ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress ( text , Ġmain Net ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Address . Type . W ITNESS , Ġaddr . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( text , Ġaddr . toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hash . to HexString (), Ġaddr . program ?. to HexString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 pk h _ version () Ġ{ ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" 1 7 k ze h 4 N 8 g 4 9 GF vd Dz Sf 8 P ja Pf yo D 1 M nd L ", Ġmain Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( main Net . address Version , Ġaddr . version ) ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" n 4 e A 2 nb Y q E rp 7 H 6 j eb ch x AN 5 9 Dm N pk sex v ", Ġtest Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( test Net . address Version , Ġaddr . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 sh _ version () Ġ{ ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" 3 5 b 9 vs y H 1 Ko FT 5 a 5 K tr K us aC c PL ki So 1 t U ", Ġmain Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( main Net . address Version , Ġaddr . version ) ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" 2 Mu VS x tf iv PK Je 9 3 EC 1 Tb 9 Uh Jt Gh so WE HC e ", Ġtest Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( test Net . address Version , Ġaddr . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġp 2 w sh _ version () Ġ{ ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" bc 1 q rp 3 3 g 0 q 5 c 5 tx sp 9 ary s rx 4 k 6 z dk fs 4 n ce 4 xj 0 gd cc ce fv py s xf 3 q ccf mv 3 ", Ġmain Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġaddr . version ) ĊĠĠĠĠĠĠĠ Ġaddr Ġ= ĠAddress (" tb 1 q rp 3 3 g 0 q 5 c 5 tx sp 9 ary s rx 4 k 6 z dk fs 4 n ce 4 xj 0 gd cc ce fv py s xf 3 q 0 sl 5 k 7 ", Ġtest Net ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġaddr . version ) ĊĠĠĠ Ġ} Ċ } Ċ