package Ġorg . tok end . sdk . api . base . model . operations Ċ Ċ import Ġorg . tok end . sdk . api . accounts . model . Unified Operation Record Ċ import Ġorg . tok end . sdk . api . tr ades . model . Offer Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . Math Context Ċ Ċ /** Ċ Ġ* ĠRepresents Ġtrading Ġmatch . Ċ Ġ* ĠIt Ġis Ġrelated Ġto Ġthe Ġasset Ġin Ġwhose Ġhistory Ġit Ġis Ġlisted . Ċ Ġ* ĠFor Ġexample , Ġif Ġthere Ġis Ġa Ġmatch Ġof Ġbuy ing Ġ 1 0 ĠBTC Ġfor Ġ 1 0 0 ĠETH Ċ Ġ* Ġthen Ġin ĠBTC Ġhistory Ġit Ġwill Ġbe Ġlisted Ġas Ġ" B ought Ġ 1 0 ĠBTC Ġfor Ġ 1 0 0 ĠETH " Ċ Ġ* Ġand Ġin ĠETH Ġhistory Ġit Ġwill Ġbe Ġlisted Ġas Ġ" S old Ġ 1 0 0 ĠETH Ġfor Ġ 1 0 ĠBTC " Ċ Ġ*/ Ċ open Ġclass ĠOffer Match Operation ( ĊĠĠĠĠĠĠĠ Ġprotected Ġopen Ġval Ġbase : ĠBase Transfer Operation , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġamount : ĠBigDecimal , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġasset : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġfee : ĠBigDecimal , ĊĠĠĠĠĠĠĠ Ġval Ġfee Asset : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmatch Data : ĠMatch Data Ċ ) Ġ: ĠTransfer Operation Ġby Ġbase Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠOperation Type . OFF ER _ MATCH ĊĊĠĠĠ Ġoverride Ġval Ġis Received : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmatch Data . is Buy ĊĊĠĠĠ Ġoverride Ġval Ġis Sent : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ! is Received ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Unified Operation Record ( record : ĠUn ified Operation Record , Ġcontext Asset : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext AccountId : ĠString ): ĠList < Offer Match Operation > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġour Participant Ġ= Ġrecord . participants ?. first Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . accountId Ġ== Ġcontext AccountId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeffect Ġ= Ġour Participant ?. effects ?. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġempty List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeffect Base Asset Ġ= Ġeffect . base Asset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeffect Quote Asset Ġ= Ġeffect . quote Asset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Asset Is Quote Ġ= Ġeffect Quote Asset Ġ== Ġcontext Asset ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġeffect . matches ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . base Amount . sign um () Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . quote Amount . sign um () Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Indexed Ġ{ Ġi , Ġmatch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase Amount Ġ= Ġmatch . base Amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquote Amount Ġ= Ġmatch . quote Amount ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOffer Match Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Ġ= ĠBase Transfer Operation . from Payment Record ( record , Ġcontext AccountId ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ"${ record . id }_ $ i ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfee Ġ= Ġmatch . fee , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset Ġ= Ġcontext Asset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġif Ġ( context Asset Is Quote ) Ġquote Amount Ġelse Ġbase Amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch Data Ġ= ĠMatch Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote Asset Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Asset Is Quote ) Ġeffect Base Asset Ġelse Ġeffect Quote Asset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote Amount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Asset Is Quote ) Ġbase Amount Ġelse Ġquote Amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Asset Is Quote ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBigDecimal . ONE . divide ( match . price , ĠMath Context . DECIMAL 1 2 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch . price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Buy Ġ= Ġcontext Asset Is Quote Ġ!= Ġeffect . is Buy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠorderId Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfee Asset Ġ= Ġeffect Quote Asset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toList () Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Offer ( offer : ĠOffer ): ĠOffer Match Operation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOffer Match Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Transfer Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Token Ġ= Ġoffer . paging Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġoffer . date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠOperation State . PENDING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠOperation Type . OFF ER _ MATCH , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= ĠBigDecimal . ZERO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Received Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġoffer . id . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfee Ġ= Ġoffer . fee Ġ?: ĠBigDecimal . ZERO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġoffer . base Amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset Ġ= Ġoffer . base Asset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch Data Ġ= ĠMatch Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote Amount Ġ= Ġoffer . quote Amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote Asset Ġ= Ġoffer . quote Asset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġoffer . price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Buy Ġ= Ġoffer . is Buy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠorderId Ġ= Ġoffer . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfee Asset Ġ= Ġoffer . quote Asset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }