package Ġio . def itr ack . pool ing Ċ Ċ import Ġio . def itr ack . apr . Sp ir its wap AP R Service Ċ import Ġio . def itr ack . common . network . Network Ċ import Ġio . def itr ack . market . pool ing . Pooling Market Provider Ċ import Ġio . def itr ack . market . pool ing . domain . Pooling Market Element Ċ import Ġio . def itr ack . protocol . Protocol Ċ import Ġio . def itr ack . protocol . Sp ir its wap Service Ċ import Ġio . def itr ack . token . ERC 2 0 Resource Ċ import Ġio . def itr ack . token . TokenType Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . math . BigDecimal Ċ Ċ @ Component Ċ class ĠSp irit F antom Pooling Market Service ( ĊĠĠĠ Ġprivate Ġval Ġsp ir its wap Services : ĠList < Sp ir its wap Service >, ĊĠĠĠ Ġprivate Ġval Ġsp ir its wap AP R Service : ĠSp ir its wap AP R Service , ĊĠĠĠ Ġprivate Ġval Ġer C 2 0 Resource : ĠERC 2 0 Resource , Ċ ) Ġ: ĠPool ing Market Provider () Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Pooling Mark ets () Ġ= Ġsp ir its wap Services . filter Ġ{ ĊĠĠĠĠĠĠĠ Ġit . get Network () Ġ== Ġget Network () ĊĠĠĠ Ġ}. flatMap Ġ{ Ġservice Ġ-> ĊĠĠĠĠĠĠĠ Ġservice . get Pairs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reserve USD Ġ> ĠBigDecimal . valueOf ( 1 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġer C 2 0 Resource . getToken Information ( get Network (), Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken 0 Ġ= Ġer C 2 0 Resource . getToken Information ( get Network (), Ġit . token 0 . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken 1 Ġ= Ġer C 2 0 Resource . getToken Information ( get Network (), Ġit . token 1 . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPool ing Market Element ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Ġ= Ġservice . get Network (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprotocol Ġ= Ġget Protocol (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġtoken . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtokens Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken 0 . to F ung ible Token (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken 1 . to F ung ible Token (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsymbol Ġ= Ġtoken . symbol , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapr Ġ= Ġsp ir its wap AP R Service . get AP R ( it . id , Ġservice . get Network ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" sp irit - f antom -${ it . id }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Size Ġ= Ġit . reserve USD , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= ĠTokenType . SPI R IT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Protocol (): ĠProtocol Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠProtocol . SPI R IT SWAP ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Network (): ĠNetwork Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNetwork . F AN TOM ĊĠĠĠ Ġ} Ċ }