Module ethers_solc::artifacts
source · Expand description
Solc artifact types
Re-exports
pub use serde_helpers::deserialize_bytes;pub use serde_helpers::deserialize_opt_bytes;pub use ast::*;pub use bytecode::*;pub use contract::*;
Modules
- Bindings for the Solidity and Yul ASTs.
- Bytecode related types
- Contract related types
- bindings for standard json output selection
- serde helpers
Structs
- Input type
solcexpects - Output type
solcproduces - Debugging settings for solc
- A wrapper type for all libraries in the form of
<file>:<lib>:<addr> - A helper type that ensures lossless (de)serialisation unlike [
ethers_core::abi::Abi] which omits some information of (nested) components in a serde roundtrip. This is a problem for abienconderv2 structs because [ethers_core::abi::Contract]’s representation of those are [ethers_core::abi::Param] and thekindfield of type [ethers_core::abi::ParamType] does not support deeply nested components as it’s the case for structs. This is not easily fixable in ethabi as it would require a redesign of the overallParamandParamTypetypes. Instead, this type keeps a copy of theserde_json::Valuewhen deserialized from thesolcjson compiler output and uses it to serialize theabiwithout loss. - A helper type that ensures lossless (de)serialisation so we can preserve the exact String metadata value that’s being hashed by solc
- Bindings for
solccontract metadata - Compiler settings
- Compilation source files/source units, keys are file names
- Model checker settings for solc
- Byte offsets into the bytecode. Linking replaces the 20 bytes located there.
- A wrapper helper type for the
Contractstype alias - Content of a solidity file
- A wrapper type for a list of source files
path -> SourceFile - A
CompilerInputrepresentation used for verify - Represents the
storage-layoutsection of theCompilerOutputif selected.
Enums
- Determines the hash method for the metadata hash that is appended to the bytecode.
- EVM versions.
- Which model checker engine to run.
- Which model checker invariants to check.
- Which model checker solvers to check.
- Which model checker targets to check.
- How to treat revert (and require) reason strings.
Type Aliases
- file -> (contract name -> Contract)
- Solidity files are made up of multiple
source units, a solidity contract is such asource unit, therefore a solidity file can contain multiple contracts: (1-N*) relationship. - An ordered list of files and their source