package Ġcom . bitcoin . s lp wallet . address Ċ Ċ import Ġcom . bitcoin . s lp wallet . Network Ċ import Ġcom . bitcoin . s lp wallet . bitcoin j . Address Cash Util Ċ Ċ /** Ċ Ġ* Ġ@ author Ġak ib ab u Ċ Ġ*/ Ċ class ĠAddress SL P Ġinternal Ġconstructor ( network : ĠNetwork , Ġversion : ĠInt , Ġbytes : ĠByteArray ) Ġ: ĊĠĠĠ ĠAddress ( network , Ġversion , Ġbytes ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtype : ĠAddress Type Ġ= ĠAddress Type . from Version ( version . to Byte ()) ĊĊĠĠĠ Ġoverride Ġfun Ġto S lp (): ĠAddress SL P Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAddress Cash Util . encode Cash Address ( prefix ( network ), ĠAddress Cash Util . pack Address Data ( bytes , Ġtype . byte )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse ( network : ĠNetwork , Ġaddress : ĠString ): ĠAddress SL P Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġaddress . split (": ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġprefix ( network ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parts . size Ġ!= Ġ 2 Ġ|| Ġparts [ 0 ] Ġ!= Ġprefix ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAddress FormatException (" Not ĠS LP Ġaddress Ġ$ address ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠAddress Cash Util . decode ( prefix , Ġaddress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAddress SL P ( network , Ġbytes . version . toInt (), Ġbytes . bytes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprefix ( network : ĠNetwork ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( network ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork . MAIN Ġ-> Ġ" simple ledger " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork . TEST Ġ-> Ġ" sl ptest " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ