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 instance
Implementations§
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 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