# Charter标准库(中文版) **版本**: v1.0.0 **语言**: 简体中文 **对应英文版**: charter-std v1.0.0 --- ## 📚 简介 Charter标准库(中文版)是NAC原生智能合约语言Charter的中文标准库,提供了完整的中文关键字和API接口,让中文开发者能够使用母语进行区块链智能合约开发。 **设计原则**: - ✅ **原生中文** - 不是翻译,而是原生中文实现 - ✅ **功能完整** - 与英文版功能完全一致 - ✅ **语义清晰** - 中文命名更符合中文思维习惯 - ✅ **易于学习** - 降低中文开发者的学习门槛 --- ## 📦 模块结构 ``` charter-std-zh/ ├── acc/ # 资产凭证合约(Asset Certificate Contract) │ ├── acc20.ch # ACC-20可替代资产协议 │ ├── acc721.ch # ACC-721非同质化资产协议 │ ├── acc1155.ch # ACC-1155多资产协议 │ └── acc20c.ch # ACC-20C跨链资产协议 ├── asset/ # 资产管理模块 │ ├── gnacs.ch # GNACS资产分类系统 │ ├── lifecycle.ch # 资产生命周期管理 │ └── metadata.ch # 资产元数据管理 ├── defi/ # 去中心化金融模块 │ ├── lending.ch # 借贷协议 │ ├── liquidity.ch # 流动性协议 │ └── marketplace.ch# 市场协议 ├── governance/ # 治理模块 │ ├── proposal.ch # 提案系统 │ └── voting.ch # 投票系统 ├── sovereignty/ # 主权管理模块 │ ├── compliance.ch # 合规管理 │ ├── registry.ch # 注册管理 │ └── rules.ch # 规则引擎 └── utils/ # 工具模块 ├── crypto.ch # 密码学工具 └── math.ch # 数学工具 ``` --- ## 🔤 中英文关键字对照表 ### 基本关键字 | 中文 | 英文 | 说明 | |------|------|------| | 合约 | contract | 智能合约 | | 接口 | interface | 接口定义 | | 函数 | function | 函数 | | 构造函数 | constructor | 构造函数 | | 事件 | event | 事件 | | 修饰符 | modifier | 修饰符 | | 使用 | use | 导入模块 | | 实现 | implements | 实现接口 | | 继承 | extends | 继承合约 | ### 访问控制 | 中文 | 英文 | 说明 | |------|------|------| | 公开 | public | 公开访问 | | 私有 | private | 私有访问 | | 内部 | internal | 内部访问 | | 外部 | external | 外部访问 | ### 数据类型 | 中文 | 英文 | 说明 | |------|------|------| | 地址 | Address | 地址类型 | | 字符串 | String | 字符串类型 | | 布尔 | bool | 布尔类型 | | 映射 | mapping | 映射类型 | | 数组 | array | 数组类型 | ### 控制流 | 中文 | 英文 | 说明 | |------|------|------| | 如果 | if | 条件判断 | | 否则 | else | 否则分支 | | 循环 | for | 循环 | | 当 | while | 当型循环 | | 返回 | return | 返回值 | | 中断 | break | 中断循环 | | 继续 | continue | 继续循环 | ### 特殊关键字 | 中文 | 英文 | 说明 | |------|------|------| | 要求 | require | 条件检查 | | 断言 | assert | 断言检查 | | 回退 | revert | 回退交易 | | 触发 | emit | 触发事件 | | 消息 | msg | 消息对象 | | 区块 | block | 区块对象 | | 交易 | tx | 交易对象 | ### 常量 | 中文 | 英文 | 说明 | |------|------|------| | 真 | true | 真值 | | 假 | false | 假值 | | 空 | null | 空值 | --- ## 📖 使用示例 ### 1. 创建ACC-20代币合约 ```charter 使用 acc::acc20::ACC20基础; 使用 资产::gnacs::GNACS编码; 使用 主权::规则::主权类型; /// 我的代币合约 合约 我的代币 继承 ACC20基础 { 构造函数() ACC20基础( "我的代币", // 名称 "MTK", // 符号 18, // 小数位 GNACS编码::从字符串("940100..."), // GNACS编码 主权类型::完全主权, // 主权类型 1000000 * 10**18 // 初始供应量 ) { // 构造函数逻辑 } /// 批量转账 公开 函数 批量转账(接收者列表: 数组<地址>, 数额列表: 数组) -> bool { 要求(接收者列表.长度() == 数额列表.长度(), "长度不匹配"); 循环 i 在 0..接收者列表.长度() { 转移(接收者列表[i], 数额列表[i]); } 返回 真; } } ``` ### 2. 使用GNACS资产分类 ```charter 使用 资产::gnacs::{GNACS编码, 资产大类, 资产中类}; /// 房地产资产合约 合约 房地产资产 { 私有 _gnacs编码: GNACS编码; 构造函数(房产编号: 字符串) { // 940100... 表示房地产资产 _gnacs编码 = GNACS编码::新建( 资产大类::不动产, 资产中类::住宅, 房产编号 ); } 公开 函数 获取资产分类() -> 字符串 { 返回 _gnacs编码.转为字符串(); } } ``` ### 3. 实现治理投票 ```charter 使用 治理::投票::{投票合约, 提案状态}; 使用 治理::提案::提案; /// 社区治理合约 合约 社区治理 实现 投票合约 { 私有 _提案列表: 映射; 私有 _提案计数: u256; /// 创建提案 公开 函数 创建提案(标题: 字符串, 描述: 字符串) -> u256 { _提案计数 += 1; _提案列表[_提案计数] = 提案::新建( _提案计数, 标题, 描述, 消息.发送者 ); 返回 _提案计数; } /// 投票 公开 函数 投票(提案编号: u256, 支持: 布尔) { 要求(_提案列表[提案编号].状态() == 提案状态::进行中, "提案未进行中"); _提案列表[提案编号].投票(消息.发送者, 支持); } } ``` --- ## 🎯 与英文版的对应关系 每个中文标准库文件都对应一个英文版文件: | 中文版 | 英文版 | 功能 | |--------|--------|------| | acc/acc20.ch | acc/acc20.ch | ACC-20协议 | | acc/acc721.ch | acc/acc721.ch | ACC-721协议 | | asset/gnacs.ch | asset/gnacs.ch | GNACS系统 | | defi/lending.ch | defi/lending.ch | 借贷协议 | | governance/voting.ch | governance/voting.ch | 投票系统 | | sovereignty/compliance.ch | sovereignty/compliance.ch | 合规管理 | | utils/crypto.ch | utils/crypto.ch | 密码学工具 | | utils/math.ch | utils/math.ch | 数学工具 | --- ## 🔧 编译器集成 Charter编译器(charterc)会根据配置自动选择对应的标准库: ```toml # charterc.toml [compiler] language = "zh-CN" # 使用中文标准库 # language = "en-US" # 使用英文标准库 ``` 编译器会自动: 1. 解析中文关键字 2. 加载中文标准库 3. 生成相同的NVM字节码 **重要**:中英文版本生成的字节码完全一致,可以互操作! --- ## 📚 文档 - [Charter语言规范(中文版)](../docs/CHARTER_LANGUAGE_SPECIFICATION_ZH.md) - [ACC-20协议详解](./acc/ACC20_GUIDE.md) - [GNACS使用指南](./asset/GNACS_GUIDE.md) - [治理系统教程](./governance/GOVERNANCE_TUTORIAL.md) --- ## 🤝 贡献指南 欢迎贡献中文标准库! ### 贡献流程 1. Fork本仓库 2. 创建功能分支 3. 编写中文标准库代码 4. 确保与英文版功能一致 5. 提交Pull Request ### 命名规范 - 使用清晰的中文命名 - 保持与英文版的语义对应 - 遵循NAC原生规范 --- ## 📄 许可证 MIT License --- **Charter标准库(中文版) v1.0.0** **让中文开发者用母语编写区块链智能合约 🚀**