ckb-cli 1.4.0

ckb command line interface
use ckb_sdk::traits::DefaultCellDepResolver;
use ckb_types::{
    core::{BlockView, HeaderView},
    packed::CellDep,
};

#[derive(Clone)]
pub struct GenesisInfo {
    pub cell_dep_resolver: DefaultCellDepResolver,
    pub genesis_header: HeaderView,
}

impl GenesisInfo {
    pub fn from_block(block: &BlockView) -> Result<GenesisInfo, String> {
        let cell_dep_resolver =
            DefaultCellDepResolver::from_genesis(block).map_err(|err| err.to_string())?;
        let genesis_header = block.header();
        Ok(GenesisInfo {
            cell_dep_resolver,
            genesis_header,
        })
    }

    pub fn sighash_dep(&self) -> CellDep {
        self.cell_dep_resolver.sighash_dep().unwrap().0.clone()
    }
    pub fn multisig_dep(&self) -> CellDep {
        self.cell_dep_resolver.multisig_dep().unwrap().0.clone()
    }
    pub fn dao_dep(&self) -> CellDep {
        self.cell_dep_resolver.dao_dep().unwrap().0.clone()
    }
}