pub async fn load(file_path: &PathBuf) -> anyhow::Result<Selectors> {
        let file = tokio::fs::read(file_path)
            .await
            .context("Failed to read file")?;
        let json: serde_json::Value =
            serde_json::from_slice(&file).context("Failed to deserialize file")?;
        let Some(abi) = json.get("abi").cloned() else {
            return Ok(Selectors::default());
        };

        let contract: ethabi::Contract =
            serde_json::from_value(abi).context("Failed to parse abi")?;
        Ok(Self::new(contract))
    }
Loads the selectors from the file, or returns a new instance if the file is a valid
JSON, but doesn't contain `ABI` section.

Will return an error if file doesn't exist or cannot be deserialized.
core/bin/selector_generator/src/selectors.rs