本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
ERC-20
概述
在 Kaia 上创建可替代代币的步骤与在以太坊上类似,它使用 ERC20 标准。
为了遵循标准,您将部署一个能实现以下事件和功能的合同:
function name() public view returns (string) //optionalfunction symbol() public view returns (string) //optionalfunction decimals() public view returns (uint8) //optionalfunction totalSupply() public view returns (uint256)function balanceOf(address _owner) public view returns (uint256 balance)function transfer(address _to, uint256 _value) public returns (bool success)function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)function approve(address _spender, uint256 _value) public returns (bool success)function allowance(address _owner, address _spender) public view returns (uint256 remaining)event Transfer(address indexed _from, address indexed _to, uint256 _value)event Approval(address indexed _owner, address indexed _spender, uint256 _value)
- name:返回令牌名称的方法。
- 符号:返回标记符号的方法。
- 小数:返回令牌使用的小数位数的方法。它用于定义标记的最小单位。例如,如果 ERC-20 令牌的小数点后数值为 18,这就意味着该令牌可以分割到小数点后 18 位。
- 总供应量:定义代币总供应量的方法;当达到此限额时,智能合约将拒绝创建新代币。
- balanceOf:返回钱包地址拥有的代币数量的方法。
- 转移:从总供应量中提取一定数量的代币并将其交给用户的方法。
- transferFrom:另一种传输方式,用于在用户之间传输令牌。
- 批准:该方法用于验证是否允许智能合约向用户分配一定数量的代币,同时考虑到总供应量。
- allowance:除了检查一个用户是否有足够的余额向另一个用户发送一定数量的代币外,该方法与批准方法完全相同。
- 转移事件:代币转移时发出的事件
- 批准事件:当令牌获得批准时发出。
入门
在本节中,您将使用 Remix Online IDE 创建和部署您的 ERC20 令牌合约。不同团队开发了多种符合 ERC20 标准的代币,每种代币的开发都考虑了多个因素。为了方便和安全起见,我们将使用 OpenZeppelin ERC-20 合约来创建我们的令牌。有了 OpenZeppelin,我们无需编写整个 ERC-20 接口。相反,我们可以导入库合同并使用它的函数。
第 1 步:创建 ERC20 代币合约
开放式齐柏林合同向导
- 打开 OpenZeppelin 合同向导
- 选择 ERC20。
- 为令牌提供名称和符号。例如分别为 Greek 和 GK。
- 在 Premint 字段中,将其设置为 10,000。这将为部署者创建初始数量的代币。
- 在 "功能"部分,选中 "可铸币 "复选框,允许特权账户(仅业主)创建更多供应。
- 点击复制图标,复制代码以便在下一节的 Remix 中使用。

第 2 步:部署 ERC20 代币合约
混音 IDE
- 在 Remix 中,导航至 ** 文件资源管理器**,在 contracts 文件夹中新建一个名为
Greek.sol的文件。 - 导航至 Solidity Compiler 选项卡,然后单击 Compile Greek.sol 来编译令牌合约。
- 导航至部署和运行事务选项卡
- 选择 Environment > Injected Provider > MetaMask。
- 在合同下拉菜单中,选择您的合同。例如,希腊语。
- 在 Deploy 字段中,为接收者和 initialOwner 提供构造函数参数。
- 单击 部署/事务

部署后,您可以使用部署合同时使用的账户调用 balanceOf 。您会发现账户中有 1000000000000000000 个代币,如下所示。
由于您在部署上述合约时将十进制值设置为 18,因此它在构造函数中铸造了固定数量的 10000 个代币,其中一个代币的十进制值为 10^18。 TotalSupply 方法将返回已铸造代币的总供应量,也应该是 10000000000000000000000。
