pub struct Metadata {Show 13 fields
pub source_code: SourceCodeMetadata,
pub abi: String,
pub contract_name: String,
pub compiler_version: String,
pub optimization_used: u64,
pub runs: u64,
pub constructor_arguments: Bytes,
pub evm_version: String,
pub library: String,
pub license_type: String,
pub proxy: u64,
pub implementation: Option<Address>,
pub swarm_source: String,
}
Expand description
Etherscan contract metadata.
Fields§
§source_code: SourceCodeMetadata
Includes metadata for compiler settings and language.
abi: String
The ABI of the contract.
contract_name: String
The name of the contract.
compiler_version: String
The version that this contract was compiled with. If it is a Vyper contract, it will start with “vyper:”.
optimization_used: u64
Whether the optimizer was used. This value should only be 0 or 1.
runs: u64
The number of optimizations performed.
constructor_arguments: Bytes
The constructor arguments the contract was deployed with.
evm_version: String
The version of the EVM the contract was deployed in. Can be either a variant of EvmVersion or “Default” which indicates the compiler’s default.
library: String
§license_type: String
The license of the contract.
proxy: u64
Whether this contract is a proxy. This value should only be 0 or 1.
implementation: Option<Address>
If this contract is a proxy, the address of its implementation.
swarm_source: String
The swarm source of the contract.
Implementations§
Source§impl Metadata
impl Metadata
Sourcepub fn source_code(&self) -> String
pub fn source_code(&self) -> String
Returns the contract’s source code.
Sourcepub fn language(&self) -> SourceCodeLanguage
pub fn language(&self) -> SourceCodeLanguage
Returns the contract’s programming language.
Sourcepub fn sources(&self) -> HashMap<String, SourceCodeEntry>
pub fn sources(&self) -> HashMap<String, SourceCodeEntry>
Returns the contract’s path mapped source code.
Sourcepub fn raw_abi(&self) -> Result<RawAbi, EtherscanError>
pub fn raw_abi(&self) -> Result<RawAbi, EtherscanError>
Parses the Abi String as an RawAbi struct.
Sourcepub fn compiler_version(&self) -> Result<Version, EtherscanError>
pub fn compiler_version(&self) -> Result<Version, EtherscanError>
Parses the compiler version.
Sourcepub fn is_vyper(&self) -> bool
pub fn is_vyper(&self) -> bool
Returns whether this contract is a Vyper or a Solidity contract.
Sourcepub fn source_entries(&self) -> Vec<SourceTreeEntry>
pub fn source_entries(&self) -> Vec<SourceTreeEntry>
Maps this contract’s sources to a SourceTreeEntry vector.
Sourcepub fn source_tree(&self) -> SourceTree
pub fn source_tree(&self) -> SourceTree
Returns the source tree of this contract’s sources.
Sourcepub fn settings(&self) -> Result<Settings, EtherscanError>
Available on crate feature ethers-solc
only.
pub fn settings(&self) -> Result<Settings, EtherscanError>
ethers-solc
only.Returns the contract’s compiler settings.
Sourcepub fn project_builder(&self) -> Result<ProjectBuilder, EtherscanError>
Available on crate feature ethers-solc
only.
pub fn project_builder(&self) -> Result<ProjectBuilder, EtherscanError>
ethers-solc
only.Creates a Solc ProjectBuilder with this contract’s settings.
Sourcepub fn evm_version(&self) -> Result<Option<EvmVersion>, EtherscanError>
Available on crate feature ethers-solc
only.
pub fn evm_version(&self) -> Result<Option<EvmVersion>, EtherscanError>
ethers-solc
only.Parses the EVM version.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Metadata
impl<'de> Deserialize<'de> for Metadata
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl !Freeze for Metadata
impl RefUnwindSafe for Metadata
impl Send for Metadata
impl Sync for Metadata
impl Unpin for Metadata
impl UnwindSafe for Metadata
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more