use serde_json::{from_reader, json, Value};
use std::fs::{File, OpenOptions};
pub fn write(filename: &String, chain_id: &String, network_id: &String, deploy_id: &String) {
let file = OpenOptions::new()
.create(true)
.read(true)
.write(true)
.truncate(false)
.open(filename.clone())
.unwrap();
let mut json: Value = if file.metadata().unwrap().len().eq(&0) {
json!({})
} else {
from_reader(file).unwrap()
};
if json.get(network_id).is_none() {
json[network_id] = json!({});
}
if json[network_id].get(chain_id).is_none() {
json[network_id][chain_id] = json!({
deploy_id: {},
"code_ids": {}
});
}
serde_json::to_writer_pretty(File::create(filename).unwrap(), &json).unwrap();
}
pub fn read(filename: &String) -> Value {
let file =
File::open(filename).unwrap_or_else(|_| panic!("File should be present at {}", filename));
let json: serde_json::Value = from_reader(file).unwrap();
json
}