pub mod client;
pub mod sync;
pub mod validator;
pub mod quantum_harmony;
pub use client::LightClient;
pub use sync::SyncState;
pub use validator::ValidatorMode;
pub use quantum_harmony::{
QuantumHarmonyClient, QuantumHarmonyConfig, SecurityTier,
DocumentAttestation, DocumentCategory, WitnessSignature,
RicardianContract, ContractClause, ContractParty, ContractStatus, ContractAmendment,
ConnectionState,
};
use crate::{Error, Result};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BlockHeader {
pub hash: String,
pub number: u64,
pub parent_hash: String,
pub state_root: String,
pub extrinsics_root: String,
pub timestamp: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TxReceipt {
pub tx_hash: String,
pub block_hash: String,
pub block_number: u64,
pub tx_index: u32,
pub success: bool,
pub error: Option<String>,
}
#[derive(Debug, Clone, Serialize)]
pub struct RpcRequest {
pub jsonrpc: String,
pub id: u64,
pub method: String,
pub params: serde_json::Value,
}
impl RpcRequest {
pub fn new(id: u64, method: impl Into<String>, params: serde_json::Value) -> Self {
Self {
jsonrpc: "2.0".to_string(),
id,
method: method.into(),
params,
}
}
}
#[derive(Debug, Clone, Deserialize)]
pub struct RpcResponse {
pub jsonrpc: String,
pub id: u64,
pub result: Option<serde_json::Value>,
pub error: Option<RpcError>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct RpcError {
pub code: i32,
pub message: String,
pub data: Option<serde_json::Value>,
}