| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 几行代码生成自己的Token代币 -> 正文阅读 |
|
[区块链]几行代码生成自己的Token代币 |
概念
什么是Token代币? Token这个词,在开发领域很常见,刚看见Token代币这个词的时候,我确实懵逼了一段时间,比如常规的前后端Web程序会有Token的概念,它用于表明用户访问当前网站时的身份,比如编译原理中的Token,它用于表明词法分析阶段,代码会转为Token流,但区块链中的Token与前两者在概念上没有任何关系。 Token代币这个词出自ERC20协议,与常见的网络协议一样,协议只是用于规定程序的规则集,比如TCP/IP协议,为了方便计算机的网络数据互通,程序在传输数据时,数据的格式与程序发送数据与接收数据的行为都要满足TCP/IP协议一样,ERC20也如此,我们可以通过https://eips.ethereum.org/EIPS/eip-20来查看ERC20具体的规则,你浏览后就会发现,它会要求你的智能合约必须实现某些函数。 从ERC20这个角度看,Token只是记录在智能合约上的一个数值,目前很多DApp应用的Token之所以可以交易,是因为这里DApp的智能合约都遵守ERC20规范。现在有基于其改进的ERC776和ERC777,这些新的规范都向下兼容了ERC20。 从代码上看,不同应用的Token代币,都是这一行代码,你钱包账号的地址以及该地址对应的数值(uint256类型),这就是你这个钱包具体的Token,而各种交易操作就是对这个数值的操作,非常简单,代码如下:
这里吐槽一句,一开始我也是从网上了解Token的概念,越看越迷糊,如果是你开发同学,直接看相应的协议吧,直达本质。 那Token与以太坊有什么关系? Token基于智能合约实现,这个智能合约要满足ERC20协议,而智能合约需要在以太坊网络中运行,这样Token也具有去中心、防篡改的特性了,直白点理解,Token就是智能合约上记录的一个数值,你要修改这个数值,其实就是要修改以太坊网络的状态,需要花费相应的gas。 实现简单的概念介绍结束,下面通过几行代码来实现一下。 正常情况是,我们需要基于ERC20的规定,在自己的智能合约中实现ERC20要求我们实现的各种函数,但有人已经帮我们实现好了,我们直接通过solidity的继承功能,可以直接拿来就用。 第三方已经实现了规范的协议: 代码地址为:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol 有了这个ERC20.sol,我们只需要import然后继承用一下就好了,但如果你像我一样,特别懒,可以直接翻一下openzeppelin的文档:https://docs.openzeppelin.com/contracts/4.x/erc20。 直接将这里的代码,全部复制下来,改一下你需要生成代币的名称和符号就好了。 注意,这里使用的solidity是 0.8.0,之前文章中提到,0.8.0版本的solidity,我们就不用担心数值溢出的问题了。 复制到本地,修改一下:
创建brownie项目,然后写一下部署代码:
运行一下,部署成功,etherscan查询如下: 打开小狐狸插件,导入你部署的这个合约地址,可以找到你刚创建的AT代币。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:42:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |