pub trait ReadSFX<Hash, Account, Balance, BlockNumber> {
// Required methods
fn get_pending_xtx_ids() -> Vec<Hash>;
fn get_pending_xtx_for(
for_executor: Account
) -> Vec<(Hash, Vec<SideEffect<Account, Balance>>, Vec<Hash>)>;
fn get_fsx_of_xtx(xtx_id: Hash) -> Result<Vec<Hash>, DispatchError>;
fn get_fsx_status(fsx_id: Hash) -> Result<CircuitStatus, DispatchError>;
fn get_fsx_executor(fsx_id: Hash) -> Result<Option<Account>, DispatchError>;
fn recover_latest_submitted_xtx_id() -> Result<Hash, DispatchError>;
fn get_fsx(
fsx_id: Hash
) -> Result<FullSideEffect<Account, BlockNumber, Balance>, DispatchError>;
fn get_xtx_status(
xtx_id: Hash
) -> Result<(CircuitStatus, AdaptiveTimeout<BlockNumber, TargetId>), DispatchError>;
fn get_fsx_requester(fsx_id: Hash) -> Result<Account, DispatchError>;
}