Truffle Openzeppelin 实例(2022版)

2024-09-03 07:08

本文主要是介绍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版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132366

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例