alloy_node_bindings::nodes::geth

Struct Geth

source
pub struct Geth { /* private fields */ }
Expand description

Builder for launching geth.

§Panics

If spawn is called without geth being available in the user’s $PATH

§Example

use alloy_node_bindings::Geth;

let port = 8545u16;
let url = format!("http://localhost:{}", port).to_string();

let geth = Geth::new().port(port).block_time(5000u64).spawn();

drop(geth); // this will kill the instance

Implementations§

source§

impl Geth

source

pub fn new() -> Self

Creates an empty Geth builder.

The mnemonic is chosen randomly.

source

pub fn at(path: impl Into<PathBuf>) -> Self

Creates a Geth builder which will execute geth at the given path.

§Example
use alloy_node_bindings::Geth;
let geth = Geth::at("../go-ethereum/build/bin/geth").spawn();

println!("Geth running at `{}`", geth.endpoint());
source

pub fn path<T: Into<PathBuf>>(self, path: T) -> Self

Sets the path to the geth executable

By default, it’s expected that geth is in $PATH, see also std::process::Command::new()

source

pub fn dev(self) -> Self

Puts the geth instance in dev mode.

source

pub const fn is_clique(&self) -> bool

Returns whether the node is launched in Clique consensus mode.

source

pub fn clique_address(&self) -> Option<Address>

Calculates the address of the Clique consensus address.

source

pub fn set_clique_private_key<T: Into<SigningKey>>(self, private_key: T) -> Self

👎Deprecated: clique support was removed in geth >=1.14

Sets the Clique Private Key to the geth executable, which will be later loaded on the node.

The address derived from this private key will be used to set the miner.etherbase field on the node.

source

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

Sets the port which will be used when the geth-cli instance is launched.

If port is 0 then the OS will choose a random port. GethInstance::port will return the port that was chosen.

source

pub fn p2p_port(self, port: u16) -> Self

Sets the port which will be used for incoming p2p connections.

This will put the geth instance into non-dev mode, discarding any previously set dev-mode options.

source

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

Sets the block-time which will be used when the geth-cli instance is launched.

This will put the geth instance in dev mode, discarding any previously set options that cannot be used in dev mode.

source

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

Sets the chain id for the geth instance.

source

pub const fn insecure_unlock(self) -> Self

Allow geth to unlock accounts when rpc apis are open.

source

pub const fn enable_ipc(self) -> Self

Enable IPC for the geth instance.

source

pub fn disable_discovery(self) -> Self

Disable discovery for the geth instance.

This will put the geth instance into non-dev mode, discarding any previously set dev-mode options.

source

pub fn ipc_path<T: Into<PathBuf>>(self, path: T) -> Self

Sets the IPC path for the socket.

source

pub fn data_dir<T: Into<PathBuf>>(self, path: T) -> Self

Sets the data directory for geth.

source

pub fn genesis(self, genesis: Genesis) -> Self

Sets the genesis.json for the geth instance.

If this is set, geth will be initialized with geth init and the --datadir option will be set to the same value as data_dir.

This is destructive and will overwrite any existing data in the data directory.

source

pub const fn authrpc_port(self, port: u16) -> Self

Sets the port for authenticated RPC connections.

source

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

Adds an argument to pass to geth.

Pass any arg that is not supported by the builder.

source

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

Adds multiple arguments to pass to geth.

Pass any args that is not supported by the builder.

source

pub fn spawn(self) -> GethInstance

Consumes the builder and spawns geth.

§Panics

If spawning the instance fails at any point.

source

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

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

Trait Implementations§

source§

impl Clone for Geth

source§

fn clone(&self) -> Geth

Returns a copy 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 Geth

source§

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

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

impl Default for Geth

source§

fn default() -> Geth

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

Auto Trait Implementations§

§

impl !Freeze for Geth

§

impl RefUnwindSafe for Geth

§

impl Send for Geth

§

impl Sync for Geth

§

impl Unpin for Geth

§

impl UnwindSafe for Geth

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
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> 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