package Ġfund . cyber . api . bitcoin . handlers Ċ Ċ import Ġfund . cyber . api . bitcoin . dto . Contract Summary Dto Ċ import Ġfund . cyber . api . common . Bi Repository Item RequestHandler Ċ import Ġfund . cyber . api . common . Single Repository Item RequestHandler Ċ import Ġfund . cyber . api . common . Triple Repository Item RequestHandler Ċ import Ġfund . cyber . api . common . as Server Response Ċ import Ġfund . cyber . api . common . to Page able Response Ċ import Ġfund . cyber . cassandra . bitcoin . repository . Bitcoin Contract Summary Repository Ċ import Ġfund . cyber . cassandra . bitcoin . repository . Bitcoin Contract Tx Repository Ċ import Ġfund . cyber . cassandra . bitcoin . repository . Bitcoin Tx Repository Ċ import Ġfund . cyber . cassandra . bitcoin . repository . Page able Bitcoin Contract M ined Block Repository Ċ import Ġfund . cyber . cassandra . bitcoin . repository . Page able Bitcoin Contract Tx Repository Ċ import Ġfund . cyber . common . to Search Hash Format Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġorg . springframework . context . annotation . Dep ends On Ċ Ċ @ Configuration Ċ @ Dep ends On (" bitcoin - search - repositories ") Ċ class ĠBitcoin Contract Handlers Configuration Ġ{ ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġbitcoin Contract Item Handler () Ġ= ĠTrip le Repository Item RequestHandler ( ĊĠĠĠĠĠĠĠ Ġ"/ contract /{ hash }", ĊĠĠĠĠĠĠĠ ĠBitcoin Contract Summary Repository :: class . java , ĊĠĠĠĠĠĠĠ ĠBitcoin Contract Tx Repository :: class . java , ĊĠĠĠĠĠĠĠ ĠBitcoin Tx Repository :: class . java ĊĠĠĠ Ġ) Ġ{ Ġrequest , Ġcontract Summary Repository , Ġcontract Tx Repository , Ġtx Repository Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġcontract Hash Ġ= Ġrequest . path Variable (" hash "). to Search Hash Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġcontract Ġ= Ġcontract Summary Repository . findById ( contract Hash ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontract . flatMap Ġ{ Ġcontract Summary Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Tx Repository . findAll By Contract Hash And Block Time ( contract Summary . hash , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġtx Preview Ġ-> Ġtx Repository . findById ( tx Preview . hash ) Ġ}. collect List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġtx es Ġ-> ĠContract Summary Dto ( contract Summary , Ġtx es ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . as Server Response () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġbitcoin Contract Tx es Item Handler () Ġ= ĠBi Repository Item RequestHandler ( ĊĠĠĠĠĠĠĠ Ġ"/ contract /{ hash }/ transactions ", ĊĠĠĠĠĠĠĠ ĠPage able Bitcoin Contract Tx Repository :: class . java , ĊĠĠĠĠĠĠĠ ĠBitcoin Tx Repository :: class . java ĊĠĠĠ Ġ) Ġ{ Ġrequest , Ġcontract Tx Repository , Ġtx Repository Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġrequest . path Variable (" hash "). to Search Hash Format () ĊĊĠĠĠĠĠĠĠ Ġrequest . to Page able Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Page Ġ= Ġ{ Ġpage able Ġ-> Ġcontract Tx Repository . findAll By Contract Hash ( hash , Ġpage able ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Page Ġ= Ġ{ Ġpage Flux Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Flux . flatMap Ġ{ Ġcontract Tx Ġ-> Ġtx Repository . findById ( contract Tx . hash ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sort Ġ{ Ġa , Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a . is M emp ool Tx () Ġ&& Ġb . is M emp ool Tx ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ sort Ġb . first Seen Time . compareTo ( a . first Seen Time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a . is M emp ool Tx () Ġ|| Ġb . is M emp ool Tx ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ sort Ġif Ġ( a . is M emp ool Tx ()) Ġ- 1 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ sort Ġb . block Number . compareTo ( a . block Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġbitcoin Contract Blocks Item Handler () Ġ= ĠSingle Repository Item RequestHandler ( ĊĠĠĠĠĠĠĠ Ġ"/ contract /{ hash }/ blocks ", ĊĠĠĠĠĠĠĠ ĠPage able Bitcoin Contract M ined Block Repository :: class . java ĊĠĠĠ Ġ) Ġ{ Ġrequest , Ġrepository Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġrequest . path Variable (" hash "). to Search Hash Format () ĊĠĠĠĠĠĠĠ Ġrequest . to Page able Response Ġ{ Ġpage able Ġ-> Ġrepository . findAll By Miner Contract Hash ( hash , Ġpage able ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ