Token开发步骤

一、准备工具
1.安装以太坊
brew tap ethereum/ethereum
brew install ethereum
2.node:brew install nodejs
3.安装依赖库:npm install -g ganache-cli web3 solc truffle truffle-contract zeppelin-solidity
4.运行ganache-cli,端口默认是8545
5.配置myetherwallet设置自定义的网络:https://www.myetherwallet.com/
6.安装vs code
7.安装MetaMask插件(Chrome),配置网络同myetherumwallet

二、开发
1.truffle unbox vue-box, 其他的box可以在http://truffleframework.com/boxes/中找到
2.新建自己的Contract,示例代码如下:

pragma solidity ^0.4.18;

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

contract FirstToken is StandardToken {
string public name = "FirstToken";
string public symbol = "FST";
uint public decimals = 18;
uint public INITIAL_SUPPLY = 10000 * (10 ** decimals); function FirstToken() public {
balances[msg.sender] = INITIAL_SUPPLY;
}
}

3.编辑migrations\2_deploy_contracts.js增加自己编写的Contract的部署代码:deployer.deploy(FirstToken);
4.配置项目的truffle.config中的网络,确保端口是8545
5.运行truffle comiple 编译contract
6.运行truffle migrate --reset部署网络
7.新建自己的测试页面,关键代码如下:

<script>
import Web3 from 'web3'
import contract from 'truffle-contract'
import artifacts from '../../build/contracts/FirstToken.json'
const FirstTokenContract = contract(artifacts) export default {
name: 'FirstToken',
data() {
return {
web3: null,
account: null,
token: null,
address: '0x554f40f004758c2043992379465a04371ffdd9e1',
num: 10,
result: null
}
},
created() {
if (typeof web3 !== 'undefined') {
this.web3 = Object.freeze(new Web3(web3.currentProvider))
} else {
this.web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545"))
}
FirstTokenContract.setProvider(this.web3.currentProvider)
this.account = this.web3.eth.coinbase
this.web3.eth.defaultAccount = this.web3.eth.coinbase
FirstTokenContract.defaults({from: this.web3.eth.coinbase})
FirstTokenContract.deployed().then((instance) => {
instance.balanceOf(this.account).then((value) => this.token = value)
});
},
methods: {
send() {
return FirstTokenContract.deployed()
.then((instance) => {
console.log('from:' + this.account)
console.log('to:' + this.address);
instance.transfer(this.address, this.num)
return instance
})
.then((instance) => {
instance.balanceOf(this.address).then((value) => this.result = value)
instance.balanceOf(this.account).then((value) => this.token = value)
})
.catch((e) => {
console.error(e)
})
},
query() {
return FirstTokenContract.deployed()
.then((instance) => {
instance.balanceOf(this.address).then((value) => this.result = value)
})
.catch((e) => {
console.error(e)
})
},
}
}
</script>

  

8.运行send方法的时候注意要在MetaMask中点击提交才会真正执行

相关网站:
1.Truffle: http://truffleframework.com/
2.MyEtherWallet: https://www.myetherwallet.com
3.Solidity: http://solidity.readthedocs.io/en/v0.4.21/
4.Zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity
5.MetaMask:https://metamask.io/

编外网站:
1.代币的市值:www.coinmarketcap.com
2.Rinkeby测试网的地址:https://www.rinkeby.io

基于以太坊的Token开发步骤的更多相关文章

  1. 转:区块链开发(一)搭建基于以太坊go-ethereum的私有链环境

    区块链开发(一)搭建基于以太坊go-ethereum的私有链环境 wo541075754 · 2016-11-07 13:00:03 · 3730 次点击 · 预计阅读时间 3 分钟 · 约1小时前  ...

  2. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

  3. Mac下基于testrpc和truffle的以太坊智能合约开发环境搭建

    原文地址:石匠的blog truffle是一个基于Javascript开发的一套智能合约开发框架,使用Solidity语言编写合约.truffle有一套自动的项目构建机制,集成了开发,测试和部署的各个 ...

  4. 基于以太坊开发的类似58同城的DApp开发与应用案例

    今天,Origin开发团队很高兴地宣布在以太坊Rinkeby测试网络上推出Origin Protocol Demo DApp ! 在这个DApp中,你可以在不同垂直行业的solidarity econ ...

  5. 以太坊remix IDE安装步骤

    Remix 以太坊Solidity IDE搭建与初步使用 以太坊: 因为以太坊为开源社区,虽然东西很优秀,但是组件十分的杂乱,因此首先简单介绍下以太坊的一些常用组件: Geth: Geth是由以太坊基 ...

  6. 以太坊智能合约开发工具 Truffle 入门1

    Truffle是以太坊(Ethereum)智能合约开发的瑞士军刀,小巧好用,上手简单. 本篇文章主要展示如何用Truffle 开发第一个Ethereum智能合约. 1.准备工作:(本人针对window ...

  7. 链上链下交互 以太坊Dapp接口开发

    主要是指的是用NodeJs调用 提供接口供前端使用 用户查询和转账 以太坊Dapp项目 众筹项目 功能需求 路人 查看所有众筹项目, 2 @ OK 根据众筹项目的address获取该众筹的详情 (参与 ...

  8. 【Ethereum】以太坊ERC20 Token标准完整说明

    什么是ERC20 token 市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议. 概述 token代表数字资产,具有价值,但是并不是都符合特定的规范. ...

  9. 以太坊智能合约开发 Solidity学习

    1. pragma solidity >=0.4.22 <0.6.0;//版本号,头文件 contract BooleanTest { bool _a;//默认返回false int nu ...

随机推荐

  1. Python处理文件和查漏

    import os,re def change_filename(root): ''' 批量修改excel文件名 ''' for root_,_, fs in os.walk(root): for f ...

  2. sqlite3使用

    sqlite3使用 sqlite可以在https://www.sqlite.org/网站上下载.支持Linux, MacOS, Windows等各种操作系统.下载后不需要安装,解压后就可以使用,追加路 ...

  3. spring自定义标签之 自我实现

     引言: 最近心情比较难以平静,周末的两天就跑出去散心了,西湖边上走走,看日落,还是不错的.回来博客上发现,在自定义标签上,最后一步实现忘记加上了.其实,人生的路程中,我们总是实现着自我的价值,让自己 ...

  4. React.js 小书 Lesson25 - 实战分析:评论功能(四)

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson25 转载请注明出处,保留原文链接和作者信息. (本文未审核) 目前为止,第二阶段知识已经基本 ...

  5. redis虚拟内存---官方文档

    http://redis.io/topics/internals-vm Virtual Memory technical specification This document details the ...

  6. 关于vue的常识问题及解决方法

    一.VSCode开发必备插件 1.Beautify:语法高亮: 2.Bracket Pair Colorizer :对括号对进行着色: 3.ESLint:ESLint插件,高亮提示: 4.HTML C ...

  7. android studio应用获取系统属性权限(SystemProperties)

    dependencies { provided files(getLayoutLibPath()) } /** ZhangChao time:2014-12-31,get layoutlib.jar ...

  8. log4j记录日志 和 webAppRootKey关系

    今天发现一个问题,就是后台从某天开始不再记录日志了,最后发现是 webAppRootKey 的 value 的值必须要和log4j的注入变量要一致. 如下:web.xml文件的 webAppRootK ...

  9. [转]Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)

    本文转自:http://www.cnblogs.com/aehyok/p/3545824.html 前言 很久没更新博客了,加上刚过年,现在准备重新开战,继续自己的学习之路.本文已同步到Web API ...

  10. Silverlight & Blend动画设计系列十三:三角函数(Trigonometry)动画之飘落的雪花(Falling Snow)

    平时我们所看到的雪花(Falling Snow)飘飘的效果实际上也是一个动画,是由许多的动画对象共同完成的一个界面效果.对于不同大小的雪片可以通过缩放变换(ScaleTransform)功能特性确定, ...