/* Ċ Ġ* ĠCopyright ĠD 3 ĠLed ger , ĠInc . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġcom . d 3 . commons . side chain . iro ha Ċ Ċ import Ġcom . d 3 . commons . side chain . Chain Handler Ċ import Ġcom . d 3 . commons . side chain . Side Chain Event Ċ import Ġcom . d 3 . commons . side chain . iro ha . util . get Withdraw al Commands Ċ import Ġjp . co . sor am its u . iro ha . java . Utils Ċ import Ġmu . K Logging Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġ[ Chain Handler ] Ġto Ġconvert Ġfrom ĠI ro ha Ġprotocol Ġto Ġ[ Side Chain Event . I ro ha Event ] Ċ Ġ* Ġ@ param Ġwithdraw al Account Ġ- Ġwithdraw al Ġaccount Ġin Ġorder Ġto Ġidentify Ġwithdraw al Ġevents Ċ Ġ* Ġ@ param Ġfee Description Ġ- Ġstring Ġto Ġidentify Ġfee Ġtransfers Ċ Ġ*/ Ċ class ĠI ro ha Chain Handler ( val Ġwithdraw al Account : ĠString , Ġval Ġfee Description : ĠString ) Ġ: ĊĠĠĠ ĠChain Handler < iro ha . protocol . Block OuterClass . Block > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParse ĠI ro ha Ġblock Ġfor Ġinteresting Ġcommands ĊĠĠĠĠ Ġ* Ġ@ param Ġblock Ġ- ĠI ro ha Ġblock ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġparse Block ( block : Ġi ro ha . protocol . Block OuterClass . Block ): ĠList < Side Chain Event . I ro ha Event > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" I ro ha Ġchain Ġhandler Ġfor Ġblock Ġ${ block . block V 1 . payload . height }" Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġblock . block V 1 . payload . transactions List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġtx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwithdraw al Commands Ġ= Ġget Withdraw al Commands ( tx , Ġwithdraw al Account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( withdraw al Commands . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠUtils . to Hex Hash ( tx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwithdraw al Commands . map Ġ{ Ġcommand Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransfer Asset Ġ= Ġcommand . transfer Asset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" transfer Ġi ro ha Ġevent Ġ( from : Ġ${ transfer Asset . src AccountId }, Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" to Ġ${ transfer Asset . dest AccountId }, Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" amount : Ġ${ transfer Asset . amount }, Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" asset : Ġ${ transfer Asset . asset Id }) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" description : Ġ${ transfer Asset . description }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tx Hash =$ hash " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide Chain Event . I ro ha Event . Side Chain Transfer . from Proto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransfer Asset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatten () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLogger ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ċ } Ċ