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 solc’s
ast output fieldBytecode related types
Contract related types
bindings for standard json output selection
serde helpers
Structs
Input type
solc expectsOutput type
solc producesDebugging 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 the kind field 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 overall Param and ParamType types. Instead,
this type keeps a copy of the serde_json::Value when deserialized from the solc json
compiler output and uses it to serialize the abi without 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
solc contract metadataCompiler 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
Contracts type aliasA wrapper type for a list of source files
path -> SourceFileA
CompilerInput representation used for verifyRepresents the
storage-layout section of the CompilerOutput if selected.Enums
Determines the hash method for the metadata hash that is appended to the bytecode.
Which model checker engine to run.
Which model checker targets to check.
How to treat revert (and require) reason strings.
Type Definitions
file -> (contract name -> Contract)
Solidity files are made up of multiple
source units, a solidity contract is such a source unit, therefore a solidity file can contain multiple contracts: (1-N*) relationship.An ordered list of files and their source