feat: add getter to `ProjectCompileOutput` (#908)
* feat: add getter to `ProjectCompileOutput` Add a function `compiled_contracts_by_compiler_version` to the `ProjectCompileOutput` that returns a `BTreeMap` that maps the compiler version to a vector of the contract names and contract structs. * changelog: update * chore(solc): remove &mut Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
This commit is contained in:
parent
27a4454ac0
commit
faba6e014d
|
@ -35,6 +35,9 @@
|
|||
so that the receipt can be returned to the called when deploying
|
||||
a contract [#865](https://github.com/gakonst/ethers-rs/pull/865)
|
||||
- Add Arbitrum mainnet and testnet to the list of known chains
|
||||
- Add a getter to `ProjectCompileOutput` that returns a mapping of compiler
|
||||
versions to a vector of name + contract struct tuples
|
||||
[#908](https://github.com/gakonst/ethers-rs/pull/908)
|
||||
|
||||
## ethers-contract-abigen
|
||||
|
||||
|
|
|
@ -141,6 +141,22 @@ impl<T: ArtifactOutput> ProjectCompileOutput<T> {
|
|||
pub fn compiled_artifacts(&self) -> &Artifacts<T::Artifact> {
|
||||
&self.compiled_artifacts
|
||||
}
|
||||
|
||||
/// Returns a `BTreeMap` that maps the compiler version used during [`Project::compile()`]
|
||||
/// to a Vector of tuples containing the contract name and the `Contract`
|
||||
pub fn compiled_contracts_by_compiler_version(
|
||||
&self,
|
||||
) -> BTreeMap<Version, Vec<(String, Contract)>> {
|
||||
let mut contracts = BTreeMap::new();
|
||||
let versioned_contracts = &self.compiler_output.contracts;
|
||||
for (_, name, contract, version) in versioned_contracts.contracts_with_files_and_version() {
|
||||
contracts
|
||||
.entry(version.to_owned())
|
||||
.or_insert(Vec::<(String, Contract)>::new())
|
||||
.push((name.to_string(), contract.clone()));
|
||||
}
|
||||
contracts
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: ArtifactOutput> ProjectCompileOutput<T>
|
||||
|
|
Loading…
Reference in New Issue