以太坊开发框架Truffle学习笔记

from http://truffleframework.com/docs/getting_started/project

1. 安装node.js 8.11.2 LTS

2. 安装Truffle

$ npm install -g truffle

3. 创建项目

您可以创建项目模板,但对于新手,更好的选择是使用Truffle Boxes—示例应用程序和项目模板。我们将使用MetaCoin box, 该例子创建可在帐户之间转移的token:

$ mkdir MetaCoin
$ cd MetaCoin

下载("unbox") Metacoin box:

$ truffle unbox metacoin

4. 测试,运行solidity测试文件

$ truffle test TestMetacoin.sol

报错,把warning按提示修改后,还有Error:

出错原因是没有切换到到test目录中,切换目录再执行测试命令:

5. 编译智能合约

$ truffle compile

6. 部署智能合约

要部署我们的智能合约,我们需要一个客户端来与区块链进行交互。推荐使用Ganache-cli(Ganache命令行版,原ethereumjs-testrpc), 是一个适用于开发时使用的客户端,是Tuffle套件中的一部分。

6.1 下载安装

$ sudo npm install -g ganache-cli

6.2 修改Tuffle.js文件为以下内容:(port不是7545,在6.3图中看出是8545,估计ganache的默认端口为7545,ganache-cli默认端口为8545)

module.exports = {
    networks: {
        development: {
            host: "127.0.0.1",
            port: 8545,
            network_id: "*"
        }
    }
};    

6.3 启动Ganache-cli,创建区块链

$ ganache-cli

创建了与区块链交互时可以使用的10个帐户(及其私钥),默认发送账户为第一个

6.4 将合约迁移到由Ganache-cli创建的区块链

$ truffle migrate

显示了已部署合约的交易ID和地址

7. 与智能合约进行交互

可以用Truffle console来与智能合约进行交互

$ truffle console

通过以下方式使用Truffle控制台与合同进行交互:

  • 查看部署合约的账户metacoin余额:
    MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

  • 查看部署合约的账户以太币余额,合约中定义的一个metacoin值2个以太币:
    MetaCoin.deployed().then(function(instance){return instance.getBalanceInEth(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});
  • metacoin转账:
    MetaCoin.deployed().then(function(instance){return instance.sendCoin(web3.eth.accounts[1], 500);});

  • 查看接收方账户metacoin余额:

    MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[1]);}).then(function(value){return value.toNumber()});

  •  查看发送发账户metacoin余额:

以上就是用Truffle框架部署智能合约的基本过程。

猜你喜欢

转载自www.cnblogs.com/sclczk/p/9085331.html
今日推荐