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

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.mzph.cn/pingmian/48279.shtml

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

相关文章

【Vue3】响应式数据

【Vue3】响应式数据 背景简介开发环境基本数据类型对象数据类型使用 reactive 定义对象类型响应式数据使用 ref 定义对象类型响应式数据 ref 和 reactive 的对比使用原则建议 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0…

牛客:TOP101链表相加(二)

文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 按照我们习惯的加法运算&#xff0c;肯定是要从个位开始相加&#xff0c;然后十位……&#xff0c;但是在链表中如果我们先运算后面的&#xff0c;那么接下来我们是无法找到前一位的。想要解决这个问题也很…

数模·插值和拟合算法

插值 将离散的点连成曲线或者线段的一种方法 题目中有"任意时刻任意的量"时使用插值&#xff0c;因为插值一定经过样本点 插值函数的概念 插值函数与样本离散的点一一重合 插值函数往往有多个区间&#xff0c;多个区间插值函数样态不完全一样&#xff0c;简单来说就…

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决

主从复制的架构设计如下图所示&#xff1a; 同步原理 具体到数据库之间是通过binlog和复制线程操作的&#xff1a; Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启&#xff0c;binlog dump线程,该线程…

H3CNE(计算机网络的概述)

1. 计算机网络的概述 1.1 计算机网络的三大基本功能 1. 资源共享 2. 分布式处理与负载均衡 3. 综合信息服务 1.2 计算机网络的三大基本类型 1.3 网络拓扑 定义&#xff1a; 网络设备连接排列的方式 网络拓扑的类型&#xff1a; 总线型拓扑&#xff1a; 所有的设备共享一…

Vue3 --- 路由

路由就是一组key-value的对应关系&#xff1b;多个路由&#xff0c;需要经过路由器的管理。 1. 基本切换效果 安装路由器 npm i vue-router /router/index.ts // import { createRouter, createWebHistory } from vue-router import Home from /components/Home.vue import…

萝卜快跑爆火的背后,美格智能如何助力无人车商业化?

近期&#xff0c;“订单量超过600万单”等夺人眼球的信息&#xff0c;让无人驾驶出租车“萝卜快跑”从江城武汉爆火出圈&#xff0c;在2024年的炎炎夏日为这座大火炉再添了一把火。热度背后&#xff0c;不少地方主管部门&#xff0c;近期也纷纷针对无人驾驶出租车、无人驾驶运输…

基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营

上回&#xff1a; 基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baseline Datawhale AI 夏令营-CSDN博客文章浏览阅读718次&#xff0c;点赞11次&#xff0c;收藏8次。基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baselinehttps://blog.csdn.net/qq_23311271/article/d…

C++树形结构(2 树的直径)

目录 1.定义&#xff1a; 2.直径的性质&#xff1a; 3.树的直径求解方法&#xff1a; 4.直径端点求解方法&#xff1a; 朴素方法&#xff1a; 优化方法&#xff1a; 5.例题&#xff1a; 6.直径公共点&#xff1a; 7.例题&#xff1a; 8.去掉再加上&#xff1a; 9.例…

最新版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…

框架使用及下载

Bootstrap5 安装使用 | 菜鸟教程 (runoob.com) https://github.com/twbs/bootstrap/releases/download/v5.1.3/bootstrap-5.1.3-dist.zip&#xff08;下载链接&#xff09; Staticfile CDN&#xff08;html的所有框架合集&#xff09; 直接在w3cschool里面看参考文件进行搜索自…

RHCSA —— 第八节 (编辑器、编辑命令等)

Vi/vim编辑器 vim 编辑器 就是相当于在windows中创建一个记事本&#xff0c;一个word文档里面进行编辑所需要的内容。在linux中编辑文本文件&#xff0c;包括但不限于编辑源代码、配置文件、日志文件等文件内容。 三种模式 这是在编辑器中存在三种模式&#xff1a;命令模式、…

[经验] 驰这个汉字的拼音是什么 #学习方法#其他#媒体

驰这个汉字的拼音是什么 驰&#xff0c;是一个常见的汉字&#xff0c;其拼音为“ch”&#xff0c;音调为第四声。它既可以表示动词&#xff0c;也可以表示形容词或副词&#xff0c;意义广泛&#xff0c;经常出现在生活和工作中。下面就让我们一起来了解一下“驰”的含义和用法。…

Deepfake detection【Datawhale AI夏令营】数据增强方法

deepfake detection比赛链接https://www.kaggle.com/competitions/multi-ffdi 训练分类模型判别图片是否为AI生成图片&#xff0c;探究不同数据增强方法对模型表现的影响。 1、数据增强方法 图像分类任务中常见的数据增强方法&#xff1a; &#xff08;1&#xff09; 几何变换…

【BUG】已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported

已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 目录 已解决&#xff1a;xlrd.biffh.XLRDError: Excel xlsx file&#xff1b; not supported 【常见模块错误】 错误原因 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/…

深入解析HNSW:Faiss中的层次化可导航小世界图

层次化可导航小世界&#xff08;HNSW&#xff09;图是向量相似性搜索中表现最佳的索引之一。HNSW 技术以其超级快速的搜索速度和出色的召回率&#xff0c;在近似最近邻&#xff08;ANN&#xff09;搜索中表现卓越。尽管 HNSW 是近似最近邻搜索中强大且受欢迎的算法&#xff0c;…

详解SVN与Git相比存在的不足

原文全文详见个人博客&#xff1a; 详解SVN与Git相比存在的不足截至目前&#xff0c;我们已既从整理梳理的SVN和Git在设计理念上的差异&#xff0c;也重点对二者的存储原理和分支管理理念的差异进行深入分析。这些差异也直接造成了SVN和Git在分支合并、冲突解决、历史记录管理…

山西大学—双一流大学,考数据结构+C语言。山西大学计算机考研考情分析!

山西大学&#xff08;Shanxi University&#xff09;&#xff0c;位于山西省太原市&#xff0c;是中国办学历史最悠久的高等学府之一&#xff0c;是国家“双一流”建设高校&#xff0c;教育部和山西省人民政府共同建设的“部省合建高校”&#xff0c;山西省重点建设大学&#x…

JVM监控及诊断工具-命令行篇-jstack命令介绍

加粗样式 JVM监控及诊断工具-命令行篇04-jstack&#xff1a;打印JVM中线程快照 一 基本情况二 基本语法 一 基本情况 jstack(JVM Stack Trace)&#xff1a; 用于生成虚拟机指定进程当前时刻的线程快照(虚拟机堆栈跟踪)。 线程快照就是当前虚拟机内指定进程的每一条线程正在执…

新手小白的pytorch学习第七弹------分类问题模型

目录 1. 准备分类数据1.1 输入和输出的形状 shape1.2 将数据转换为张量&#xff0c;同时将我们的数据集转换为训练集和测试集 2 创建模型方法一&#xff1a;自定义forward()方法二&#xff1a;nn.Sequential()方法三&#xff1a;自定义forward()nn.Sequential() 用 pytorch 使用…