package Ġsb i . states Ċ Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . types . Iss ued TokenType Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . types . TokenType Ċ import Ġnet . cord a . core . contracts . Amount Ċ import Ġnet . cord a . core . contracts . Bel ongsTo Contract Ċ import Ġnet . cord a . core . contracts . Contract State Ċ import Ġnet . cord a . core . crypto . Secure Hash Ċ import Ġnet . cord a . core . identity . Abstract Party Ċ import Ġsb i . contracts . G SC oin Record Contract Ċ Ċ @ Bel ongsTo Contract ( G SC oin Record Contract :: class ) Ċ data Ġclass ĠG SC oin ( ĊĠĠĠĠĠĠĠ Ġval Ġamount : ĠAmount < Iss ued TokenType >, ĊĠĠĠĠĠĠĠ Ġval Ġholder : ĠAbstract Party , ĊĠĠĠĠĠĠĠ Ġval Ġtoken Type Jar Hash : ĠSecure Hash ?, ĊĠĠĠĠĠĠĠ Ġval Ġtrade Number : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġtrade DateTime : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmember Shop Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġforce Flag : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠInt , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġparticipants : ĠList < Abstract Party > Ċ ): ĠTokenType ( amount . token . token Identifier , Ġamount . token . fraction Digits ), ĠContract State { Ċ Ċ // ĠĠĠ Ġconstructor ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġamount : ĠAmount < Iss ued TokenType >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠAbstract Party , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtrade Number : ĠString , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtrade DateTime : ĠString , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmember Shop Name : ĠString , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġparticipants : ĠList < Abstract Party >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠInt Ċ // ĠĠĠ Ġ): Ġthis ( amount , Ġholder , Ġnull , Ġtrade Number , Ġtrade DateTime , member Shop Name , Ġfalse , Ġtype , Ġparticipants ) ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount : ĠAmount < Iss ued TokenType >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠAbstract Party , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrade Number : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrade DateTime : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmember Shop Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforce Flag : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipants : ĠList < Abstract Party >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠInt ĊĠĠĠ Ġ): Ġthis ( amount , Ġholder , Ġnull , Ġtrade Number , Ġtrade DateTime , member Shop Name , Ġforce Flag , Ġtype , Ġparticipants ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! super . equals ( other )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠG SC oin ĊĊĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ!= Ġother . amount ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġ!= Ġother . holder ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( token Type Jar Hash Ġ!= Ġother . token Type Jar Hash ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( trade Number Ġ!= Ġother . trade Number ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( trade DateTime Ġ!= Ġother . trade DateTime ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( member Shop Name Ġ!= Ġother . member Shop Name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( force Flag Ġ!= Ġother . force Flag ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsuper . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġamount . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġholder . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( token Type Jar Hash ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtrade Number . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtrade DateTime . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġmember Shop Name . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġforce Flag . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊ Ċ }