2、如何发行自己的数字代币(truffle智能合约项目实战)

news2024/9/22 13:29:37

2、如何发行自己的数字代币(truffle智能合约项目实战)

  • 1-Atom IDE插件安装
  • 2-truffle tutorialtoken
  • 3-tutorialtoken源码框架分析
  • 4-安装openzeppelin代币框架(代币发布成功)

1-Atom IDE插件安装

正式介绍基于web的智能合约开发

推荐一个新的开发工具
Remix在线工具,无需安装,有缺点,不适合项目的开发

下面的ico代币都要借助官方的模板。保存到本地,在本地进行修改

一行有可能团队开发
https://learnblockchain.cn/docs/solidity/resources.html#solidity-ide

在这里插入图片描述

这里使用ATOM,本身绿色版

支持高亮和语法检查

在这里插入图片描述

打开一个项目
在这里插入图片描述

无智能合约的高亮状态

在这里插入图片描述

可能进行了屏蔽,无法下载,需要科学上网安装

若install未安装成功,可以将已经下载好的包(离线安装-此操作看视频)

在这里插入图片描述

本人直接在线安装好了
language-ethereum(是高亮的插件)
再安装自动补全的插件
autocomplete-solidity
在这里插入图片描述

都是通过官网下载的

此处也在线安装成功了
在这里插入图片描述

有高亮状态了

有了此工具开发dapp会更加方便

2-truffle tutorialtoken

进行web

使用相关的web框架参考

学习新技术的时候也使用模板

后期根据需求进行修改,开发效率无疑最快

有各种基于去中心化的解决方案

每个项目设计的技术也不太同

可以根据自己掌握的技术栈选择

通过tutorialtoken完成代币的发送及转账
https://www.trufflesuite.com/boxes

在这里插入图片描述

项目的下载和部署页面
创建项目需要的步骤,也在其中

Truffle框架已安装完成
此项目模板下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行模板下载失败,网络问题

故直接在码云或者github寻找

在这里插入图片描述

很快就下载下来了
在这里插入图片描述
在这里插入图片描述

直接运行失败了truffle develop

官方的bug

注意将truffle.js改为truffle-config.js
在这里插入图片描述

必须修改
在这里插入图片描述

此时就打开了

Migrate部署报错,版本太低,使用ATOM打开项目更改版本

在这里插入图片描述

在这里插入图片描述

通过npm run dev(是js的命令必须在开发者模式外执行)

执行npm run dev报错

安装

npm install -g live-server

在这里插入图片描述

问题已找到直接找到下方的解决方法

再次向github下载
在这里插入图片描述

按照上方的步骤一步步来
一直到migrate

在这里插入图片描述

还是出现了此错误

https://blog.csdn.net/qin_zhimou/article/details/98966993
以下解决方法完全可行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

再次运行成功后出现界面如下

在这里插入图片描述

进行ico合约发布转账

在这里插入图片描述

Node moudles

Src下是前端内容
Src下的js下的app.js就最核心的内容

下节课会分析

在这里插入图片描述
在这里插入图片描述

自动运行项目并分配3000端口

在这里插入图片描述
在这里插入图片描述

上方更改dev的启动端口
退出服务再启动npm run dev

在这里插入图片描述

启动的服务可以在局域网其他设备查看

3-tutorialtoken源码框架分析

模板编译部署运行

Json的注释在

{
  "//":"json格式,定义项目所需的各种配置,和当前项目依赖的资源",
  "#name": "定义项目的名称, version: 版本",
  "name": "tutorialtoken",
  "version": "1.0.0",
  "description": "",
  "main": "truffle-config.js",
  "directories": {
    "test": "test"
  },
  "#script":"定义可以执行的脚本  npm run dev中的dev为定义的脚本名词",
  "scripts": {
    "dev": "lite-server",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "#lite-server": "lite-server,可以用来搭建本地server服务,默认会读取当前bs-config.json文件",
    "lite-server": "^2.3.0"
  }
}

可以在bs-config该端口等

官方的demo着重将src下的文件
Css和font是用来美化界面的

从index分析,唯一该用户展示的界面
在这里插入图片描述

此处jQuery依赖的是google的在线版,下方最好下载下来为离线版

https://www.jq22.com/jquery-info122

在这里插入图片描述
在这里插入图片描述

右键另存为

在这里插入图片描述

保存到对应的js文件下

jQuery最好直接下载下来
在这里插入图片描述

在这里插入图片描述

Bootstrap框架

 <!-- web3.js 提供了智能合约实例化,和合约调用的功能(RPC 远程过程调动) -->

其他项目要想要调用公有链的智能合约,就需要RPC
在这里插入图片描述

App.js是核心的编写的js文件,最重要的
在这里插入图片描述

接下来详细分析App.js

本节课主要分析结构,下节课分析细节

App={}本身是一个对象

项目开始需要链接到私有链,使用web3Provider

在这里插入图片描述

在最下方的函数,只要页面加载完成就执行App对象中的init函数,而init函数有调用下方的initweb3(用来实例化web3对象)

Web3内置在truffle,,私有链执行就可以调用,若后期无私有链可以使用
http://cw.hubwiz.com/card/c/web3.js-1.0/

在这里插入图片描述

初始化web3实例后才能调用合约

接下来要进行智能合约的初始化

Node.js写作风格

所有的js都被引入到了html

App.js是后台可以调用js文件下所有的js执行
在这里插入图片描述

自己写个智能合约,编译后生成json文件,内含ABI数据

TruffleContract函数在其他的js中(用来获取其他合约的名称)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

非常标准的逻辑,私有链链接合约实例化

数字货币转账框架,继承

4-安装openzeppelin代币框架(代币发布成功)

将合约和函数补全才能

在区块链比较火的时候发ico,进行众筹

无非就是发行数字名称和总量

已经有解决方案

使用开源代币框架进行发币

使用npm本地安装
在项目根目录下

这里需要注意的是使用npm安装的是最新版本的 openzeppelin-solidity,使用的合约都是0.8了,而之前的安装环境是0.5.16的(后续冲突会无法继承使用),所以不使用下方命令安装

npm install openzeppelin-solidity

将开源框架下载到本地
在这里插入图片描述

使用cnpm安装
E:\truffle\token\github\tutorialtoken-box-master>cnpm install openzeppelin-solidity

在这里插入图片描述

结果还是0.8的
在这里插入图片描述

算了使用课程提供的代码进行吧

然后新建合约,输入如下
在这里插入图片描述

在这里插入图片描述

合约直接继承ERC20即可

pragma solidity ^0.5.0;

import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";//npm导入的库

contract TutorialToken is ERC20 {

  string public name = "TutorialToken";//名称
  string public symbol = "TT";  //代币符号
  uint8 public decimals = 2;  //代币精度
  // 发行自己代币的总数量
  uint public INITIAL_SUPPLY = 12000;
  // 构造函数
  constructor() public {
    // 调用父类函数,传入合约所有者地址和发币总额
      _mint(msg.sender, INITIAL_SUPPLY);
  }

}

此发行的币不是以太坊等币,而是自己的币,若有合适产品并且大家都认可你的代币,那么你的代币就有价值

重要的是如何让别人相信你的代币有价值

此时完成迁移文件要,以阿拉伯数字开头
在这里插入图片描述
在这里插入图片描述

打开ganache
在这里插入图片描述

项目运行要链接到私有链,连接到的接口如下在这里插入图片描述

在这里插入图片描述

进行合约的编译和部署

E:\truffle\token\github\tutorialtoken-box-master>truffle develop
truffle(develop)> deploy --reset

在这里插入图片描述

直接使用课程提供的代码进行编译部署

truffle develop
truffle(develop)> deploy --reset

在这里插入图片描述

在另一个cmd窗口运行

Npm run dev

在这里插入图片描述

Web3为全局变量,若存在则没问题。不存在链接现有的私链

一旦页面合约初始化完毕就查询当前的账户余额
这里是0,因为链接的账户无钱
在这里插入图片描述

有这些代币的账户为部署此转账合约的账户中

在这里插入图片描述

找到上方部署的账户地址,找到对应私钥导入metamask中
在这里插入图片描述
在这里插入图片描述

添加代币

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时就显示代币是数字了,代币算是发布成功了

在这里插入图片描述
在这里插入图片描述

代币间的转账也需要消耗gas
在这里插入图片描述

一个没有以太坊的钱有代币的账户发给另一个账户代币交易时无法成功的失败

在这里插入图片描述

此时明确运行在以太坊上的代币之间的转账操作是需要消耗gas的

Result.c
在这里插入图片描述

转账成功后查询当前账户的余额

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

netty 自定义客户端连接池和channelpool

目录标题 客户端池化运行分析问题修复 客户端池化 通信完成之后&#xff0c;一般要关闭channel&#xff0c;释放内存。但是与一个服务器频繁的打开关闭浪费资源。 通过连接池&#xff0c;客户端和服务端之间可以创建多个 TCP 连接&#xff0c;提升消息的收发能力&#xff0c;同…

PyTorch张量索引

文章目录 1、简介1.1、基本概念1.2、索引类型1.3、数据准备1.4、技术摘要⭐ 2、简单行、列索引3、列表索引4、范围索引5、布尔索引6、多维索引 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#…

Golang | Leetcode Golang题解之第241题为运算表达式设计优先级

题目&#xff1a; 题解&#xff1a; const addition, subtraction, multiplication -1, -2, -3func diffWaysToCompute(expression string) []int {ops : []int{}for i, n : 0, len(expression); i < n; {if unicode.IsDigit(rune(expression[i])) {x : 0for ; i < n &…

大规模优化问题,Scipy?Ceres?PyTorch!

背景&#xff1a; 优化问题一般通过scipy.optimize或者Ceres Solver优化器求解。但在参数量较大的优化问题上&#xff0c;scipy提供的BFGS、L-BFGS-B、CG、SLSQP等梯度优化算法其复杂度和存储需求指数级上升&#xff0c;无法满足计算效率&#xff1b;而Ceres需要额外的语言来支…

科普文:百度交易中台之系统对账篇

百度交易中台作为集团移动生态战略的基础设施&#xff0c;面向收银交易与清分结算场景&#xff0c;赋能业务、提供高效交易生态搭建。目前支持百度体系内多个产品线&#xff0c;主要包括&#xff1a;度小店、小程序、地图打车、文心一言等。本文主要介绍了百度交易中台的交易链…

如何让主机显示Docker容器的程序界面,同时支持声音播放

系统中如果安装各种应用软件&#xff0c;很容易会因为版本冲刺引发异常。一个好的办法就是用容器来隔离系统环境&#xff0c;确保主机环境不变。对于一些有界面的程序&#xff0c;可以在容器内运行&#xff0c;让其界面显示在主机上。下面以安装和使用视频剪辑软件shotcut为例&…

【一刷《剑指Offer》】面试题 42:翻转单词顺序 VS 左旋转字符串

力扣对应题目链接&#xff1a;151. 反转字符串中的单词 - 力扣&#xff08;LeetCode&#xff09; 牛客对应题目链接&#xff1a;翻转单词序列_牛客题霸_牛客网 (nowcoder.com) 核心考点 &#xff1a;子串划分&#xff0c;子串逆置。 一、题目一 1、《剑指Offer》对应内容 2、…

Delphi5实现加密程序

效果图 平面效果图 实现“确认按钮”和“加密” //点击确认输入按钮 procedure TForm1.btn1Click(Sender: TObject); //加密部分 varpasswd_2,passwd_3:string;beginpasswd_2:edt1.Text;Delete(passwd_2,3,2);passwd_3:mima;Delete(passwd_3,3,2);if(passwd_2passwd_3) thenM…

MAE(论文阅读):Masked Autoencoders are scalable vision learners

Masked Autoencoders Are Scalable Vision Learners 研究问题&#xff1a; 本文主要介绍了掩码自编码器( MAE, Masked autoencoders)是视觉领域中可扩展的自监督学习算法。MAE具体操作为随机屏蔽输入image中的patchs&#xff0c;再重建丢失的像素。其基于两个核心操作。第…

HTML5大作业三农有机,农产品,农庄,农旅网站源码

文章目录 1.设计来源1.1 轮播图页面头部效果1.2 栏目列表页面效果1.3 页面底部导航效果 2.效果和源码2.1 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_4…

浅谈Canal原理

canal [kə’nl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据 订阅 和 消费。应该是阿里云DTS&#xff08;Data Transfer Service&#xff09;的开源版本。 Canal与DTS提供的功能基本相似&#xff1a; 基于…

python Requests库7种主要方法及13个控制参数(实例实验)

文章目录 一、Requests库的7种主要方法二、kwargs:控制访问的13个参数 一、Requests库的7种主要方法 序号方法说明1requests.request()&#xff1a;提交一个request请求&#xff0c;作为其他请求的基础2requests.get()&#xff1a;获取HTML网页代码的方法3requests.head()&…

内网隧道——隧道技术基础

文章目录 一、正向连接与反向连接1.1 正向连接1.2 反向连接 二、端口转发三、端口映射四、端口复用五、代理和隧道的区别六、常见隧道穿透分类 环境&#xff1a; kali&#xff1a;192.168.92.6&#xff0c;MSF v6.3.25 win7&#xff1a;192.168.92.7 一、正向连接与反向连接 1…

python实现误差扩散、Floyd-Steinberg 抖动、有序抖动、Riemersma 抖动算法

误差扩散、Floyd-Steinberg 抖动、有序抖动、Riemersma 抖动算法 1.误差扩散算法详解算法步骤Floyd-Steinberg 算法公式Python 实现详细解释优缺点 2.有序抖动算法详解算法步骤Bayer矩阵公式Python 实现详细解释优缺点 3.Riemersma 抖动算法详解算法步骤公式Python 实现详细解释…

网络编程中的TCP和UDP

什么是TCP协议 TCP( Transmission control protocol )即传输控制协议&#xff0c;是一种面向连接、可靠的数据传输协议&#xff0c;它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接 &#xff1a;数据传输之前客户端和服务器端必须建立连…

人工智能与语音识别:技术进步与应用前景

引言 人工智能&#xff08;AI&#xff09;作为当今科技进步的核心驱动力&#xff0c;正在各个领域展现其变革力量。其中&#xff0c;语音识别技术作为人工智能的重要应用之一&#xff0c;已经深入到我们的日常生活和工作中。从智能助手如Siri、Google Assistant&#xff0c;到智…

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s&#xff08;已成功搭建&#xff09; 环境配置 主节点 k8s-master&#xff1a;4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10.16.64.67&#xff09; 从节点 k8s-node1&#xff1a; 4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10…

n5.Nginx 常见模块

Nginx 常见模块 4.1 Nginx 四层访问控制4.2 Nginx 账户认证功能4.3 自定义错误页面4.4 自定义错误日志4.5 检测文件是否存在4.6 长连接配置4.7 作为下载服务器配置4.8 作为上传服务器4.9 限流限速4.10 Nginx 状态页 4.1 Nginx 四层访问控制 访问控制基于模块ngx_http_access_m…

【一刷《剑指Offer》】面试题 37:两个链表的第一个公共结点

力扣对应题目链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 牛客对应题目链接&#xff1a;两个链表的第一个公共结点_牛客题霸_牛客网 (nowcoder.com) 核心考点 &#xff1a;单链表理解&#xff0c;临界条件判定。 一、《剑指Offer》对应内容 二、分…

Python酷库之旅-第三方库Pandas(036)

目录 一、用法精讲 111、pandas.Series.item方法 111-1、语法 111-2、参数 111-3、功能 111-4、返回值 111-5、说明 111-6、用法 111-6-1、数据准备 111-6-2、代码示例 111-6-3、结果输出 112、pandas.Series.xs方法 112-1、语法 112-2、参数 112-3、功能 112-…