NAC_Blockchain/nac-cross-chain-bridge/src/lib.rs

99 lines
2.4 KiB
Rust

//! # NAC跨链桥接模块
//!
//! 本模块实现NAC公链与以太坊、BSC等主流区块链之间的资产互通功能。
//!
//! ## 主要功能
//!
//! - **资产锁定/解锁**:在源链上锁定资产,在目标链上铸造/销毁包装资产
//! - **跨链消息传递**:安全可靠的跨链消息协议
//! - **多签验证**:基于验证器池的多签验证机制
//! - **中继网络**:去中心化的中继节点网络
//! - **事件监听**:实时监听各链上的桥接事件
//!
//! ## 使用示例
//!
//! ```rust,no_run
//! use nac_cross_chain_bridge::manager::{BridgeManager, BridgeManagerImpl};
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // 创建桥接管理器
//! let manager = BridgeManagerImpl::new("/path/to/db")?;
//!
//! // 初始化
//! manager.initialize().await?;
//!
//! // 启动桥接
//! manager.start().await?;
//!
//! // 获取状态
//! let status = manager.get_status().await?;
//! println!("Bridge status: {:?}", status);
//!
//! // 停止桥接
//! manager.stop().await?;
//!
//! Ok(())
//! }
//! ```
//!
//! ## 架构说明
//!
//! 详细的架构设计请参考 `ARCHITECTURE.md` 文档。
pub mod types;
pub mod locker;
pub mod unlocker;
pub mod validator;
pub mod relayer;
pub mod eth_listener;
pub mod manager;
// 重新导出常用类型
pub use types::{
ChainId,
MessageType,
AssetInfo,
AssetId,
Address,
Amount,
Signature,
CrossChainMessage,
LockReceipt,
LockStatus,
UnlockReceipt,
UnlockStatus,
UnlockProof,
ValidatorInfo,
RelayerInfo,
BridgeConfig,
BridgeError,
Result,
};
pub use locker::{AssetLocker, AssetLockerImpl};
pub use unlocker::{AssetUnlocker, AssetUnlockerImpl};
pub use validator::{ValidatorPool, ValidatorPoolImpl};
pub use relayer::{Relayer, RelayerImpl, RelayerStats};
pub use eth_listener::{EventListener, EthereumListener, BridgeEvent};
pub use manager::{BridgeManager, BridgeManagerImpl, BridgeStatus};
/// 版本信息
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
/// 初始化日志系统
pub fn init_logger() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.init();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_version() {
assert!(!VERSION.is_empty());
}
}