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: SourceCodeMetadataIncludes metadata for compiler settings and language.
abi: StringThe ABI of the contract.
contract_name: StringThe name of the contract.
compiler_version: StringThe version that this contract was compiled with. If it is a Vyper contract, it will start with “vyper:”.
optimization_used: u64Whether the optimizer was used. This value should only be 0 or 1.
runs: u64The number of optimizations performed.
constructor_arguments: BytesThe constructor arguments the contract was deployed with.
evm_version: StringThe 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: StringThe license of the contract.
proxy: u64Whether 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: StringThe 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 abi(&self) -> Result<JsonAbi, EtherscanError>
pub fn abi(&self) -> Result<JsonAbi, EtherscanError>
Parses the ABI string into a JsonAbi 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 foundry-compilers only.
pub fn settings(&self) -> Result<Settings, EtherscanError>
foundry-compilers only.Returns the contract’s compiler settings.
Sourcepub fn project_builder(
&self,
) -> Result<ProjectBuilder<SolcCompiler>, EtherscanError>
Available on crate feature foundry-compilers only.
pub fn project_builder( &self, ) -> Result<ProjectBuilder<SolcCompiler>, EtherscanError>
foundry-compilers only.Creates a Solc ProjectBuilder with this contract’s settings.
Sourcepub fn evm_version(&self) -> Result<Option<EvmVersion>, EtherscanError>
Available on crate feature foundry-compilers only.
pub fn evm_version(&self) -> Result<Option<EvmVersion>, EtherscanError>
foundry-compilers 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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);