1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
use async_trait::async_trait; use crate::traits::{Context, ExecResp}; use crate::types::{Address, Epoch, Hash, Receipt, SignedTransaction}; use crate::ProtocolResult; #[async_trait] pub trait APIAdapter: Send + Sync { async fn insert_signed_txs( &self, ctx: Context, signed_tx: SignedTransaction, ) -> ProtocolResult<()>; async fn get_epoch_by_id(&self, ctx: Context, epoch_id: Option<u64>) -> ProtocolResult<Epoch>; async fn get_receipt_by_tx_hash(&self, ctx: Context, tx_hash: Hash) -> ProtocolResult<Receipt>; async fn get_transaction_by_hash( &self, ctx: Context, tx_hash: Hash, ) -> ProtocolResult<SignedTransaction>; async fn query_service( &self, ctx: Context, epoch_id: u64, cycels_limit: u64, cycles_price: u64, caller: Address, service_name: String, method: String, payload: String, ) -> ProtocolResult<ExecResp>; }