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

相关文章

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

Java Websocket实例【服务端与客户端实现全双工通讯】

Java Websocket实例【服务端与客户端实现全双工通讯】 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏 览器需要不断的向服务器发出请求,然而HTTP

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

OpenStack离线Train版安装系列—11.5实例使用-Cinder存储服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

实例demo理解面向接口思想

浅显的理解面向接口编程 Android开发的语言是java,至少目前是,所以理解面向接口的思想是有必要的。下面通过一个简单的例子来理解。具体的概括我也不知道怎么说。 例子: 现在我们要开发一个应用,模拟移动存储设备的读写,即计算机与U盘、MP3、移动硬盘等设备进行数据交换。已知要实现U盘、MP3播放器、移动硬盘三种移动存储设备,要求计算机能同这三种设备进行数据交换,并且以后可能会有新的第三方的