# NAC公链钱包核心模块 NAC钱包是NAC生态中用户与区块链交互的核心工具,它不仅管理密钥和资产,更确保每一笔交易在宪法框架内合规执行。 ## 📦 模块概览 ### 核心模块 1. **密钥管理模块** (`key_manager.rs`) - 支持三种签名算法:Ed25519、BLS、Dilithium5 - BIP39助记词生成与恢复 - BIP44路径派生 (`m/44'/626'/0'/0/index`) - 安全的密钥存储和导出 2. **地址模块** (`address.rs`) - 32字节结构化地址 - 包含:版本 + 账户类型 + KYC等级 + 区域 + 公钥哈希 - 支持4种账户类型:个人、企业、合约、系统 - 支持4级KYC:无认证、基础、标准、高级 3. **交易模块** (`transaction.rs`) - 完整的交易构造流程 - 支持多种交易类型:XTZH/XIC转账、ACC-20/ACC-1400代币转账 - Builder模式构造交易 - CR(宪法收据)集成 - 交易签名和验证 4. **宪法收据模块** (`constitutional_receipt.rs`) - CR生成和验证 - CEE节点交互 - 签名管理 - 有效期检查 5. **GNACS解析器** (`gnacs_parser.rs`) - 48位GNACS编码解析 - 资产类型识别 - 风险等级评估 - 合规等级判断 6. **网络通信模块** (`network.rs`) - RPC客户端 - CEE节点通信 - 余额查询 - 交易广播 7. **存储模块** (`storage.rs`) - 密钥库文件加密存储 - AES-256-GCM加密 - PBKDF2密钥派生 - JSON格式存储 8. **账户管理模块** (`account.rs`) - 账户信息管理 - 余额追踪 - Nonce管理 ## 🚀 快速开始 ### 安装依赖 ```bash cd nac-wallet-core cargo build ``` ### 使用示例 #### 1. 创建钱包 ```rust use nac_wallet_core::*; // 生成密钥对 let keypair = KeyPair::generate(SignatureAlgorithm::Ed25519)?; // 计算公钥哈希 let pubkey_hash = keypair.public_key_hash(); // 创建结构化地址 let address = StructuredAddress::new( AccountType::Personal, WalletKYCLevel::Standard, 156, // 中国 pubkey_hash, ); ``` #### 2. 构造交易 ```rust use nac_wallet_core::transaction::*; // 使用Builder模式构造交易 let tx = TransactionBuilder::new(TransactionType::XTZHTransfer) .from(from_address) .to(to_address) .amount(1000000) // 1 XTZH .nonce(1) .build()?; ``` #### 3. 请求宪法收据 ```rust use nac_wallet_core::constitutional_receipt::*; // 创建CEE请求 let request = CEERequest::new(tx.payload.hash()); // 发送到CEE节点 let receipt = network_client.request_cr(request).await?; // 附加到交易 tx.attach_receipt(receipt); ``` #### 4. 签名和广播 ```rust // 计算签名消息 let message = tx.signing_message(); // 签名 let signature = keypair.sign(&message)?; tx.sign(signature); // 验证交易 tx.verify()?; // 广播 let tx_hash = network_client.broadcast_transaction(&tx.to_bytes()?).await?; ``` ## 🔧 CLI工具 ### 安装 ```bash cd nac-wallet-cli cargo build --release ``` ### 使用 ```bash # 创建钱包 nac-wallet-cli create --account-type personal --kyc-level 2 --region 156 # 查询余额 nac-wallet-cli balance
# 发送交易 nac-wallet-cli send