mod partition;
mod state;
use cid::Cid;
use fil_actor_interface::{
miner::{DeadlineInfo, State},
Policy,
};
use fil_actors_shared::fvm_ipld_bitfield::BitField;
use fvm_ipld_blockstore::Blockstore;
use crate::rpc::types::{SectorOnChainInfo, SectorPreCommitOnChainInfo};
use crate::shim::clock::ChainEpoch;
use crate::utils::db::CborStoreExt as _;
pub trait MinerStateExt {
fn load_sectors_ext<BS: Blockstore>(
&self,
store: &BS,
sectors: Option<&BitField>,
) -> anyhow::Result<Vec<SectorOnChainInfo>>;
fn load_allocated_sector_numbers<BS: Blockstore>(&self, store: &BS)
-> anyhow::Result<BitField>;
fn load_precommit_on_chain_info<BS: Blockstore>(
&self,
store: &BS,
sector_number: u64,
) -> anyhow::Result<Option<SectorPreCommitOnChainInfo>>;
fn recorded_deadline_info(&self, policy: &Policy, current_epoch: ChainEpoch) -> DeadlineInfo;
}
pub trait PartitionExt {
fn terminated(&self) -> &BitField;
fn expirations_epochs(&self) -> Cid;
}