NAC_Blockchain/charter-std-zh/README.md

7.6 KiB
Raw Blame History

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代币合约

使用 acc::acc20::ACC20基础;
使用 资产::gnacs::GNACS编码;
使用 主权::规则::主权类型;

/// 我的代币合约
合约 我的代币 继承 ACC20基础 {
    构造函数() 
        ACC20基础(
            "我的代币",           // 名称
            "MTK",               // 符号
            18,                  // 小数位
            GNACS编码::从字符串("940100..."),  // GNACS编码
            主权类型::完全主权,   // 主权类型
            1000000 * 10**18     // 初始供应量
        ) 
    {
        // 构造函数逻辑
    }
    
    /// 批量转账
    公开 函数 批量转账(接收者列表: 数组<地址>, 数额列表: 数组<u256>) -> bool {
        要求(接收者列表.长度() == 数额列表.长度(), "长度不匹配");
        
        循环 i 在 0..接收者列表.长度() {
            转移(接收者列表[i], 数额列表[i]);
        }
        
        返回 真;
    }
}

2. 使用GNACS资产分类

使用 资产::gnacs::{GNACS编码, 资产大类, 资产中类};

/// 房地产资产合约
合约 房地产资产 {
    私有 _gnacs编码: GNACS编码;
    
    构造函数(房产编号: 字符串) {
        // 940100... 表示房地产资产
        _gnacs编码 = GNACS编码::新建(
            资产大类::不动产,
            资产中类::住宅,
            房产编号
        );
    }
    
    公开 函数 获取资产分类() -> 字符串 {
        返回 _gnacs编码.转为字符串();
    }
}

3. 实现治理投票

使用 治理::投票::{投票合约, 提案状态};
使用 治理::提案::提案;

/// 社区治理合约
合约 社区治理 实现 投票合约 {
    私有 _提案列表: 映射<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会根据配置自动选择对应的标准库

# charterc.toml
[compiler]
language = "zh-CN"  # 使用中文标准库
# language = "en-US"  # 使用英文标准库

编译器会自动:

  1. 解析中文关键字
  2. 加载中文标准库
  3. 生成相同的NVM字节码

重要:中英文版本生成的字节码完全一致,可以互操作!


📚 文档


🤝 贡献指南

欢迎贡献中文标准库!

贡献流程

  1. Fork本仓库
  2. 创建功能分支
  3. 编写中文标准库代码
  4. 确保与英文版功能一致
  5. 提交Pull Request

命名规范

  • 使用清晰的中文命名
  • 保持与英文版的语义对应
  • 遵循NAC原生规范

📄 许可证

MIT License


Charter标准库中文版 v1.0.0
让中文开发者用母语编写区块链智能合约 🚀