我们的目标: 在BSC测试网创建一个名称为GeekWho Token,标识符为GEEK的TOKEN,发行量为2100w,然后给自己转账一笔。
准备工作:
- 从 https://metamask.io/ 安装MetaMask chrome钱包,创建一个钱包,备份助记词。
- 通过 https://chainlist.org/ 链接到BSC测试网络。
- 在 https://testnet.bnbchain.org/faucet-smart (BSC测试网)领水,部署时需要消耗GAS。
实现步骤:
- 打开remix网址: https://remix.ethereum.org/
- 在默认工作区的文件夹contracts下,新建文件GeekWhoToken.sol
- 在打开的文件里,填写以下内容。
ERC20合约内容:
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
contract GeekWhoToken is ERC20 {
constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {
_mint(msg.sender, 21000000 * 10 **18);
}
}
其中21000000为发行总量。
在左侧按钮,选择编译,当看到有一个绿色对号,代表编译通过。
接下来我们开始合约部署,点击左侧的编译按钮下方的部署&发送交易按钮:
- 选择环境为Injected Provider – MetaMask。
- 保证你的MetaMask当前环境为BSC测试网。
- 在弹出的按钮选择你要链接的地址。
在部署右边点击箭头向下的三角,会让你输入name和symbol。在这里,我们输入
_NAME=GeekWho Token
_SYMBOL=GEEK
点击transact,发送交易到BSC测试网,在弹出的MetaMask确认框,点击确认,开始部署合约写入TOKEN信息。
我们稍等一会儿,就提交成功了。
https://testnet.bscscan.com/tx/0xe94f7bf3b13e93f6a15890628c58e972f76d0555bf1d25ba386be104637c5284
注意事项:
- BSC测试网选择chainid为97的。
[Binance Smart Chain Testnet](https://chainlist.org/chain/97)
ChainID:97
Currency:tBNB
- 注意确认MetaMask的环境是否已经切换BSC测试网,否则部署会不成功。部署合约前,注意要填入TOKEN的名称以及标识符,不然可能部署名称为空的合约。
- 注意数值的精度为10^18,所以发送一个GEEK的数值,在转账时要填的参数值为1000000000000000000。一共18个零。
合约代码解析:
- 第一行注释是机器可读行 (// SPDX-License-Identifier: MIT),这里我指定了MIT许可协议。
- 第二行代码标识我们采用0.8.0以上的编译器进行编译。prama指令必须在代码的第一行,它告知编译器用什么版本将solidity代码转换为机器可读的字节码。
- 第三行是申明了一个GeekWhoToken的合约。关键字 contract告诉编译器你正在声明智能合约。如果你有面向对象编程的经验,你可以理解为有一个GeekWhoToken的类,继承了基类ERC20的全部属性和方法。
- 第四行申明了一个构造函数,传入TOKEN的名称和标识符,并必须调用父类ERC20的构造函数。
- 第五行我们通过_mint函数初始化了发行总量。在构造函数中使用_mint 函数,将 21000000 个代币分配给合约创建者。这里使用了 18 位小数,乘以 10 的 18 次方,表示将代币的总数转换为 wei 单位。
- 实际代码有5行,前2行都是Solidity统一规范,后面3行就是实际发行TOKEN的代码。
合约调用:
在这里,我们通过已部署的合约进行调用:
调用对应的name函数:
调用symbol函数
调用totalSupply函数
调用transfer函数
转账成功交易TX:
https://testnet.bscscan.com/tx/0x967ad0883277320043c3569bb4639c37545481b765d027e1787b9aa6f8192ecd
总结:
- 我们成功地部署一个合约,发行了名称为GeekWho Token,标识符为GEEK的TOKEN,初始总量为2100w。
- 在REMIX IDE下,通过接口成功查询到已部署合约的信息,比如总量、名称、标示符等。
- 合约部署成功后,我们给自己转账一笔,发送1个GEEK给指定的账户。
原文发表在Mirror:https://mirror.xyz/geekwho.eth/ANJNSlDY0sis5RDDkK4Tp1OU7HfTnSRxlyzQavgDr7U
内容仅作日常分享,不可视作投资建议。