Struct ethcontract::contract::Instance
source · pub struct Instance<T: Transport> {
pub defaults: MethodDefaults,
/* private fields */
}
Expand description
Represents a contract instance at an address. Provides methods for contract interaction.
Fields§
§defaults: MethodDefaults
Default method parameters to use when sending method transactions or querying method calls.
Implementations§
source§impl<T: Transport> Instance<T>
impl<T: Transport> Instance<T>
sourcepub fn at(web3: Web3<T>, interface: Arc<Interface>, address: Address) -> Self
pub fn at(web3: Web3<T>, interface: Arc<Interface>, address: Address) -> Self
Creates a new contract instance with the specified web3
provider with
the given Abi
at the given Address
.
Note that this does not verify that a contract with a matching Abi
is
actually deployed at the given address.
sourcepub fn with_deployment_info(
web3: Web3<T>,
interface: Arc<Interface>,
address: Address,
deployment_information: Option<DeploymentInformation>
) -> Self
pub fn with_deployment_info( web3: Web3<T>, interface: Arc<Interface>, address: Address, deployment_information: Option<DeploymentInformation> ) -> Self
Creates a new contract instance with the specified web3
provider with
the given Abi
at the given Address
and an optional transaction hash.
This hash is used to retrieve contract related information such as the
creation block (which is useful for fetching all historic events).
Note that this does not verify that a contract with a matching Abi
is
actually deployed at the given address nor that the transaction hash,
when provided, is actually for this contract deployment.
sourcepub async fn deployed(
web3: Web3<T>,
contract: Contract
) -> Result<Self, DeployError>
pub async fn deployed( web3: Web3<T>, contract: Contract ) -> Result<Self, DeployError>
Locates a deployed contract based on the current network ID reported by
the web3
provider from the given Contract
’s ABI and networks.
Note that this does not verify that a contract with a matching Abi
is
actually deployed at the given address.
sourcepub fn builder<P>(
web3: Web3<T>,
contract: Contract,
params: P
) -> Result<DeployBuilder<T, Self>, DeployError>where
P: Tokenize,
pub fn builder<P>(
web3: Web3<T>,
contract: Contract,
params: P
) -> Result<DeployBuilder<T, Self>, DeployError>where
P: Tokenize,
Creates a contract builder with the specified web3
provider and the
given Contract
byte code. This allows the contract deployment
transaction to be configured before deploying the contract.
sourcepub fn link_and_deploy<'a, P, I>(
web3: Web3<T>,
contract: Contract,
params: P,
libraries: I
) -> Result<DeployBuilder<T, Self>, DeployError>
pub fn link_and_deploy<'a, P, I>( web3: Web3<T>, contract: Contract, params: P, libraries: I ) -> Result<DeployBuilder<T, Self>, DeployError>
Deploys a contract with the specified web3
provider with the given
Contract
byte code and linking libraries.
sourcepub fn web3(&self) -> Web3<T>
pub fn web3(&self) -> Web3<T>
Retrieve the underlying web3 provider used by this contract instance.
sourcepub fn deployment_information(&self) -> Option<DeploymentInformation>
pub fn deployment_information(&self) -> Option<DeploymentInformation>
Returns the hash for the transaction that deployed the contract if it is
known, None
otherwise.
sourcepub fn method<P, R>(
&self,
signature: impl Into<Signature<P, R>>,
params: P
) -> AbiResult<MethodBuilder<T, R>>
pub fn method<P, R>( &self, signature: impl Into<Signature<P, R>>, params: P ) -> AbiResult<MethodBuilder<T, R>>
Returns a method builder to setup a call or transaction on a smart contract method. Note that calls just get evaluated on a node but do not actually commit anything to the block chain.
sourcepub fn view_method<P, R>(
&self,
signature: impl Into<Signature<P, R>>,
params: P
) -> AbiResult<ViewMethodBuilder<T, R>>
pub fn view_method<P, R>( &self, signature: impl Into<Signature<P, R>>, params: P ) -> AbiResult<ViewMethodBuilder<T, R>>
Returns a view method builder to setup a call to a smart contract. View method builders can’t actually send transactions and only query contract state.
sourcepub fn fallback<D>(&self, data: D) -> AbiResult<MethodBuilder<T, ()>>
pub fn fallback<D>(&self, data: D) -> AbiResult<MethodBuilder<T, ()>>
Returns a method builder to setup a call to a smart contract’s fallback function.
This method will error if the ABI does not contain an entry for a fallback function.
sourcepub fn event<E>(&self, signature: H256) -> AbiResult<EventBuilder<T, E>>where
E: Tokenize,
pub fn event<E>(&self, signature: H256) -> AbiResult<EventBuilder<T, E>>where
E: Tokenize,
Returns a event builder to setup an event stream for a smart contract that emits events for the specified Solidity event by name.
sourcepub fn all_events(&self) -> AllEventsBuilder<T, RawLog>
pub fn all_events(&self) -> AllEventsBuilder<T, RawLog>
Returns a log stream that emits a log for every new event emitted after the stream was created for this contract instance.