pub struct DsProxy { /* private fields */ }
Expand description

Represents the DsProxy type that implements the Transformer trait.

Example

use ethers_middleware::{SignerMiddleware, transformer::DsProxy};
use ethers_signers::LocalWallet;
use ethers_providers::{Provider, Http};
use ethers_core::types::{Address, Bytes};
use std::{convert::TryFrom, sync::Arc};

type HttpWallet = SignerMiddleware<Provider<Http>, LocalWallet>;

// instantiate client that can sign transactions.
let wallet: LocalWallet = "380eb0f3d505f087e438eca80bc4df9a7faa24f868e69fc0440261a0fc0567dc"
    .parse()?;
let provider = Provider::<Http>::try_from("http://localhost:8545")?;
let client = SignerMiddleware::new(provider, wallet);

// instantiate DsProxy by providing its address.
let ds_proxy = DsProxy::new(ds_proxy_addr);

// execute a transaction via the DsProxy instance.
let target = Address::random();
let calldata: Bytes = vec![0u8; 32].into();
let contract_call = ds_proxy.execute::<HttpWallet, Arc<HttpWallet>, Address>(
    Arc::new(client),
    target,
    calldata,
)?;
let pending_tx = contract_call.send().await?;
let _tx_receipt = pending_tx.await?;

Implementations

Create a new instance of DsProxy by providing the address of the DsProxy contract that has already been deployed to the Ethereum network.

The address of the DsProxy instance.

Deploys a new DsProxy contract to the Ethereum network.

Execute a tx through the DsProxy instance. The target can either be a deployed smart contract’s address, or bytecode of a compiled smart contract. Depending on the target, the appropriate execute method is called, that is, either execute(address,bytes) or execute(bytes,bytes).

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Transforms a transaction request into one that can be broadcasted and execute via the proxy contract. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Calls U::from(self).

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

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more