package Ġio . open future . chain . core . model . entity . block Ċ Ċ import Ġio . open future . chain . core . model . entity . Receipt Ċ import Ġio . open future . chain . core . model . entity . block . payload . Main Block Payload Ċ import Ġio . open future . chain . core . model . entity . state . Account State Ċ import Ġio . open future . chain . core . model . entity . state . Delegate State Ċ import Ġio . open future . chain . core . model . entity . transaction . confirmed . Delegate Transaction Ċ import Ġio . open future . chain . core . model . entity . transaction . confirmed . Reward Transaction Ċ import Ġio . open future . chain . core . model . entity . transaction . confirmed . Transfer Transaction Ċ import Ġio . open future . chain . core . model . entity . transaction . confirmed . Vote Transaction Ċ import Ġio . open future . chain . network . message . core . Base Main Block Message Ċ import Ġio . open future . chain . network . message . sync . Main Block Message Ċ import Ġjavax . persistence . Embedded Ċ import Ġjavax . persistence . Entity Ċ import Ġjavax . persistence . Table Ċ Ċ @ Entity Ċ @ Table ( name Ġ= Ġ" main _ blocks ") Ċ class ĠMain Block ( ĊĠĠĠ Ġtimestamp : ĠLong , ĊĠĠĠ Ġheight : ĠLong , ĊĠĠĠ Ġprevious Hash : ĠString , ĊĠĠĠ Ġhash : ĠString , ĊĠĠĠ Ġsignature : ĠString , ĊĠĠĠ ĠpublicKey : ĠString , ĊĊĠĠĠ Ġ@ Embedded ĊĠĠĠ Ġprivate Ġvar Ġpayload : ĠMain Block Payload Ċ Ċ ) Ġ: ĠBlock ( timestamp , Ġheight , Ġprevious Hash , Ġhash , Ġsignature , ĠpublicKey ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġof ( message : ĠBase Main Block Message ): ĠMain Block Ġ= ĠMain Block ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . previous Hash , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . hash , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . signature , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . publicKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Block Payload ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . transaction Mer kle Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . state Mer kle Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . receipt Mer kle Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . reward Transactions . map Ġ{ ĠRew ard Transaction . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . vote Transactions . map Ġ{ ĠV ote Transaction . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . delegate Transactions . map Ġ{ ĠDelegate Transaction . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . transfer Transactions . map Ġ{ ĠTransfer Transaction . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . delegate States . map Ġ{ ĠDelegate State . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . account States . map Ġ{ ĠAccount State . of ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . receipt s . map Ġ{ ĠRe ceipt . of ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġto Message (): ĠMain Block Message Ġ= ĠMain Block Message ( ĊĠĠĠĠĠĠĠ Ġheight , ĊĠĠĠĠĠĠĠ Ġprevious Hash , ĊĠĠĠĠĠĠĠ Ġtimestamp , ĊĠĠĠĠĠĠĠ Ġhash , ĊĠĠĠĠĠĠĠ Ġsignature , ĊĠĠĠĠĠĠĠ ĠpublicKey , ĊĠĠĠĠĠĠĠ Ġpayload . transaction Mer kle Hash , ĊĠĠĠĠĠĠĠ Ġpayload . state Mer kle Hash , ĊĠĠĠĠĠĠĠ Ġpayload . receipt Mer kle Hash , ĊĠĠĠĠĠĠĠ Ġpayload . reward Transactions . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . vote Transactions . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . delegate Transactions . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . transfer Transactions . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . delegate States . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . account States . map Ġ{ Ġit . to Message () Ġ}, ĊĠĠĠĠĠĠĠ Ġpayload . receipt s . map Ġ{ Ġit . to Message () Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Payload (): ĠMain Block Payload Ġ= Ġpayload Ċ Ċ }