Anvil

Struct 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 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

Source

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());
Source

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());
Source

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()

Source

pub fn port<T: Into<u16>>(self, port: T) -> Self

Sets the port which will be used when the anvil instance is launched.

Source

pub fn ipc_path(self, path: impl Into<String>) -> Self

Sets the path for the ipc server

Source

pub const fn chain_id(self, chain_id: u64) -> Self

Sets the chain_id the anvil instance will use.

If not set, the instance defaults to chain id 31337.

Source

pub fn mnemonic<T: Into<String>>(self, mnemonic: T) -> Self

Sets the mnemonic which will be used when the anvil instance is launched.

Source

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.

Source

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.

Source

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

Source

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

Source

pub fn hardfork(self, hardfork: EthereumHardfork) -> Self

Select the EthereumHardfork to start anvil with.

Source

pub fn paris(self) -> Self

Source

pub fn cancun(self) -> Self

Source

pub fn shanghai(self) -> Self

Source

pub fn prague(self) -> Self

Source

pub fn odyssey(self) -> Self

Instantiate anvil with the --odyssey flag.

Source

pub fn auto_impersonate(self) -> Self

Instantiate anvil with the --auto-impersonate flag.

Source

pub fn push_arg<T: Into<OsString>>(&mut self, arg: T)

Adds an argument to pass to the anvil.

Source

pub fn extend_args<I, S>(&mut self, args: I)
where I: IntoIterator<Item = S>, S: Into<OsString>,

Adds multiple arguments to pass to the anvil.

Source

pub fn arg<T: Into<OsString>>(self, arg: T) -> Self

Adds an argument to pass to the anvil.

Source

pub fn args<I, S>(self, args: I) -> Self
where I: IntoIterator<Item = S>, S: Into<OsString>,

Adds multiple arguments to pass to the anvil.

Source

pub fn env<K, V>(self, key: K, value: V) -> Self
where K: Into<OsString>, V: Into<OsString>,

Adds an environment variable to pass to the anvil.

Source

pub fn envs<I, K, V>(self, envs: I) -> Self
where I: IntoIterator<Item = (K, V)>, K: Into<OsString>, V: Into<OsString>,

Adds multiple environment variables to pass to the anvil.

Source

pub const fn timeout(self, timeout: u64) -> Self

Sets the timeout which will be used when the anvil instance is launched. Units: milliseconds.

Source

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.

Source

pub fn spawn(self) -> AnvilInstance

Consumes the builder and spawns anvil.

§Panics

If spawning the instance fails at any point.

Source

pub fn try_spawn(self) -> Result<AnvilInstance, NodeError>

Consumes the builder and spawns anvil. If spawning fails, returns an error.

Trait Implementations§

Source§

impl Clone for Anvil

Source§

fn clone(&self) -> Anvil

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Anvil

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Anvil

Source§

fn default() -> Anvil

Returns the “default value” for a type. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 216 bytes