Struct ethers_middleware::transformer::DsProxy [−][src]
pub struct DsProxy { /* fields omitted */ }
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
pub async fn build<M: Middleware, C: Into<Arc<M>>>(
client: C,
factory: Option<Address>,
owner: Address
) -> Result<Self, ContractError<M>>
pub async fn build<M: Middleware, C: Into<Arc<M>>>(
client: C,
factory: Option<Address>,
owner: Address
) -> Result<Self, ContractError<M>>
Deploys a new DsProxy contract to the Ethereum network.
pub fn execute<M: Middleware, C: Into<Arc<M>>, T: Into<AddressOrBytes>>(
&self,
client: C,
target: T,
data: Bytes
) -> Result<ContractCall<M, Bytes>, ContractError<M>>
pub fn execute<M: Middleware, C: Into<Arc<M>>, T: Into<AddressOrBytes>>(
&self,
client: C,
target: T,
data: Bytes
) -> Result<ContractCall<M, Bytes>, ContractError<M>>
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
Transforms a transaction request
into one that can be broadcasted and execute via the
proxy contract. Read more
Auto Trait Implementations
impl RefUnwindSafe for DsProxy
impl UnwindSafe for DsProxy
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
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