truffle 搭建宠物商店

安装智能合约相关npm 包

1
2
3
4
5
npm install -g solc
npm install -g solc-cli
npm install -g truffle
npm install -g ethereumjs-testrpc // 安装 testrpc, Ganache属于它的升级版
npm install web3

创建工程

1
2
3
mkdir pet-shop
cd pet-shop
truffle unbox pet-shop

truffle 框架目录介绍:

1
2
3
4
contracts/ : 智能合约文件存在这里,后缀.sol (solidity)
migrations/ : 部署脚本
test/ : 测试脚本
truffle.js :truffle的配置文件

编写智能合约

在 contracts/ 目录下创建 Adoption.sol 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pragma solidity ^0.4.17;

contract Adoption {
address[16] public adopters;

//adopting a pet
function adopt(uint petId) public returns (uint) {
require(petId >= 0 && petId <= 15);
adopters[petId] = msg.sender;
return petId;
}

//retrieve the adopters
function getAdopters() public view returns (address[16]) {
return adopters;
}
}

编译合约

1
truffle compile

部署合约

migratios/ 目录内创建新文件 2_deploy_contracts.js :

1
2
3
4
5
var Adoption = artifacts.require("Adoption");

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

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

1
truffle migrate