package Ġnetwork . o 3 . o 3 wallet . API . O 3 Platform Ċ Ċ import Ġcom . github . kit tin un f . fuel . http Get Ċ import Ġcom . github . kit tin un f . fuel . http Post Ċ import Ġcom . github . sal om on br ys . kot son . fromJson Ċ import Ġcom . google . gson . Gson Ċ import Ġnetwork . o 3 . o 3 wallet . API . O 3 . Token Sale Log Signed Ċ import Ġnetwork . o 3 . o 3 wallet . Account Ċ import Ġnetwork . o 3 . o 3 wallet . O 3 Wallet Ċ import Ġnetwork . o 3 . o 3 wallet . Persistent Store Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġd rei Ġon Ġ 1 1 / 2 4 / 1 7 . Ċ Ġ*/ Ċ Ċ class ĠO 3 Platform Client Ġ{ ĊĠĠĠ Ġval Ġbase API URL Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / neo /" ĊĠĠĠ Ġenum Ġclass ĠRoute Ġ{ ĊĠĠĠĠĠĠĠ ĠCLAIM ABLE G AS , ĊĠĠĠĠĠĠĠ ĠB AL AN CES , ĊĠĠĠĠĠĠĠ ĠN EP 5 , ĊĠĠĠĠĠĠĠ ĠIN BOX , ĊĠĠĠĠĠĠĠ ĠVER IFICATION , ĊĠĠĠĠĠĠĠ ĠPR IC ING , ĊĠĠĠĠĠĠĠ ĠNODE S , ĊĠĠĠĠĠĠĠ ĠUN BOUND ONG , ĊĠĠĠĠĠĠĠ ĠHIST ORY , ĊĠĠĠĠĠĠĠ ĠTR ADING , ĊĠĠĠĠĠĠĠ ĠORDER S , ĊĠĠĠĠĠĠĠ ĠD APPS , ĊĠĠĠĠĠĠĠ ĠN NS , ĊĠĠĠĠĠĠĠ ĠU TX O ; ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġroute Name (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . name . toLowerCase ( Locale . US ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnetwork QueryString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Persistent Store . get Network Type () Ġ== Ġ" Main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"? network = main " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Persistent Store . get Network Type () Ġ== Ġ" Test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"? network = test " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"? network = test " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Claim able G AS ( address : ĠString , Ġcompletion : Ġ( Pair < Claim Data ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġbase API URL Ġ+ Ġaddress Ġ+ Ġ"/" Ġ+ ĠRoute . CL AIM ABLE G AS . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclaims Ġ= ĠGson (). fromJson < Claim Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Claim Data ?, ĠError ? >( claims , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Claim Data ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Claim able Gas Blocking ( address : ĠString ) Ġ: ĠClaim Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġbase API URL Ġ+ Ġaddress Ġ+ Ġ"/" Ġ+ ĠRoute . CL AIM ABLE G AS . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . timeout In Millisecond Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġ(_, Ġ_, Ġresult ) Ġ= Ġrequest . response String () ĊĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclaims Ġ= ĠGson (). fromJson < Claim Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġclaims ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget UT X OS ( address : ĠString , Ġcompletion : Ġ( Pair < UT X OS ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġbase API URL Ġ+ Ġaddress Ġ+ Ġ"/" Ġ+ ĠRoute . UT XO . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġassets Ġ= ĠGson (). fromJson < UT X OS >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < UT X OS ?, ĠError ? >( assets , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < UT X OS ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transfer able Assets ( address : ĠString , Ġcompletion : Ġ( Pair < Transfer able Assets ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġbase API URL Ġ+ Ġaddress Ġ+ Ġ"/" Ġ+ ĠRoute . BAL AN CES . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Data Ġ= ĠGson (). fromJson < Transfer able Balance Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Transfer able Assets ?, ĠError ? >( Transfer able Assets ( balance Data . data ), Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Transfer able Assets ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Market Place ( completion : Ġ( Pair < Token List ings ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// api . o 3 . network / v 1 / marketplace " Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn ep 5 Data Ġ= ĠGson (). fromJson < Token List ings Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Token List ings ?, ĠError ? >( n ep 5 Data . data , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Token List ings ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget N ep 5 ( completion : Ġ( Pair < NE P 5 Tokens ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / neo /" Ġ+ ĠRoute . NE P 5 . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . headers [" Version "] Ġ= ĠO 3 Wallet . version Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn ep 5 Data Ġ= ĠGson (). fromJson < NE P 5 Tokens Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < NE P 5 Tokens ?, ĠError ? >( n ep 5 Data . data , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < NE P 5 Tokens ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Inbox ( address : ĠString , Ġcompletion : Ġ( Pair < List < O 3 Inbox Item > ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . IN BOX . route Name () Ġ+ Ġ"/" Ġ+ Ġaddress Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ _, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġin box Data Ġ= ĠGson (). fromJson < O 3 Inbox >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems : ĠList < O 3 Inbox Item > Ġ= Ġin box Data . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < O 3 Inbox Item > ?, ĠError ? >( items , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < O 3 Inbox Item > ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Verified Address ( address : ĠString , Ġcompletion : Ġ( Pair < Verified Address ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . VER IFICATION . route Name () Ġ+ Ġ"/" Ġ Ġ+ Ġaddress Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ _, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverified Address Data Ġ= ĠGson (). fromJson < Verified Address Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverified Address : ĠVerified Address Ġ= Ġverified Address Data . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Verified Address ?, ĠError ? >( verified Address , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Verified Address ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Real Time Price ( token : ĠString , Ġcurrency : ĠString , Ġcompletion : Ġ( Pair < O 3 Real Time Price ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . PR IC ING . route Name () Ġ+ Ġ"/" Ġ Ġ+ Ġtoken . toLowerCase () Ġ+ Ġ"/" Ġ+ Ġcurrency . toLowerCase () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ _, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= Ġgson . fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreal Time Pricing Data Ġ= ĠGson (). fromJson < O 3 Real Time Price Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreal Time Pricing : ĠO 3 Real Time Price Ġ= Ġreal Time Pricing Data . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < O 3 Real Time Price ?, ĠError ? >( real Time Pricing , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < O 3 Real Time Price ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Chain Networks ( completion : Ġ( Pair < Chain Network ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . NODES . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ _, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchain Network Data Ġ= ĠGson (). fromJson < Chain Network Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchain Network Ġ= Ġchain Network Data . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Chain Network ?, ĠError ? >( chain Network , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Chain Network ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Ontology Calculated Gas ( address : ĠString , Ġcompletion : Ġ( Pair < Ontology Claim able Gas ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / ont /" Ġ+ Ġaddress Ġ+ Ġ"/" Ġ+ ĠRoute . UN BOUND ONG . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . timeout ( 6 0 0 0 0 0 ). response String Ġ{ Ġ_, Ġ_, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Gas Data Ġ= ĠGson (). fromJson < Ontology Claim able Gas Data >( platform Response . result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Gas Ġ= Ġcalculated Gas Data . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Ontology Claim able Gas ?, ĠError ? >( calculated Gas , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Ontology Claim able Gas ?, ĠError >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Token Sale Log ( address : ĠString , Ġcompany ID : ĠString , Ġtoken Sale Log : ĠToken Sale Log Signed , Ġcompletion : Ġ( Pair < Boolean , ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / neo /" Ġ+ Ġaddress Ġ+ Ġ"/ tokens ales /" Ġ+ Ġcompany ID ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Post () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . body ( Gson (). toJson ( token Sale Log )). timeout ( 6 0 0 0 0 0 ). response String Ġ{ request , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= result ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( platform Response . code Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Boolean , ĠError ? >( true , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Boolean , ĠError ? >( false , ĠError (" Something Ġwent Ġwrong Ġwhen Ġposting Ġtransaction Ġlog "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction History ( page : ĠInt , Ġcompletion : Ġ( Pair < Transaction History ?, ĠError ?> ) Ġ-> Ġ( Unit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ Ġ+ ĠRoute . HISTORY . route Name () Ġ+ Ġ"/" Ġ+ ĠAccount . get Wallet (). address Ġ+ Ġ"? p =" Ġ+ Ġpage . toString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhistory Ġ= ĠGson (). fromJson < Transaction History >( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Transaction History ?, ĠError ? >( history , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Transaction History ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget D apps ( completion : Ġ( Pair < List < D app > ?, ĠError ?> ) Ġ-> Ġ( Unit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . D APPS . route Name () Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd apps Ġ= ĠGson (). fromJson < List < D app >>( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < D app > ?, ĠError ? >( d apps , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < D app > ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Trading Accounts ( completion : Ġ( Pair < Trading Account ?, ĠError ?> ) Ġ-> Ġ( Unit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . TR ADING . route Name () Ġ+ Ġ"/" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount . get Wallet (). address Ġ+ Ġnetwork QueryString () Ġ+ Ġ"& version = 3 " ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrading Account Ġ= ĠGson (). fromJson < Trading Account >( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Trading Account ?, ĠError ? >( trading Account , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < Trading Account ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Orders ( completion : Ġ( Pair < O 3 Orders ?, ĠError ?> ) Ġ-> Ġ( Unit ) Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 /" Ġ+ ĠRoute . TR ADING . route Name () Ġ+ Ġ"/" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount . get Wallet (). address Ġ+ Ġ"/" Ġ+ ĠRoute . ORD ERS . route Name () Ġ+ Ġnetwork QueryString () Ġ+ Ġ"& version = 3 " ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo 3 Orders Ġ= ĠGson (). fromJson < O 3 Orders >( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < O 3 Orders ?, ĠError ? >( o 3 Orders , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < O 3 Orders ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġcalculate Percent Filled ( order : ĠO 3 Sw it che o Orders ): ĠPair < Double , ĠDouble > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfill Sum Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġvar Ġerror Margin Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( make Ġin Ġorder . m akes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( trade Ġin Ġmake . tr ades Ġ?: ĠlistOf ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Margin Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Sum Ġ+= Ġtrade [" filled _ amount "]. as Double Ġ/ Ġorder . want _ amount . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( fill Ġin Ġorder . fill s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . side . toLowerCase () Ġ== Ġ" buy ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Margin Ġ+= 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Sum Ġ Ġ+= Ġ( fill . want _ amount . toDouble OrNull () Ġ?: Ġ 0 . 0 ) Ġ/ Ġorder . want _ amount . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Margin Ġ+= 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Sum Ġ Ġ+= Ġ( fill . fill _ amount . toDouble OrNull () Ġ?: Ġ 0 . 0 ) Ġ/ Ġorder . offer _ amount . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpercent Filled Ġ= Ġfill Sum Ġ* Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( percent Filled , Ġerror Margin ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// SW IT CHE O ĠAPI Ġcurrently Ġhas Ġan Ġerror Ġmargin Ġof Ġ 0 . 0 0 0 0 0 1 Ġpercent Ġon Ġeach Ġmake Ġand Ġtrade ĊĠĠĠ Ġ// we Ġhave Ġto Ġaccount Ġfor Ġthis Ġto Ġmake Ġsure Ġa Ġ" filled " Ġorder Ġis Ġnot Ġmist ree ated Ġas ĊĠĠĠ Ġ// still Ġopen ĊĠĠĠ Ġfun Ġget Pending Orders ( completion : Ġ( Pair < List < O 3 Sw it che o Orders > ?, ĠError ?> ) Ġ-> Ġ( Unit )) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Orders Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . second Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorders Ġ= Ġit . first !!. sw it che o ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpending Orders : ĠMutable List < O 3 Sw it che o Orders > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// open Ġnot Ġfilled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( order Ġin Ġorders ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . status Ġ== Ġ" processed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . m akes . find Ġ{ Ġit . status Ġ== Ġ" cancelled " Ġ} Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercent Filled And Error Ġ= Ġcalculate Percent Filled ( order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 1 0 0 . 0 Ġ- Ġpercent Filled And Error . first Ġ>= Ġ 0 . 0 0 0 0 0 1 Ġ* Ġpercent Filled And Error . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Orders . add ( order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// closed Ġorders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclosed Orders : ĠMutable List < O 3 Sw it che o Orders > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( order Ġin Ġorders ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . status Ġ== Ġ" processed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . m akes . find Ġ{ Ġit . status Ġ== Ġ" cancelled " Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( calculate Percent Filled ( order ). first Ġ> Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Orders . add ( order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// fully Ġfilled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( order Ġin Ġorders ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . status Ġ== Ġ" processed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order . m akes . find Ġ{ Ġit . status Ġ== Ġ" cancelled " Ġ} Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercent Filled And Error Ġ= Ġcalculate Percent Filled ( order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 1 0 0 . 0 Ġ- Ġpercent Filled And Error . first Ġ< Ġ 0 . 0 0 0 0 0 1 Ġ* Ġpercent Filled And Error . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Orders . add ( order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdf 1 Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Orders . sortBy Ġ{ Ġdf 1 . parse ( it . created _ at ). time } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Orders . reverse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Orders . sortBy Ġ{ Ġdf 1 . parse ( it . created _ at ). time Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Orders . reverse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Orders . addAll ( closed Orders ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < O 3 Sw it che o Orders > ?, ĠError ? >( pending Orders , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < O 3 Sw it che o Orders > ?, ĠError ? >( null , ĠError ( it . second !!. localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// n ns Ġaddress Ġmust Ġend Ġin Ġ. neo ĊĠĠĠ Ġfun Ġresolve N NS ( n ns Query : ĠString , Ġcompletion : Ġ( Pair < String ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ Ġ" https :// platform . o 3 . network / api / v 1 / neo /" Ġ+ ĠRoute . N NS . route Name () Ġ+ Ġ"/" Ġ+ Ġn ns Query Ġ+ Ġnetwork QueryString () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn ns Ġ= ĠGson (). fromJson < Resolved N NS >( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < String ?, ĠError ? >( n ns . address , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < String ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġn ns Reverse Lookup ( address : ĠString , Ġcompletion : Ġ( Pair < List < Reverse Lookup N NS > ?, ĠError ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / neo /" Ġ+ ĠRoute . N NS . route Name () Ġ+ Ġ Ġ"/" Ġ+ Ġaddress Ġ+ Ġ"/ domains " ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdomains Ġ= ĠGson (). fromJson < List < Reverse Lookup N NS >>( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < Reverse Lookup N NS > ?, ĠError ? >( domains , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( Pair < List < Reverse Lookup N NS > ?, ĠError ? >( null , ĠError ( error . localized Message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// default Ġvalue Ġwill Ġbe Ġtwo Ġin Ġcase Ġof Ġerror ĊĠĠĠ Ġdata Ġclass ĠSw it che o Pair ( val Ġname : ĠString , Ġval Ġprecision : ĠInt ) ĊĠĠĠ Ġfun Ġget Precision For Pair ( base Asset : ĠString , Ġother Asset : ĠString , Ġcompletion : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / trading / sw it che o / pairs " Ġ+ Ġ"? version = 3 " ĊĠĠĠĠĠĠĠ Ġval Ġpair Ġ= Ġother Asset . toUpperCase () Ġ+ Ġ"_" Ġ+ Ġbase Asset . toUpperCase () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpairs Ġ= ĠGson (). fromJson < List < Sw it che o Pair >>( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcorrect Pair Ġ= Ġpairs . find { Ġit . name Ġ== Ġpair } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( correct Pair ?. precision Ġ?: Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠSw it che o Token ( val Ġid : ĠString , Ġval Ġname : ĠString , Ġval Ġsymbol : ĠString , Ġval Ġdecimals : ĠInt , Ġval Ġprecision : ĠInt ) ĊĠĠĠ Ġfun Ġget Precision For Token ( token Symbol : ĠString , Ġcompletion : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// platform . o 3 . network / api / v 1 / trading / sw it che o / pairs " Ġ+ Ġ"? version = 3 " ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġtoken Symbol . toUpperCase () ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġurl . http Get () ĊĠĠĠĠĠĠĠ Ġrequest . headers [" User - Agent "] Ġ= Ġ" O 3 Android " ĊĠĠĠĠĠĠĠ Ġrequest . response String Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data , Ġerror ) Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġplatform Response Ġ= ĠGson (). fromJson < Platform Response >( data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpairs Ġ= ĠGson (). fromJson < List < Sw it che o Token >>( platform Response . result . as JsonObject [" data "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcorrect Pair Ġ= Ġpairs . find { Ġit . symbol Ġ== Ġtoken } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( correct Pair ?. precision Ġ?: Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompletion ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ