#![cfg(not(target_arch = "wasm32"))]
pub mod ethereum;
pub mod solana;
pub mod types;
use async_trait::async_trait;
pub use types::{Chain, TransactionReceipt};
use crate::error::Result;
#[async_trait]
pub trait ChainProvider: Send + Sync {
fn chain(&self) -> Chain;
fn endpoint(&self) -> &str;
async fn get_block_number(&self) -> Result<u64>;
async fn get_balance(&self, address: &str) -> Result<String>;
async fn send_raw_transaction(&self, signed_tx_hex: &str) -> Result<TransactionReceipt>;
async fn get_fee_estimate(&self) -> Result<String>;
}