package Ġcom . example . state Ċ Ċ import Ġcom . example . contract . Tran che Contract Ċ import Ġcom . example . model . Tran che Ċ import Ġcom . example . schema . Tran che Schema V 1 Ċ import Ġnet . cord a . core . contracts . Amount Ċ import Ġnet . cord a . core . contracts . Command And State Ċ import Ġnet . cord a . core . contracts . F ung ible Asset Ċ import Ġnet . cord a . core . contracts . Iss ued Ċ import Ġnet . cord a . core . identity . Abstract Party Ċ import Ġnet . cord a . core . identity . Party Ċ import Ġnet . cord a . core . schemas . Mapped Schema Ċ import Ġnet . cord a . core . schemas . Persistent State Ċ import Ġnet . cord a . core . schemas . Queryable State Ċ import Ġjava . util .* Ċ Ċ data Ġclass ĠTran che State ( val Ġtran che : ĠTran che , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Amount : ĠAmount < Iss ued < Currency >>, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġagent : ĠParty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġamount : ĠAmount < Iss ued < Currency >>, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġowner : ĠAbstract Party Ċ ) Ġ: ĠF ung ible Asset < Currency >, ĠQuery able State Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġexit Keys Ġ= Ġset Of ( owner . own ing Key , Ġamount . token . issuer . party . own ing Key ) ĊĊĠĠĠ Ġ/** ĠThe Ġpublic Ġkeys Ġof Ġthe Ġinvolved Ġparties . Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġparticipants : ĠList < Abstract Party > Ġget () Ġ= ĠlistOf ( owner ) ĊĊĠĠĠ Ġoverride Ġfun Ġwith New Owner And Amount ( new Amount : ĠAmount < Iss ued < Currency >>, Ġnew Owner : ĠAbstract Party ): ĠF ung ible Asset < Currency > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġcopy ( amount Ġ= Ġamount . copy ( new Amount . quantity ), Ġowner Ġ= Ġnew Owner ) ĊĊĠĠĠ Ġoverride Ġfun Ġwith New Owner ( new Owner : ĠAbstract Party ) Ġ= ĠCommand And State ( Tran che Contract . Commands . Move (), Ġcopy ( owner Ġ= Ġnew Owner )) ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Mapped Object ( schema : ĠM apped Schema ): ĠPersistent State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTran che Schema V 1 Ġ-> ĠTran che Schema V 1 . Persistent Tran che ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreference Number Ġ= Ġthis . tran che . reference Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborrow er Ġ= Ġthis . tran che . borrow er , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterest Rate Ġ= Ġthis . tran che . interest Rate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexchange Rate Ġ= Ġthis . tran che . exchange Rate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġir Fix ing Date Ġ= Ġthis . tran che . ir Fix ing Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġer Fix ing Date Ġ= Ġthis . tran che . er Fix ing Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartDate Ġ= Ġthis . tran che . startDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendDate Ġ= Ġthis . tran che . endDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx Currency Ġ= Ġthis . tran che . tx Currency ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Un re cogn ised Ġschema Ġ$ schema ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupported Schemas (): ĠIterable < Mapped Schema > Ġ= ĠlistOf ( Tran che Schema V 1 ) Ċ } Ċ