package Ġio . space . dash kit . tasks Ċ Ċ import Ġio . space . bitcoin core . models . Inventory Item Ċ import Ġio . space . bitcoin core . network . messages . GetData Message Ċ import Ġio . space . bitcoin core . network . messages . I Message Ċ import Ġio . space . bitcoin core . network . peer . task . Peer Task Ċ import Ġio . space . bitcoin core . storage . Full Transaction Ċ import Ġio . space . dash kit . Inventory Type Ċ import Ġio . space . dash kit . messages . Transaction Lock Message Ċ Ċ class ĠRequest Transaction Lock Requests Task ( hashes : ĠList < ByteArray >) Ġ: ĠPeer Task () Ġ{ ĊĊĠĠĠ Ġval Ġhashes Ġ= Ġhashes . to Mutable List () ĊĠĠĠ Ġvar Ġtransactions Ġ= Ġmutable ListOf < Full Transaction >() ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġhashes . map Ġ{ Ġhash Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInventory Item ( Inventory Type . MSG _ TX LOCK _ REQUEST , Ġhash ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrequest er ?. send ( GetData Message ( items )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Message ( message : ĠI Message ) Ġ= Ġwhen Ġ( message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠTransaction Lock Message Ġ-> Ġhandle Transaction Lock Request ( message . transaction ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Transaction Lock Request ( transaction : ĠFull Transaction ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġhashes . first OrNull Ġ{ Ġit . content Equals ( transaction . header . hash ) Ġ} Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġhashes . remove ( hash ) ĊĠĠĠĠĠĠĠ Ġtransactions . add ( transaction ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( hashes . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Task Completed ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ