Truffle 快速入门

2018-04-21  本文已影响82人  Jayden梅

快速入门

  npm install -g truffle
  npm -g install ethereumjs-testrpc
  truffle init

Truffle将会自动下载相关依赖,创建目录

truffle_init.png
打开truffle.js
module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*" // Match any network id
    }
  }
};

在contracts目录下新建DogMarket.sol文件

pragma solidity ^0.4.17;  //指定solidity版本

contract DogMarket {      //创建合约
        
        //保存领养信息
        mapping(uint => address)  public adopters; //映射,相当于JavaMap

        function adoptDog(uint dogId) public returns(uint) {
                adopters[dogId] = msg.sender;
                return dogId;
        }

        function getAdoptUser(uint dogId) public returns(address) {
            return adopters[dogId];
        }
}
truffle compile

在migrations目录下新建1_deploy_contracts.js

var DogMarket = artifacts.require("./DogMarket.sol");//引入上一步编写的solidity文件

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

truffle migrate/truffle deploy

运行该命令将会把我们的合约部署到测试网络上。

pragma solidity ^0.4.0;

import "truffle/DeployedAddresses.sol";   //引入地址
import "truffle/Assert.sol";              //引入断言
import "../contracts/DogMarket.sol";      // 被测试合约

contract DogMarketTest {
        DogMarket market = DogMarket(DeployedAddresses.DogMarket());

        function testAdopt() public {
            uint petId = uint(11);
            uint dogId = market.adoptDog(petId);
             Assert.equal(petId, dogId, "Owner of pet ID 11.");
        }
}
truffle test
   /media/jayden/E4B0C898B0C8729A/blockChain/truffle/pet-shop/contracts/DogMarket.sol:13:9: Warning: Function state mutability can be restricted to view
        function getAdoptUser(uint dogId) public returns(address) {
        ^ (Relevant source part starts here and spans across multiple lines).



  DogMarketTest
    ✓ testAdopt (165ms)


  1 passing (1s)

由结果看出,我们的程序正确的返回了输入的petId,得到的dogId都是11,断言正确

上一篇 下一篇

猜你喜欢

热点阅读