129 lines
2.6 KiB
Markdown
129 lines
2.6 KiB
Markdown
# NAC以太坊桥接模块
|
||
|
||
NAC到以太坊的跨链桥接功能,实现资产锁定/解锁、事件监听、交易验证和安全机制。
|
||
|
||
## 功能特性
|
||
|
||
### 1. 资产锁定/解锁
|
||
|
||
- ✅ NAC资产锁定
|
||
- ✅ 以太坊资产解锁
|
||
- ✅ 反向桥接
|
||
- ✅ 多签验证
|
||
|
||
### 2. 事件监听
|
||
|
||
- ✅ NAC链事件监听
|
||
- ✅ 以太坊事件监听
|
||
- ✅ 事件过滤
|
||
- ✅ 事件重放保护
|
||
|
||
### 3. 交易验证
|
||
|
||
- ✅ 跨链交易验证
|
||
- ✅ Merkle证明验证
|
||
- ✅ SPV验证
|
||
- ✅ 欺诈证明
|
||
|
||
### 4. 安全机制
|
||
|
||
- ✅ 资金上限控制
|
||
- ✅ 暂停机制
|
||
- ✅ 紧急提款
|
||
- ✅ 审计日志
|
||
|
||
## 使用示例
|
||
|
||
```rust
|
||
use nac_bridge_ethereum::*;
|
||
|
||
#[tokio::main]
|
||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||
// 创建桥接插件
|
||
let bridge = EthereumBridgePlugin::new(
|
||
"https://eth-mainnet.g.alchemy.com/v2/your-api-key",
|
||
1,
|
||
"0x1234567890123456789012345678901234567890".to_string(),
|
||
).await?;
|
||
|
||
// 查询余额
|
||
let balance = bridge.get_eth_balance("0xYourAddress").await?;
|
||
println!("Balance: {}", balance);
|
||
|
||
// 创建锁定/解锁管理器
|
||
let signers = vec!["signer1".to_string(), "signer2".to_string()];
|
||
let mut manager = LockUnlockManager::new(2, signers);
|
||
|
||
// 记录锁定
|
||
let lock = LockRecord {
|
||
lock_id: "lock1".to_string(),
|
||
eth_tx_hash: "0x123".to_string(),
|
||
amount: 1000,
|
||
token_address: None,
|
||
nac_target_address: [0u8; 32],
|
||
locked_at: 1234567890,
|
||
status: LockStatus::Pending,
|
||
signatures: vec![],
|
||
};
|
||
manager.record_lock(lock)?;
|
||
|
||
// 创建事件监听器
|
||
let mut listener = EventListener::new();
|
||
|
||
// 创建安全管理器
|
||
let config = SecurityConfig::default();
|
||
let mut security = SecurityManager::new(config);
|
||
|
||
// 验证交易金额
|
||
security.validate_amount(1000, "ETH")?;
|
||
|
||
Ok(())
|
||
}
|
||
```
|
||
|
||
## 测试
|
||
|
||
运行测试:
|
||
|
||
```bash
|
||
cargo test
|
||
```
|
||
|
||
测试覆盖范围:
|
||
- 锁定/解锁管理(3个测试)
|
||
- 事件监听(3个测试)
|
||
- 安全机制(3个测试)
|
||
- 以太坊桥接(2个测试)
|
||
- SPV验证(4个测试)
|
||
|
||
## 依赖
|
||
|
||
- `ethers`: 以太坊客户端
|
||
- `tokio`: 异步运行时
|
||
- `serde`: 序列化
|
||
- `chrono`: 时间处理
|
||
- `sha3`: 哈希算法
|
||
- `hex`: 十六进制编码
|
||
|
||
## 版本历史
|
||
|
||
### v0.4.0 (2026-02-18)
|
||
|
||
- ✅ 实现完整的资产锁定/解锁机制
|
||
- ✅ 实现事件监听系统
|
||
- ✅ 实现安全机制
|
||
- ✅ 添加15个单元测试
|
||
- ✅ 代码行数从594行增加到1500+行
|
||
|
||
### v0.3.0
|
||
|
||
- 基础的以太坊桥接功能
|
||
|
||
## 许可证
|
||
|
||
NAC公链项目专有
|
||
|
||
## 作者
|
||
|
||
NAC开发团队
|