pub struct Multicall3Instance<P, N = Ethereum> {
address: Address,
provider: P,
_network: PhantomData<N>,
}Expand description
A Multicall3 instance.
Contains type-safe methods for interacting with an on-chain instance of the
Multicall3 contract located at a given address, using a given
provider P.
If the contract bytecode is available (see the sol!
documentation on how to provide it), the deploy and deploy_builder methods can
be used to deploy a new instance of the contract.
See the module-level documentation for all the available methods.
Fields§
§address: Address§provider: P§_network: PhantomData<N>Implementations§
Source§impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Instantiation and getters/setters.
impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Instantiation and getters/setters.
Sourcepub const fn new(address: Address, __provider: P) -> Self
pub const fn new(address: Address, __provider: P) -> Self
Creates a new wrapper around an on-chain Multicall3 contract instance.
See the wrapper’s documentation for more details.
Sourcepub async fn deploy(__provider: P) -> Result<Multicall3Instance<P, N>>
pub async fn deploy(__provider: P) -> Result<Multicall3Instance<P, N>>
Deploys this contract using the given provider and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use deploy_builder instead.
Sourcepub fn deploy_builder(__provider: P) -> RawCallBuilder<P, N>
pub fn deploy_builder(__provider: P) -> RawCallBuilder<P, N>
Creates a RawCallBuilder for deploying this contract using the given provider
and constructor arguments, if any.
This is a simple wrapper around creating a RawCallBuilder with the data set to
the bytecode concatenated with the constructor’s ABI-encoded arguments.
Sourcepub fn set_address(&mut self, address: Address)
pub fn set_address(&mut self, address: Address)
Sets the address.
Source§impl<P: Clone, N> Multicall3Instance<&P, N>
impl<P: Clone, N> Multicall3Instance<&P, N>
Sourcepub fn with_cloned_provider(self) -> Multicall3Instance<P, N>
pub fn with_cloned_provider(self) -> Multicall3Instance<P, N>
Clones the provider and returns a new instance with the cloned provider.
Source§impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Function calls.
impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Function calls.
Sourcepub fn call_builder<C: SolCall>(&self, call: &C) -> SolCallBuilder<&P, C, N>
pub fn call_builder<C: SolCall>(&self, call: &C) -> SolCallBuilder<&P, C, N>
Creates a new call builder using this contract instance’s provider and address.
Note that the call can be any function call, not just those defined in this contract. Prefer using the other methods for building type-safe contract calls.
Sourcepub fn aggregate(
&self,
calls: Vec<<Call as SolType>::RustType>,
) -> SolCallBuilder<&P, aggregateCall, N>
pub fn aggregate( &self, calls: Vec<<Call as SolType>::RustType>, ) -> SolCallBuilder<&P, aggregateCall, N>
Creates a new call builder for the [aggregate] function.
Sourcepub fn aggregate3(
&self,
calls: Vec<<Call3 as SolType>::RustType>,
) -> SolCallBuilder<&P, aggregate3Call, N>
pub fn aggregate3( &self, calls: Vec<<Call3 as SolType>::RustType>, ) -> SolCallBuilder<&P, aggregate3Call, N>
Creates a new call builder for the [aggregate3] function.
Sourcepub fn aggregate3Value(
&self,
calls: Vec<<Call3Value as SolType>::RustType>,
) -> SolCallBuilder<&P, aggregate3ValueCall, N>
pub fn aggregate3Value( &self, calls: Vec<<Call3Value as SolType>::RustType>, ) -> SolCallBuilder<&P, aggregate3ValueCall, N>
Creates a new call builder for the [aggregate3Value] function.
Sourcepub fn blockAndAggregate(
&self,
calls: Vec<<Call as SolType>::RustType>,
) -> SolCallBuilder<&P, blockAndAggregateCall, N>
pub fn blockAndAggregate( &self, calls: Vec<<Call as SolType>::RustType>, ) -> SolCallBuilder<&P, blockAndAggregateCall, N>
Creates a new call builder for the [blockAndAggregate] function.
Sourcepub fn getBasefee(&self) -> SolCallBuilder<&P, getBasefeeCall, N>
pub fn getBasefee(&self) -> SolCallBuilder<&P, getBasefeeCall, N>
Creates a new call builder for the [getBasefee] function.
Sourcepub fn getBlockHash(
&self,
blockNumber: U256,
) -> SolCallBuilder<&P, getBlockHashCall, N>
pub fn getBlockHash( &self, blockNumber: U256, ) -> SolCallBuilder<&P, getBlockHashCall, N>
Creates a new call builder for the [getBlockHash] function.
Sourcepub fn getBlockNumber(&self) -> SolCallBuilder<&P, getBlockNumberCall, N>
pub fn getBlockNumber(&self) -> SolCallBuilder<&P, getBlockNumberCall, N>
Creates a new call builder for the [getBlockNumber] function.
Sourcepub fn getChainId(&self) -> SolCallBuilder<&P, getChainIdCall, N>
pub fn getChainId(&self) -> SolCallBuilder<&P, getChainIdCall, N>
Creates a new call builder for the [getChainId] function.
Sourcepub fn getCurrentBlockCoinbase(
&self,
) -> SolCallBuilder<&P, getCurrentBlockCoinbaseCall, N>
pub fn getCurrentBlockCoinbase( &self, ) -> SolCallBuilder<&P, getCurrentBlockCoinbaseCall, N>
Creates a new call builder for the [getCurrentBlockCoinbase] function.
Sourcepub fn getCurrentBlockDifficulty(
&self,
) -> SolCallBuilder<&P, getCurrentBlockDifficultyCall, N>
pub fn getCurrentBlockDifficulty( &self, ) -> SolCallBuilder<&P, getCurrentBlockDifficultyCall, N>
Creates a new call builder for the [getCurrentBlockDifficulty] function.
Sourcepub fn getCurrentBlockGasLimit(
&self,
) -> SolCallBuilder<&P, getCurrentBlockGasLimitCall, N>
pub fn getCurrentBlockGasLimit( &self, ) -> SolCallBuilder<&P, getCurrentBlockGasLimitCall, N>
Creates a new call builder for the [getCurrentBlockGasLimit] function.
Sourcepub fn getCurrentBlockTimestamp(
&self,
) -> SolCallBuilder<&P, getCurrentBlockTimestampCall, N>
pub fn getCurrentBlockTimestamp( &self, ) -> SolCallBuilder<&P, getCurrentBlockTimestampCall, N>
Creates a new call builder for the [getCurrentBlockTimestamp] function.
Sourcepub fn getEthBalance(
&self,
addr: Address,
) -> SolCallBuilder<&P, getEthBalanceCall, N>
pub fn getEthBalance( &self, addr: Address, ) -> SolCallBuilder<&P, getEthBalanceCall, N>
Creates a new call builder for the [getEthBalance] function.
Sourcepub fn getLastBlockHash(&self) -> SolCallBuilder<&P, getLastBlockHashCall, N>
pub fn getLastBlockHash(&self) -> SolCallBuilder<&P, getLastBlockHashCall, N>
Creates a new call builder for the [getLastBlockHash] function.
Sourcepub fn tryAggregate(
&self,
requireSuccess: bool,
calls: Vec<<Call as SolType>::RustType>,
) -> SolCallBuilder<&P, tryAggregateCall, N>
pub fn tryAggregate( &self, requireSuccess: bool, calls: Vec<<Call as SolType>::RustType>, ) -> SolCallBuilder<&P, tryAggregateCall, N>
Creates a new call builder for the [tryAggregate] function.
Sourcepub fn tryBlockAndAggregate(
&self,
requireSuccess: bool,
calls: Vec<<Call as SolType>::RustType>,
) -> SolCallBuilder<&P, tryBlockAndAggregateCall, N>
pub fn tryBlockAndAggregate( &self, requireSuccess: bool, calls: Vec<<Call as SolType>::RustType>, ) -> SolCallBuilder<&P, tryBlockAndAggregateCall, N>
Creates a new call builder for the [tryBlockAndAggregate] function.
Source§impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Event filters.
impl<P: Provider<N>, N: Network> Multicall3Instance<P, N>
Event filters.
Sourcepub fn event_filter<E: SolEvent>(&self) -> Event<&P, E, N>
pub fn event_filter<E: SolEvent>(&self) -> Event<&P, E, N>
Creates a new event filter using this contract instance’s provider and address.
Note that the type can be any event, not just those defined in this contract. Prefer using the other methods for building type-safe event filters.
Trait Implementations§
Source§impl<P: Clone, N: Clone> Clone for Multicall3Instance<P, N>
impl<P: Clone, N: Clone> Clone for Multicall3Instance<P, N>
Source§fn clone(&self) -> Multicall3Instance<P, N>
fn clone(&self) -> Multicall3Instance<P, N>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<P, N> Freeze for Multicall3Instance<P, N>where
P: Freeze,
impl<P, N> RefUnwindSafe for Multicall3Instance<P, N>where
P: RefUnwindSafe,
N: RefUnwindSafe,
impl<P, N> Send for Multicall3Instance<P, N>
impl<P, N> Sync for Multicall3Instance<P, N>
impl<P, N> Unpin for Multicall3Instance<P, N>
impl<P, N> UnsafeUnpin for Multicall3Instance<P, N>where
P: UnsafeUnpin,
impl<P, N> UnwindSafe for Multicall3Instance<P, N>where
P: UnwindSafe,
N: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
propagate-header only.§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
add-extension only.§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
map-request-body only.§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
compression-br or compression-deflate or compression-gzip or compression-zstd only.§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
sensitive-headers only.§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
catch-panic only.500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
limit only.413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.