本文主要是介绍Truffle Openzeppelin 实例(2022版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 构建目录结构
打开cmd,新建一个文件夹,ooxxb,进入文件夹
2. 用truffle初始化项目
输入
truffle init
3. 引入Openzeppelin
github地址
npm install @openzeppelin/contracts
可以看到项目文件夹下多了一个文件夹node_modules
package.json文件里也多了一个依赖包,说明引入成功!
4. 新建代币的solidity代码文件
在contracts文件夹下新建一个文件OoxxCoin.sol,内容为:
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;import "../node_modules/@OpenZeppelin/contracts/token/ERC20/ERC20.sol";contract OoxxCoin is ERC20 {constructor() ERC20("OoxxCoin", "ooxxb") {_mint(msg.sender, 666666);// 初始化666666个ooxxb}
}
5. 新建部署文件
在migrations文件夹下新增2_deploy_ooxxcoin.js,内容为:
const OoxxCoin = artifacts.require("OoxxCoin");module.exports = function (deployer) {deployer.deploy(OoxxCoin);
};
具体说明可参考这篇文章
6. 修改项目配置文件
打开项目根目录文件下的truffle-config.js
搜索solc,把version注释打开,改成0.8.1(因为Openzeppelin标明了编译要0.8.0版本以上)
7. 编译
命令行输入开发环境
truffle develop
打开develop模式后,输入
compile
具体说明可参考这篇文章
8. 部署
输入
migrate
具体说明可参考这篇文章
9. 验证结果
- 在命令行先输入:
let contract;
回车 - 再输入:
OoxxCoin.deployed().then(instance => contract = instance)
回车 - 再输入
contract.name();
如图,可以看到结果正确!
10. 代币使用
在truffle develop命令后出现的10个虚拟账号,默认部署合约用的是第一个地址来存放发行总量,接下来用前3个虚拟账号来模拟操作
- 0xc5965f591942d77e06e8a992de650d0044034efd
- 0xd3648210093776256360315f16f443a67b33e5ff
- 0x221b2b110afc7261347ebddb738a37338724a673
10.1 查询代币发行总量
输入
contract.totalSupply();
10.2 查询某个账户余额
- 查询第一个账户0xc5965f591942d77e06e8a992de650d0044034efd余额
contract.balanceOf("0xc5965f591942d77e06e8a992de650d0044034efd");
PS:默认部署合约用的是第一个地址来存放发行总量,所以可以查到余额等于发行总量。
- 查询第二个账户0xd3648210093776256360315f16f443a67b33e5ff余额
contract.balanceOf("0xd3648210093776256360315f16f443a67b33e5ff");
这次就查到余额为0了
- 查询第三个账户0x221b2b110afc7261347ebddb738a37338724a673余额
contract.balanceOf("0x221b2b110afc7261347ebddb738a37338724a673");
同样余额为0
10.3 给第二个账户打6000代币
输入
contract.transfer("0xd3648210093776256360315f16f443a67b33e5ff",6000);
查询第二个账户余额,有6000,结果正确
contract.balanceOf("0xd3648210093776256360315f16f443a67b33e5ff");
查询发行量余额,666666-6000=66066,结果正确
contract.balanceOf("0xc5965f591942d77e06e8a992de650d0044034efd");
over,enjoy!
这篇关于Truffle Openzeppelin 实例(2022版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!