solidity_bindgen/
providers.rs

1use async_trait::async_trait;
2use web3::contract::tokens::{Detokenize, Tokenize};
3use web3::contract::Options;
4use web3::Error;
5
6#[async_trait]
7pub trait CallProvider {
8    async fn call<Out: Detokenize + Unpin + Send, Params: Tokenize + Send>(
9        &self,
10        name: &'static str,
11        params: Params,
12    ) -> Result<Out, Error>;
13}
14
15#[async_trait]
16pub trait SendProvider {
17    type Out;
18    async fn send<Params: Tokenize + Send>(
19        &self,
20        func: &'static str,
21        params: Params,
22        options: Option<Options>,
23        confirmations: Option<usize>,
24    ) -> Result<Self::Out, web3::Error>;
25}