package Ġorg . ke thereum . model Ċ Ċ import Ġorg . ke thereum . DEFAULT _ G AS _ LIMIT Ċ import Ġorg . ke thereum . DEFAULT _ G AS _ PRICE Ċ import Ġjava . math . BigInteger Ċ Ċ data Ġclass ĠTransaction ( ĊĠĠĠĠĠĠĠ Ġvar Ġchain : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvar Ġcreation Epoch Second : ĠLong ?, ĊĠĠĠĠĠĠĠ Ġvar Ġfrom : ĠAddress ?, ĊĠĠĠĠĠĠĠ Ġvar Ġgas Limit : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvar Ġgas Price : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvar Ġinput : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġvar Ġnonce : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvar Ġto : ĠAddress ?, ĊĠĠĠĠĠĠĠ Ġvar Ġtx Hash : ĠString ?, ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvar Ġblock Hash : ĠString ?, ĊĠĠĠĠĠĠĠ Ġvar Ġblock Number : ĠBigInteger ? Ċ ) Ġ{ ĊĠĠĠ Ġconstructor () Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreation Epoch Second Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgas Limit Ġ= ĠDEFAULT _ G AS _ LIMIT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgas Price Ġ= ĠDEFAULT _ G AS _ PRICE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= ĠByteArray ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx Hash Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Hash Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Number Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠBigInteger . ZERO ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠTransaction ĊĊĠĠĠĠĠĠĠ Ġif Ġ( chain Ġ!= Ġother . chain ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( creation Epoch Second Ġ!= Ġother . creation Epoch Second ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( from Ġ!= Ġother . from ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( gas Limit Ġ!= Ġother . gas Limit ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( gas Price Ġ!= Ġother . gas Price ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! input . content Equals ( other . input )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( nonce Ġ!= Ġother . nonce ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( to Ġ!= Ġother . to ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( tx Hash Ġ!= Ġother . tx Hash ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġother . value ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġchain ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( creation Epoch Second ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( from ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( gas Limit ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( gas Price ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġinput . content HashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( nonce ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( to ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( tx Hash ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( value ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġwe Ġcannot Ġuse Ġdefault Ġvalues Ġin Ġthe Ġdata Ġclass Ġwhen Ġwe Ġwant Ġto Ġuse Ġit Ġwith Ġroom Ċ fun Ġcreate Transaction With Defaults ( ĊĠĠĠĠĠĠĠ Ġchain : ĠChain Id ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġcreation Epoch Second : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġfrom : ĠAddress , ĊĠĠĠĠĠĠĠ Ġgas Limit : ĠBigInteger Ġ= ĠDEFAULT _ G AS _ LIMIT , ĊĠĠĠĠĠĠĠ Ġgas Price : ĠBigInteger Ġ= ĠDEFAULT _ G AS _ PRICE , ĊĠĠĠĠĠĠĠ Ġinput : ĠByteArray Ġ= ĠByteArray ( 0 ), ĊĠĠĠĠĠĠĠ Ġnonce : ĠBigInteger ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġto : ĠAddress ?, ĊĠĠĠĠĠĠĠ Ġtx Hash : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvalue : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġblock Hash : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġblock Number : ĠBigInteger ? Ġ= Ġnull Ċ ) Ġ= ĠTransaction ( chain ?. value , Ġcreation Epoch Second , Ġfrom , Ġgas Limit , Ġgas Price , Ġinput , Ġnonce , Ġto , Ġtx Hash , Ġvalue , block Hash , Ġblock Number ) ĊĊ Ċ fun Ġcreate Empty Transaction () Ġ= ĠTransaction ( null , Ġnull , Ġnull , Ġnull , Ġnull , ĠByteArray ( 0 ), Ġnull , Ġnull , Ġnull , Ġnull , Ġnull , Ġnull ) Ċ