package Ġio . pro venance . explorer . domain . entities Ċ Ċ import Ġorg . jetbrains . ex posed . sql . andWhere Ċ import Ġorg . jetbrains . ex posed . sql . count Ċ import Ġorg . jetbrains . ex posed . sql . leftJoin Ċ import Ġorg . jetbrains . ex posed . sql . or Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ Ċ data Ġclass ĠTx Error ( ĊĠĠĠ Ġval Ġblock Height : ĠInt , ĊĠĠĠ Ġval Ġblock Tx Count : ĠInt , ĊĠĠĠ Ġval Ġreal Tx Count : ĠInt Ċ ) Ċ Ċ data Ġclass ĠUnknown Tx Type ( ĊĠĠĠ Ġval Ġtype : ĠString , ĊĠĠĠ Ġval Ġmodule : ĠString , ĊĠĠĠ Ġval Ġproto Type : ĠString Ċ ) Ċ Ċ class ĠError Finding Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Tx Errors () Ġ= Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= ĠTx Cache Table . hash . count () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Cache Table ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( Tx Cache Table , Ġ{ ĠBlock Cache Table . height Ġ}, Ġ{ ĠTx Cache Table . height Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. slice ( Block Cache Table . height , ĠBlock Cache Table . tx Count , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select Ġ{ ĠBlock Cache Table . tx Count Ġgreater Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andWhere Ġ{ ĠTx Cache Table . hash . isNull () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy ( Block Cache Table . height , ĠBlock Cache Table . tx Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. having Ġ{ ĠBlock Cache Table . tx Count Ġne q Ġcount Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTx Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Block Cache Table . height ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Block Cache Table . tx Count ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ count ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Unknown Tx Types () Ġ= Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTx MessageType Record ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġ( Tx MessageType Table . type Ġeq ĠUNKNOWN ) Ġor Ġ( Tx MessageType Table . module Ġeq ĠUNKNOWN ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠUnknown Tx Type ( it . type , Ġit . module , Ġit . proto Type ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ