package Ġio . horizontal systems . bitcoin core . transactions . builder Ċ Ċ import Ġio . horizontal systems . bitcoin core . core . I Plugin Data Ċ import Ġio . horizontal systems . bitcoin core . core . I Recipient Setter Ċ import Ġio . horizontal systems . bitcoin core . models . Transaction Data Sort Type Ċ import Ġio . horizontal systems . bitcoin core . storage . Full Transaction Ċ import Ġio . horizontal systems . bitcoin core . storage . Un spent Output Ċ Ċ class ĠTransaction Builder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrecipient Setter : ĠI Recipient Setter , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġoutput Setter : ĠOutput Setter , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinput Setter : ĠInput Setter , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsigner : ĠTransaction Signer , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlock Time Setter : ĠLock Time Setter Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġbuild Transaction ( to Address : ĠString , Ġvalue : ĠLong , Ġfee Rate : ĠInt , Ġsender Pay : ĠBoolean , Ġsort Type : ĠTransaction Data Sort Type , Ġplugin Data : ĠMap < Byte , ĠI Plugin Data >): ĠFull Transaction Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmutable Transaction Ġ= ĠMutable Transaction () ĊĊĠĠĠĠĠĠĠ Ġrecipient Setter . set Recipient ( mutable Transaction , Ġto Address , Ġvalue , Ġplugin Data , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinput Setter . set Inputs ( mutable Transaction , Ġfee Rate , Ġsender Pay , Ġsort Type ) ĊĠĠĠĠĠĠĠ Ġlock Time Setter . set Lock Time ( mutable Transaction ) ĊĊĠĠĠĠĠĠĠ Ġoutput Setter . set Outputs ( mutable Transaction , Ġsort Type ) ĊĠĠĠĠĠĠĠ Ġsigner . sign ( mutable Transaction ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmutable Transaction . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild Transaction ( un spent Output : ĠUn spent Output , Ġto Address : ĠString , Ġfee Rate : ĠInt , Ġsort Type : ĠTransaction Data Sort Type ): ĠFull Transaction Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmutable Transaction Ġ= ĠMutable Transaction ( false ) ĊĊĠĠĠĠĠĠĠ Ġrecipient Setter . set Recipient ( mutable Transaction , Ġto Address , Ġun spent Output . output . value , Ġmap Of (), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinput Setter . set Inputs ( mutable Transaction , Ġun spent Output , Ġfee Rate ) ĊĠĠĠĠĠĠĠ Ġlock Time Setter . set Lock Time ( mutable Transaction ) ĊĊĠĠĠĠĠĠĠ Ġoutput Setter . set Outputs ( mutable Transaction , Ġsort Type ) ĊĠĠĠĠĠĠĠ Ġsigner . sign ( mutable Transaction ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmutable Transaction . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠBuilder Exception Ġ: ĠException () Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠF ee More Than Value Ġ: ĠBuilder Exception () ĊĠĠĠĠĠĠĠ Ġclass ĠNot Supported Script Type Ġ: ĠBuilder Exception () ĊĠĠĠ Ġ} Ċ } Ċ