NAC_Blockchain/charter-std-zh/README.md

290 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 // 初始供应量
)
{
// 构造函数逻辑
}
/// 批量转账
公开 函数 批量转账(接收者列表: 数组<地址>, 数额列表: 数组<u256>) -> bool {
要求(接收者列表.长度() == 数额列表.长度(), "长度不匹配");
循环 i 在 0..接收者列表.长度() {
转移(接收者列表[i], 数额列表[i]);
}
返回 真;
}
}
```
### 2. 使用GNACS资产分类
```charter
使用 资产::gnacs::{GNACS编码, 资产大类, 资产中类};
/// 房地产资产合约
合约 房地产资产 {
私有 _gnacs编码: GNACS编码;
构造函数(房产编号: 字符串) {
// 940100... 表示房地产资产
_gnacs编码 = GNACS编码::新建(
资产大类::不动产,
资产中类::住宅,
房产编号
);
}
公开 函数 获取资产分类() -> 字符串 {
返回 _gnacs编码.转为字符串();
}
}
```
### 3. 实现治理投票
```charter
使用 治理::投票::{投票合约, 提案状态};
使用 治理::提案::提案;
/// 社区治理合约
合约 社区治理 实现 投票合约 {
私有 _提案列表: 映射<u256, 提案>;
私有 _提案计数: 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**
**让中文开发者用母语编写区块链智能合约 🚀**