Struct ethers_core::utils::Anvil
source · 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 ethers_core::utils::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 instance
Implementations§
source§impl Anvil
impl Anvil
sourcepub fn new() -> Self
pub fn new() -> Self
Creates an empty Anvil builder. The default port is 8545. The mnemonic is 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 fn chain_id<T: Into<u64>>(self, chain_id: T) -> Self
pub fn chain_id<T: Into<u64>>(self, chain_id: T) -> Self
Sets the chain_id the anvil
instance will use.
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 fn block_time<T: Into<u64>>(self, block_time: T) -> Self
pub fn block_time<T: Into<u64>>(self, block_time: T) -> Self
Sets the block-time which will be used when the anvil
instance is launched.
sourcepub fn fork_block_number<T: Into<u64>>(self, fork_block_number: T) -> Self
pub fn fork_block_number<T: Into<u64>>(self, fork_block_number: T) -> 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 args<I, S>(self, args: I) -> Selfwhere
I: IntoIterator<Item = S>,
S: Into<String>,
pub fn args<I, S>(self, args: I) -> Selfwhere
I: IntoIterator<Item = S>,
S: Into<String>,
Adds multiple arguments to pass to the anvil
.
sourcepub fn timeout<T: Into<u64>>(self, timeout: T) -> Self
pub fn timeout<T: Into<u64>>(self, timeout: T) -> Self
Sets the timeout which will be used when the anvil
instance is launched.
sourcepub fn spawn(self) -> AnvilInstance
pub fn spawn(self) -> AnvilInstance
Consumes the builder and spawns anvil
with stdout redirected
to /dev/null.