ic_web3_rs::contract

Struct Contract

Source
pub struct Contract<T: Transport> { /* private fields */ }
Expand description

Ethereum Contract Interface

Implementations§

Source§

impl<T: Transport> Contract<T>

Source

pub async fn sign( &self, func: &str, params: impl Tokenize, options: Options, from: String, key_info: KeyInfo, chain_id: u64, ) -> Result<SignedTransaction>

Source

pub async fn signed_call( &self, func: &str, params: impl Tokenize, options: Options, from: String, key_info: KeyInfo, chain_id: u64, ) -> Result<H256>

Submit contract call transaction to the transaction pool.

Note this function DOES NOT wait for any confirmations, so there is no guarantees that the call is actually executed. If you’d rather wait for block inclusion, please use [signed_call_with_confirmations] instead.

Source

pub async fn signed_call_with_confirmations( &self, func: &str, params: impl Tokenize, options: Options, from: String, confirmations: usize, key_info: KeyInfo, chain_id: u64, ) -> Result<TransactionReceipt>

Source§

impl<T: Transport> Contract<T>

Source

pub fn new(eth: Eth<T>, address: Address, abi: Contract) -> Self

Creates new Contract Interface given blockchain address and ABI

Source

pub fn from_json(eth: Eth<T>, address: Address, json: &[u8]) -> Result<Self>

Creates new Contract Interface given blockchain address and JSON containing ABI

Source

pub fn abi(&self) -> &Contract

Get the underlying contract ABI.

Source

pub fn address(&self) -> Address

Returns contract address

Source

pub async fn call<P>( &self, func: &str, params: P, from: Address, options: Options, ) -> Result<H256>
where P: Tokenize,

Execute a contract function

Source

pub async fn call_with_confirmations( &self, func: &str, params: impl Tokenize, from: Address, options: Options, confirmations: usize, ) -> Result<TransactionReceipt>

Execute a contract function and wait for confirmations

Source

pub async fn estimate_gas<P>( &self, func: &str, params: P, from: Address, options: Options, ) -> Result<U256>
where P: Tokenize,

Estimate gas required for this function call.

Source

pub async fn _estimate_gas( &self, from: Address, tx: &TransactionParameters, call_options: CallOptions, ) -> Result<U256>

Source

pub fn query<R, A, B, P>( &self, func: &str, params: P, from: A, options: Options, block: B, ) -> impl Future<Output = Result<R>> + '_

Call constant function

Source

pub async fn events<A, B, C, R>( &self, event: &str, topic0: A, topic1: B, topic2: C, options: CallOptions, ) -> Result<Vec<R>>
where A: Tokenize, B: Tokenize, C: Tokenize, R: Detokenize,

Find events matching the topics.

Trait Implementations§

Source§

impl<T: Clone + Transport> Clone for Contract<T>

Source§

fn clone(&self) -> Contract<T>

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<T: Debug + Transport> Debug for Contract<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Contract<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Contract<T>
where T: RefUnwindSafe,

§

impl<T> Send for Contract<T>
where T: Send,

§

impl<T> Sync for Contract<T>
where T: Sync,

§

impl<T> Unpin for Contract<T>
where T: Unpin,

§

impl<T> UnwindSafe for Contract<T>
where T: UnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

Source§

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

Source§

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