Don't regenerate idl in read_all_programs()

This commit is contained in:
Christian Kamm 2022-07-14 09:57:44 +02:00
parent 0b4c7b0c73
commit e08a583cba
1 changed files with 7 additions and 8 deletions

View File

@ -171,19 +171,18 @@ impl WithPath<Config> {
.collect())
}
// TODO: this should read idl dir instead of parsing source.
pub fn read_all_programs(&self) -> Result<Vec<Program>> {
let mut r = vec![];
for path in self.get_program_list()? {
let cargo = Manifest::from_path(&path.join("Cargo.toml"))?;
let lib_name = cargo.lib_name()?;
let version = cargo.version();
let idl = anchor_syn::idl::file::parse(
path.join("src/lib.rs"),
version,
self.features.seeds,
false,
)?;
let idl_filepath = format!("target/idl/{}.json", lib_name);
let idl = fs::read(idl_filepath)
.ok()
.map(|bytes| serde_json::from_reader(&*bytes))
.transpose()?;
r.push(Program {
lib_name,
path,