package Ġorg . ver ib lock . min ers . pop . storage Ċ Ċ import Ġorg . jetbrains . ex posed . sql . Database Ċ import Ġorg . jetbrains . ex posed . sql . Op Ċ import Ġorg . jetbrains . ex posed . sql . Query Ċ import Ġorg . jetbrains . ex posed . sql . SortOrder Ċ import Ġorg . jetbrains . ex posed . sql . Sql Expression Builder Ċ import Ġorg . jetbrains . ex posed . sql . and Ċ import Ġorg . jetbrains . ex posed . sql . insert Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ import Ġorg . jetbrains . ex posed . sql . statements . api . Ex posed Blob Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġorg . jetbrains . ex posed . sql . update Ċ import Ġorg . ver ib lock . min ers . pop . core . Min ing Operation State Ċ import Ġorg . ver ib lock . min ers . pop . core . Min ing Operation Status Ċ Ċ open Ġclass ĠAp m Operation Repository ( ĊĠĠĠ Ġprotected Ġval Ġdatabase : ĠDatabase Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Operations ( ĊĠĠĠĠĠĠĠ Ġchain Id : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġstatus : ĠMin ing Operation Status Ġ= ĠMin ing Operation Status . ACTIVE , ĊĠĠĠĠĠĠĠ Ġlimit : ĠInt Ġ= Ġ 5 0 , ĊĠĠĠĠĠĠĠ Ġoffset : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ): ĠList < Ap m Operation State Record > Ġ= Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperations Filter Select ( chain Id , Ġstatus ). orderBy Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . createdAt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Order . DESC ĊĠĠĠĠĠĠĠ Ġ). limit ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit , Ġoffset . to Long () ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Ap m Operation State Record () ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Operations Count ( ĊĠĠĠĠĠĠĠ Ġchain Id : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġstatus : ĠMin ing Operation Status Ġ= ĠMin ing Operation Status . ACTIVE ĊĠĠĠ Ġ): ĠInt Ġ= Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperations Filter Select ( chain Id , Ġstatus ). count (). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġoperations Filter Select ( chain Id : ĠString ?, Ġstatus : ĠMin ing Operation Status ): ĠQuery Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Filter : ĠSql Expression Builder . () Ġ-> ĠOp < Boolean > Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chain Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . chain Id Ġeq Ġchain Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp . TRUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMin ing Operation Status . ACTIVE Ġ-> ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Filter () Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġgreater Eq ĠMin ing Operation State . INITIAL _ ID ) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġless ĠMin ing Operation State . COMPLETED _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMin ing Operation Status . COMPLETED Ġ-> ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Filter () Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġeq ĠMin ing Operation State . COMPLETED _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMin ing Operation Status . FAILED Ġ-> ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Filter () Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġeq ĠMin ing Operation State . FAILED _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMin ing Operation Status . ALL Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Filter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Active Operations (): ĠList < Ap m Operation State Record > Ġ= Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġgreater Eq ĠMin ing Operation State . INITIAL _ ID ) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Ap m Operation State Table . status Ġless ĠMin ing Operation State . COMPLETED _ ID ) ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Ap m Operation State Record () ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Operation ( id : ĠString ): ĠAp m Operation State Record ? Ġ= Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAp m Operation State Table . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . id Ġeq Ġid ĊĠĠĠĠĠĠĠ Ġ}. first OrNull ()?. to Ap m Operation State Record () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Operation State ( record : ĠAp m Operation State Record ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( get Operation ( record . id ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . update ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . id Ġeq Ġrecord . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ status ] Ġ= Ġrecord . status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ state ] Ġ= ĠEx posed Blob ( record . state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ logs ] Ġ= Ġrecord . logs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction ( database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAp m Operation State Table . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ id ] Ġ= Ġrecord . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ chain Id ] Ġ= Ġrecord . chain Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ status ] Ġ= Ġrecord . status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ state ] Ġ= ĠEx posed Blob ( record . state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ createdAt ] Ġ= Ġrecord . createdAt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ logs ] Ġ= Ġrecord . logs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ