// ĠVer i Block ĠBlock chain ĠProject Ċ // ĠCopyright Ġ 2 0 1 7 - 2 0 1 8 ĠVer i Block , ĠInc Ċ // ĠCopyright Ġ 2 0 1 8 - 2 0 2 1 ĠX en ios ĠSE ZC Ċ // ĠAll Ġrights Ġreserved . Ċ // Ġhttps :// www . ver ib lock . org Ċ // ĠDistributed Ġunder Ġthe ĠMIT Ġsoftware Ġlicense , Ġsee Ġthe Ġaccompanying Ċ // Ġfile ĠLICENSE Ġor Ġhttp :// www . opensource . org / licenses / mit - license . php . Ċ package Ġorg . ver ib lock . sdk . models Ċ Ċ import Ġorg . ver ib lock . core . crypto . Sha 2 5 6 Hash Ċ import Ġorg . ver ib lock . core . utilities . Preconditions Ċ import Ġorg . ver ib lock . sdk . services . Serialize Deserialize Service . getId Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . Arrays Ċ Ċ class ĠVer i Block Pop Transaction ( ĊĠĠĠ Ġval Ġaddress : ĠAddress , ĊĠĠĠ Ġval Ġpublished Block : ĠVer i Block Block , ĊĠĠĠ Ġval Ġbitcoin Transaction : ĠBitcoin Transaction , ĊĠĠĠ Ġval Ġmer kle Path : ĠMer kle Path , ĊĠĠĠ Ġval Ġblock Of Proof : ĠBitcoin Block , ĊĠĠĠ Ġval Ġblock Of Proof Context : ĠList < Bitcoin Block >, ĊĠĠĠ Ġval Ġsignature : ĠByteArray , ĊĠĠĠ Ġval ĠpublicKey : ĠByteArray , ĊĠĠĠ Ġval Ġnetwork Byte : ĠByte ? Ċ ) Ġ{ ĊĠĠĠ Ġval Ġid : ĠSh a 2 5 6 Hash Ġ= ĠgetId ( this ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( signature . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Signature Ġcannot Ġbe Ġempty " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck ( publicKey . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Public Ġkey Ġcannot Ġbe Ġempty " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Blocks (): ĠList < Bitcoin Block > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġblock Of Proof Context Ġ+ Ġblock Of Proof ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull Ġ|| Ġjava Class Ġ!= Ġother . java Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġother Ġas ĠVer i Block Pop Transaction ĊĠĠĠĠĠĠĠ Ġreturn ĠgetId ( this ) Ġ== ĠgetId ( obj ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpublicKey . content Equals ( obj . publicKey ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . content Equals ( obj . signature ) ĊĠĠĠ Ġ} Ċ } Ċ