开发实战|如何用15行代码发布 token(附操做视频)

image

本文会覆盖如下内容:前端

收益:服务器

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

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

  • 彻底解读发布新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)

开发环境的准备操做,能够参考开发实战|3步教你在以太坊上开一家宠物店(附流程+代码)

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

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

部署合约

一、在 migratios/ 目录内建立新文件 2_deploy_contracts.js 内容以下:

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

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

二、确保安装好了 ganache

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

image

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

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('http://127.0.0.1:9545');

修改调用合约的脚本

下面的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

一、打开 MetaMask 钱包,选择第一个帐户,点击 TOKENS 标签,以下

image

二、输入 token contract address

三、在 ganache 中找到建立 token 合约的地址,以下图

image

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

五、点击确认便可

至此,咱们在 MetaMask 钱包里,就能够完美显示咱们新的 token 了。

参考文档:BUILDING ROBUST SMART CONTRACTS WITH OPENZEPPELIN

(地址:http://truffleframework.com/tutorials/robust-smart-contracts-with-openzeppelin)

如下是咱们的社区介绍,欢迎各类合做、交流、学习:)

image

相关文章
相关标签/搜索