pub struct Anvil { /* private fields */ }Expand description
Builder for launching anvil.
§Panics
If spawn is called without anvil being available in the user’s $PATH
§Example
use alloy_node_bindings::Anvil;
let port = 8545u16;
let url = format!("http://localhost:{}", port).to_string();
let anvil = Anvil::new()
    .port(port)
    .mnemonic("abstract vacuum mammal awkward pudding scene penalty purchase dinner depart evoke puzzle")
    .spawn();
drop(anvil); // this will kill the instanceImplementations§
Source§impl Anvil
 
impl Anvil
Sourcepub fn new() -> Self
 
pub fn new() -> Self
Creates an empty Anvil builder. The default port and the mnemonic are chosen randomly.
§Example
fn a() {
 let anvil = Anvil::default().spawn();
 println!("Anvil running at `{}`", anvil.endpoint());Sourcepub fn at(path: impl Into<PathBuf>) -> Self
 
pub fn at(path: impl Into<PathBuf>) -> Self
Creates an Anvil builder which will execute anvil at the given path.
§Example
fn a() {
 let anvil = Anvil::at("~/.foundry/bin/anvil").spawn();
 println!("Anvil running at `{}`", anvil.endpoint());Sourcepub fn path<T: Into<PathBuf>>(self, path: T) -> Self
 
pub fn path<T: Into<PathBuf>>(self, path: T) -> Self
Sets the path to the anvil cli
By default, it’s expected that anvil is in $PATH, see also
std::process::Command::new()
Sourcepub fn port<T: Into<u16>>(self, port: T) -> Self
 
pub fn port<T: Into<u16>>(self, port: T) -> Self
Sets the port which will be used when the anvil instance is launched.
Sourcepub const fn chain_id(self, chain_id: u64) -> Self
 
pub const fn chain_id(self, chain_id: u64) -> Self
Sets the chain_id the anvil instance will use.
By default DEFAULT_IPC_ENDPOINT will be used.
Sourcepub fn mnemonic<T: Into<String>>(self, mnemonic: T) -> Self
 
pub fn mnemonic<T: Into<String>>(self, mnemonic: T) -> Self
Sets the mnemonic which will be used when the anvil instance is launched.
Sourcepub const fn block_time(self, block_time: u64) -> Self
 
pub const fn block_time(self, block_time: u64) -> Self
Sets the block-time in seconds which will be used when the anvil instance is launched.
Sourcepub const fn block_time_f64(self, block_time: f64) -> Self
 
pub const fn block_time_f64(self, block_time: f64) -> Self
Sets the block-time in sub-seconds which will be used when the anvil instance is launched.
Older versions of anvil do not support sub-second block times.
Sourcepub const fn fork_block_number(self, fork_block_number: u64) -> Self
 
pub const fn fork_block_number(self, fork_block_number: u64) -> Self
Sets the fork-block-number which will be used in addition to Self::fork.
Note: if set, then this requires fork to be set as well
Sourcepub fn fork<T: Into<String>>(self, fork: T) -> Self
 
pub fn fork<T: Into<String>>(self, fork: T) -> Self
Sets the fork argument to fork from another currently running Ethereum client
at a given block. Input should be the HTTP location and port of the other client,
e.g. http://localhost:8545. You can optionally specify the block to fork from
using an @ sign: http://localhost:8545@1599200
Sourcepub fn hardfork(self, hardfork: EthereumHardfork) -> Self
 
pub fn hardfork(self, hardfork: EthereumHardfork) -> Self
Select the EthereumHardfork to start anvil with.
Sourcepub fn paris(self) -> Self
 
pub fn paris(self) -> Self
Set the EthereumHardfork to EthereumHardfork::Paris.
Sourcepub fn cancun(self) -> Self
 
pub fn cancun(self) -> Self
Set the EthereumHardfork to EthereumHardfork::Cancun.
Sourcepub fn shanghai(self) -> Self
 
pub fn shanghai(self) -> Self
Set the EthereumHardfork to EthereumHardfork::Shanghai.
Sourcepub fn prague(self) -> Self
 
pub fn prague(self) -> Self
Set the EthereumHardfork to EthereumHardfork::Prague.
Sourcepub fn extend_args<I, S>(&mut self, args: I)
 
pub fn extend_args<I, S>(&mut self, args: I)
Adds multiple arguments to pass to the anvil.
Sourcepub fn env<K, V>(self, key: K, value: V) -> Self
 
pub fn env<K, V>(self, key: K, value: V) -> Self
Adds an environment variable to pass to the anvil.
Sourcepub fn envs<I, K, V>(self, envs: I) -> Self
 
pub fn envs<I, K, V>(self, envs: I) -> Self
Adds multiple environment variables to pass to the anvil.
Sourcepub const fn timeout(self, timeout: u64) -> Self
 
pub const fn timeout(self, timeout: u64) -> Self
Sets the timeout which will be used when the anvil instance is launched.
Sourcepub const fn keep_stdout(self) -> Self
 
pub const fn keep_stdout(self) -> Self
Keep the handle to anvil’s stdout in order to read from it.
Caution: if the stdout handle isn’t used, this can end up blocking.
Sourcepub fn spawn(self) -> AnvilInstance
 
pub fn spawn(self) -> AnvilInstance
Sourcepub fn try_spawn(self) -> Result<AnvilInstance, NodeError>
 
pub fn try_spawn(self) -> Result<AnvilInstance, NodeError>
Consumes the builder and spawns anvil. If spawning fails, returns an error.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Anvil
impl RefUnwindSafe for Anvil
impl Send for Anvil
impl Sync for Anvil
impl Unpin for Anvil
impl UnwindSafe for Anvil
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