package Ġcom . trade . flows Ċ Ċ import Ġco . parallel universe . fib ers . Suspend able Ċ import Ġcom . trade . states . Trade State Ċ import Ġnet . cord a . core . flows .* Ċ import Ġnet . cord a . core . transactions . Signed Transaction Ċ Ċ // Ġ***************** * Ċ // Ġ* ĠRes pon der Ġflow Ġ* Ċ // Ġ***************** * Ċ @ Initi ated By ( Trade Decision Init iator :: class ) Ċ class ĠTrade Decision Responder ( ĊĠĠĠ Ġval Ġcounter party Session : ĠFlow Session Ċ ) Ġ: ĠFlow Logic < Signed Transaction >() Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġwhere Ġyou Ġfill Ġout Ġyour Ġbusiness Ġlogic . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suspend able ĊĠĠĠ Ġoverride Ġfun Ġcall (): ĠSigned Transaction Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprintln (" Responder ĠFlow ĠCalled ") ĊĠĠĠĠĠĠĠ Ġval Ġsign Transaction Flow : ĠSign Transaction Flow Ġ= Ġobject Ġ: ĠSign Transaction Flow ( counter party Session ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( Flow Exception :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Transaction ( st x : ĠSigned Transaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġst x . tx . outputs . iterator (). next (). data Ġas ĠTrade State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" accept Ġtransaction Ġwith Ġlinear Ġ${ state . linear Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= Ġsub Flow ( sign Transaction Flow ) ĊĊĠĠĠĠĠĠĠ Ġ// The Ġreceiving Ġcounter part Ġto ĠFinal ity Flow . ĊĠĠĠĠĠĠĠ Ġ// All Ġparties Ġwho Ġare Ġreceiving Ġa Ġfinal ised Ġtransaction Ġfrom Ġa Ġsender Ġflow Ġmust Ġsub call Ġthis Ġflow Ġin Ġtheir Ġown Ġflows . ĊĠĠĠĠĠĠĠ Ġ// It 's Ġtypical Ġto Ġhave Ġalready Ġsigned Ġthe Ġtransaction Ġproposal Ġin Ġthe Ġsame Ġworkflow Ġusing ĠSign Transaction Flow . ĠIf Ġso Ġthen Ġthe Ġtransaction ĠID Ġcan Ġbe Ġpassed Ġin Ġas Ġan Ġextra Ġcheck Ġto Ġensure Ġthe Ġfinal ised Ġtransaction Ġis Ġthe Ġone Ġthat Ġwas Ġsigned Ġbefore Ġit 's Ġcommitted Ġto Ġthe Ġvault ĊĠĠĠĠĠĠĠ Ġreturn Ġsub Flow ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReceive Final ity Flow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter party Session , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ Ċ }