博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发实战|如何用15行代码发布 token(附操作视频)
阅读量:6344 次
发布时间:2019-06-22

本文共 3209 字,大约阅读时间需要 10 分钟。

hot3.png

image

本文会覆盖以下内容:

  • 开发环境的准备,参考

  • 从 Truffle box 创建项目

  • 编写 FakeToken 智能合约

  • 编译部署智能合约

  • 用新的 token 进行转账

收益:

  • 实际还原发布新token的开发全过程

  • 详细指导token涉及的智能合约部署

  • 完全解读发布新token的15行代码

以下是Bob根据开发过程整理的流程文档。

1

开发环境的准备

本地环境Mac

这个教程会用到的环境:

  • 开发环境:node.js, npm (本文用到的node version, v9.11.1 npm version v5.6.0)

  • 编译部署环境:truffle (version 4.1.5, solidity 0.4.21)

  • 以太坊私链:ganache (version 1.1.0)

开发环境的准备操作,可以参考

2

创建项目

BobJianglocal:truffle bobjiang$ truffle unbox tutorialtoken

truffle框架目录介绍:

  • contracts/ : 智能合约文件存在这里,后缀.sol (solidity)

  • migrations/ : 部署脚本

  • test/ : 测试脚本

  • truffle.js :truffle的配置文件

3

安装OpenZeppelin

BobJianglocal:truffle bobjiang$ npm install zeppelin-solidity

4

编写智能合约

在 contracts/ 目录下创建 FakeToken.sol 文件,内容如下:

pragma solidity ^0.4.17;

import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';

contract FakeToken is StandardToken {    string public name = 'FakeToken';    string public symbol = 'TT';    uint8 public decimals = 2;    uint public INITIAL_SUPPLY = 12000;

   function FakeToken() public {      totalSupply_ = INITIAL_SUPPLY;      balances[msg.sender] = INITIAL_SUPPLY;    } }

5

编译部署合约

编译合约

BobJianglocal:truffle bobjiang$ truffle compile Compiling ./contracts/FakeToken.sol... Compiling ./contracts/Migrations.sol...

Writing artifacts to ./build/contracts

上面有警告的地方,可以忽略。(原来给的文件里面没有指定函数的可见性)

部署合约

1、在 migratios/ 目录内创建新文件 2_deploy_contracts.js 内容如下:

var FakeToken = artifacts.require("FakeToken");

module.exports = function(deployer) {  deployer.deploy(FakeToken); };

2、确保安装好了 ganache

安装好后第一次启动的界面如下(借用的源文档图片)

image

3、智能合约部署到以太坊(私链)上

BobJianglocal:truffle bobjiang$ truffle migrate Using network 'development'.

Running migration: 1_initial_migration.js  Deploying Migrations...  ... 0x579459f9d2e89ed07356c7565056e082b540c5f441ffcdc1e4676f42536451d5  Migrations: 0x651ee6754b509e0f3413fcb6c88c6c20dc8c9d28 Saving successful migration to network...  ... 0xfafeb069ba502196abeabef2c097bdd9e4db9ab02c98a9b98d8db47f7d205a9b Saving artifacts... Running migration: 2_deploy_contracts.js  Deploying Adoption...  ... 0xaee412f76fe2ed3853f8e138f009cd8fca23835547a39e23188affef55665460  Adoption: 0x104ba492f5d8f4e0df6971ae09ca0c9b496ff15b Saving successful migration to network...  ... 0x9219eeba1a1eb945d4fe1fb1bf6cdb2b70218c22b264134cfd97e2f4dfe026ef Saving artifacts...

部署完成后,可以看到有四笔交易(四个区块):

image

6

转账新的 token

前端修改

修改默认的RPC port,9545修改为ganache的7545

App.web3Provider = new Web3.providers.HttpProvider('');

修改调用合约的脚本

下面的TutorialToken.json修改为FakeToken.json

$.getJSON('TutorialToken.json', function(data) {

配置 MetaMask

配置 MetaMask 连接本地 ganache

MetaMask 创建新的账号(会自动添加 ganache 中第二个账号)

启动本地 HTTP 服务器

BobJianglocal:truffle bobjiang$ npm run dev

自动打开新网页,如下

image

转账

我们新发布的 token 默认存在第一个账户中,我们现在从第一个账户向第二个账户进行转账,来测试我们新的 token

MetaMask 中选择第一个账户,刷新网页,会显示上述的网页

第一个输入框,输入第二个账户的地址

第二个输入框,输入转账金额(这里我们前面的 decimals 设置为 2,则转账金额会截断2位小数)

点击 “Transfer”

会弹出如下网页(MetaMask钱包)

image

点击“Submit”,会收到转账成功的提示

返回 ganache 查看,新增一笔交易

进入 MetaMask ,点击第二个账户,然后刷新网页,可以看到第二个账户已经收到了新的 token

钱包中显示新 token

1、打开 MetaMask 钱包,选择第一个账户,点击 TOKENS 标签,如下

image

2、输入 token contract address

3、在 ganache 中找到创建 token 合约的地址,如下图

image

4、输入 token 合约地址后,自动带出 token symbols 和 decimals

5、点击确认即可

至此,我们在 MetaMask 钱包里,就可以完美显示我们新的 token 了。

参考文档:BUILDING ROBUST SMART CONTRACTS WITH OPENZEPPELIN

(地址:

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

image

转载于:https://my.oschina.net/u/3782027/blog/1818337

你可能感兴趣的文章
初试ASP.NET Web API/MVC API(附Demo)
查看>>
Unable to locate package错误解决办法
查看>>
Spark 官方博文专区(目录)
查看>>
[原][osgEarth]添加自由飞行漫游器
查看>>
AnimatorCompatHelper clearInterpolator
查看>>
代码审查 Code Review
查看>>
fastjson如何指定字段不序列化
查看>>
翻译:window function(已提交到MariaDB官方手册)
查看>>
centos安装Django之一:安装openssl
查看>>
linux下mysql开启远程访问权限及防火墙开放3306端口
查看>>
[日常] Go语言圣经--示例: 并发的Echo服务
查看>>
nginx配置80端口访问8080+项目名地址
查看>>
BZOJ1969: [Ahoi2005]LANE 航线规划(LCT)
查看>>
linux内存管理之malloc、vmalloc、kmalloc的区别
查看>>
ubuntu14.04终端分屏terminator的安装使用与配置
查看>>
amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown
查看>>
转:比特币入门教程
查看>>
自旋锁、排队自旋锁、MCS锁、CLH锁
查看>>
GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录
查看>>
M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
查看>>