package Ġjp . co . sor am its u . bootstrap . dto Ċ Ċ import Ġjp . co . sor am its u . iro ha . java . Transaction Builder Ċ import Ġjp . co . sor am its u . bootstrap . genesis . get I ro ha PublicKey From HexString Ċ import Ġjava . security . KeyPair Ċ import Ġjavax . xml . bind . Datatype Converter Ċ Ċ private Ġinterface ĠD to Factory < out ĠT > Ġ{ ĊĠĠĠ Ġfun Ġget DTO (): ĠT Ċ } Ċ Ċ open Ġclass ĠConf lic atable ( var ĠerrorCode : ĠString ? Ġ= Ġnull , Ġvar Ġmessage : ĠString ? Ġ= Ġnull ) Ċ Ċ data Ġclass ĠBlock chain Cred s ( ĊĠĠĠ Ġval Ġprivate : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġpublic : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġaddress : ĠString ? Ġ= Ġnull Ċ ) Ċ Ċ data Ġclass ĠI ro ha Account Dto ( ĊĠĠĠ Ġval Ġtitle : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġdomain Id : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġcreds : ĠList < jp . co . sor am its u . bootstrap . dto . Blockchain Cred s > Ġ= ĠlistOf () Ċ ) Ċ Ċ data Ġclass ĠI ro ha Account ( val Ġtitle : ĠString , Ġval Ġdomain : ĠString , Ġval Ġkeys : ĠHashSet < KeyPair >) Ġ: ĊĠĠĠ Ġjp . co . sor am its u . bootstrap . dto . Dto Factory < jp . co . sor am its u . bootstrap . dto . I ro ha Account Dto > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget DTO (): Ġjp . co . sor am its u . bootstrap . dto . I ro ha Account Dto Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreds List : ĠArrayList < jp . co . sor am its u . bootstrap . dto . Blockchain Cred s > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġkeys . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreds List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjp . co . sor am its u . bootstrap . dto . Blockchain Cred s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDat atype Converter . print Hex Binary ( it . private . encoded ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDat atype Converter . print Hex Binary ( it . public . encoded ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġjp . co . sor am its u . bootstrap . dto . I ro ha Account Dto ( this . title , Ġdomain , Ġcreds List ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠPeer ( val Ġpeer Key : ĠString Ġ= Ġ"", Ġval Ġhost Port : ĠString Ġ= Ġ" localhost : 1 0 0 0 1 ") Ċ data Ġclass ĠProject ( val Ġproject : ĠString Ġ= Ġ" D 3 ", Ġval Ġenvironment : ĠString Ġ= Ġ" test ") Ċ Ċ data Ġclass ĠGen esis Request ( ĊĠĠĠ Ġval Ġaccounts : ĠList < jp . co . sor am its u . bootstrap . dto . I ro ha Account Dto > Ġ= ĠlistOf (), ĊĠĠĠ Ġval Ġpeers : ĠList < jp . co . sor am its u . bootstrap . dto . Peer > Ġ= ĠlistOf (), ĊĠĠĠ Ġval Ġblock Version : ĠString Ġ= Ġ" 1 ", ĊĠĠĠ Ġval Ġmeta : Ġjp . co . sor am its u . bootstrap . dto . Project Ġ= Ġjp . co . sor am its u . bootstrap . dto . Project () Ċ ) Ċ Ċ data Ġclass ĠGen esis Response ( val Ġblock Data : ĠString ? Ġ= Ġnull ) Ġ: Ġjp . co . sor am its u . bootstrap . dto . Conf lic atable () Ċ Ċ class ĠPass ive Account Prototype ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġdomain Id : ĠString , ĊĠĠĠ Ġroles : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠ Ġdetails : ĠHashMap < String , ĠString > Ġ= ĠHashMap (), ĊĠĠĠ Ġqu orum : Int Ġ= Ġ 1 Ċ ) Ġ: Ġjp . co . sor am its u . bootstrap . dto . Account Prototype ( name , domain Id , roles , details , passive Ġ= Ġtrue , qu orum Ġ= Ġqu orum ) Ġ{ ĊĊĠĠĠ Ġfun Ġcreate Account ( builder : ĠTransaction Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Account ( builder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Account ( ĊĠĠĠĠĠĠĠ Ġbuilder : ĠTransaction Builder , ĊĠĠĠĠĠĠĠ ĠpublicKey : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Account ( builder ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ open Ġclass ĠAccount Prototype ( ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġdomain Id : ĠString , ĊĠĠĠ Ġprivate Ġval Ġroles : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠ Ġprivate Ġval Ġdetails : ĠMap < String , ĠString > Ġ= Ġmap Of (), ĊĠĠĠ Ġval Ġpassive : Boolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġqu orum : Int Ġ= Ġ 1 Ċ ) Ġ{ ĊĠĠĠ Ġval Ġid Ġ= Ġ"$ title @ $ domain Id " ĊĊĠĠĠ Ġopen Ġfun Ġcreate Account ( builder : ĠTransaction Builder , ĠpublicKey : ĠString Ġ= Ġ" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . create Account ( title , Ġdomain Id , Ġget I ro ha PublicKey From HexString ( publicKey )) ĊĠĠĠĠĠĠĠ Ġroles . forEach Ġ{ Ġbuilder . append Role ( id , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġdetails . forEach Ġ{ Ġk , Ġv Ġ-> Ġbuilder . set Account Detail ( id , k , v ) Ġ} ĊĠĠĠ Ġ} Ċ }