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 -> SourceFile
A
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