以太坊智能合约开发框架Truffle

前言

  部署智能合约有多种方式,命令行的浏览器的渠道都有,但每每跟咱们程序员的风格不太相符,由于咱们习惯了在IDE里写了代码而后打包运行看效果。webpack

  虽然如今IDE中已经存在了Solidity插件,能够编写智能合约,可是部署智能合约却要另走他路,没办法进行一个快捷的部署与测试。程序员

  若是团队管理的区块节点多、合约多,那得哭晕在厕所。web

  Truffle是一个世界级的智能合约开发框架,专门为智能合约而生。npm

 

安装

安装truffle

sudo cnpm install -g truffle

 

查看版本

truffle version

 

搭建项目

建立项目目录

mkdir dapp
cd dapp/

 

初始化空项目

truffle init

你也能够不建立空项目 而是建立一个带有模板的项目  以下浏览器

 

初始化模板项目

truffle unbox webpack网络

官方模板列表:https://www.trufflesuite.com/boxesapp

 

配置区块节点

truffle-config.js文件中networks代码段  用来配置区块链节点框架

示例中有这么一段区块链

 development: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 8545,            // Standard Ethereum port (default: none)
      network_id: "*",       // Any network (default: none)
 }

 

你能够根据你的实际状况修改,或者如我同样直接注释掉这段,我直接加了下面这段测试

 line: {
      host: "47.97.26.107",
      network_id: 100,
      port: 8888,
      from:'0xDFeDb94Ab496d6b68795dB890AcbbBdc2557860A'
},

 

无论是development仍是line都是随意取的Key,若是你有多个区块链节点,你也能够多配几段便可。

代码段中的from为部署合约的帐户,若是不配,则默认为以太坊客户端的第一个帐户。

 

部署合约

编译

truffle compile

 

部署前

编译后要作的事情是确保部署合约的那个地址里有ETH,由于部署是要花钱的,而且地址必须解锁, 而后才能部署。

 

部署

truffle migrate --network line

(我本身配置的网络段是line,因此个人--network值是line,若是你只是 truffle migrate 不加任何参数  那么默认会部署development网络)

 

部署后

必需要设置挖矿地址,进行挖矿,不然交易不会广播。

 

查看合约

truffle networks

 

操做合约

进入控制台

truffle console --network line

 

获取合约实例

let instance = await MetaCoin.deployed()

 

调用合约方法

这里举例获取地址余额

let balance = await instance.getBalance('0x30f8c37E265FbfC8941c38f861a8d2FC994e4772')
balance.toNumber()
相关文章
相关标签/搜索