Struct ethers_core::utils::Geth

source ·
pub struct Geth { /* private fields */ }
Available on non-WebAssembly only.
Expand description

Builder for launching geth.

§Panics

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

§Example

use ethers_core::utils::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 ethers_core::utils::Geth;
 let geth = Geth::at("../go-ethereum/build/bin/geth").spawn();

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

pub fn is_clique(&self) -> bool

Returns whether the node is launched in Clique consensus mode

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 set_clique_private_key<T: Into<SigningKey>>(self, private_key: T) -> Self

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 fn block_time<T: Into<u64>>(self, block_time: T) -> 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 fn chain_id<T: Into<u64>>(self, chain_id: T) -> Self

Sets the chain id for the geth instance.

source

pub fn insecure_unlock(self) -> Self

Allow geth to unlock accounts when rpc apis are open.

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

Manually sets the IPC path for the socket manually.

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 fn authrpc_port(self, port: u16) -> Self

Sets the port for authenticated RPC connections.

source

pub fn spawn(self) -> GethInstance

Consumes the builder and spawns geth.

§Panics

If spawning the instance fails at any point.

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 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

type Output = T

Should always be Self
source§

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

§

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

§

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

§

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> JsonSchemaMaybe for T