/* Ċ Ġ* ĠCopyright ĠD 3 ĠLed ger , ĠInc . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġcom . d 3 . btc . provider Ċ Ċ import Ġcom . d 3 . btc . model . Address Info Ċ import Ġcom . d 3 . btc . model . Btc Address Ċ import Ġcom . d 3 . commons . side chain . iro ha . util . I ro ha Query Helper Ċ import Ġcom . github . kit tin un f . result . Result Ċ import Ġcom . github . kit tin un f . result . map Ċ import Ġjava . util .* Ċ Ċ /* ĊĠĠĠ ĠClass Ġthat Ġis Ġused Ġto Ġget Ġchange Ġaddress Ċ Ġ*/ Ċ open Ġclass ĠB tc Change Address Provider ( ĊĠĠĠ Ġprivate Ġval Ġquery Helper : ĠI ro ha Query Helper , ĊĠĠĠ Ġprivate Ġval Ġm st Registration Account : ĠString , ĊĠĠĠ Ġprivate Ġval Ġchange Addresses Storage Account : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġchange Ġaddresses ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetAll Change Addresses (): ĠResult < List < Btc Address >, ĠException > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġquery Helper . get Account Details ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Addresses Storage Account , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm st Registration Account ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġdetails Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMap Ġdetails Ġinto ĠB tc Address Ġcollection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails . entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB tc Address ( entry . key , ĠAddress Info . fromJson ( entry . value ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġgiven Ġaddress Ġinfo ĊĠĠĠĠ Ġ* Ġ@ param Ġbtc Address Ġ- ĠBitcoin Ġaddress ĊĠĠĠĠ Ġ* Ġ@ return Ġaddress Ġinfo Ġor Ġnull Ġif Ġthere Ġis Ġno Ġsuch Ġan Ġaddress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Address Info ( btc Address : ĠString ): ĠResult < Optional < Address Info >, ĠException > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġquery Helper . get Account Details First ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Addresses Storage Account , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm st Registration Account ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġkey , Ġ_ Ġ-> Ġkey Ġ== Ġbtc Address Ġ}. map Ġ{ Ġdetail Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( detail . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Info Json Ġ= Ġdetail . get (). value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOptional . of ( Address Info . fromJson ( address Info Json )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOptional . empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġchange Ġaddresses Ġthat Ġwere Ġgenerated Ġbefore Ġgiven Ġtime ĊĠĠĠĠ Ġ* Ġ@ param Ġgenerated Before Ġ- Ġonly Ġaddresses Ġthat Ġwere Ġgenerated Ġbefore Ġthis Ġvalue Ġwill Ġbe Ġreturned ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetAll Change Addresses ( generated Before : ĠLong ): ĠResult < List < Btc Address >, ĠException > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetAll Change Addresses (). map Ġ{ Ġchange Addresses Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Addresses ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġchange Address Ġ-> Ġchange Address . info . generation Time !! Ġ<= Ġgenerated Before Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ