以太坊:Truffle框架实践之HelloWorld

一、初始化项目

mkdir helloworld
cd helloworld
truffle init

新建一个文件夹,使用truffle init进行初始化,有时候会连接不上,多试几次就好了。

 

 将文件夹使用ftp下载到本地,文件目录如下:

 

文件目录解释如下:

  • contract/ - Truffle默认的合约文件存放地址。
  • migrations/ - 存放发布脚本文件
  • test/ - 用来测试应用和合约的测试文件
  • truffle-config.js - Truffle的配置文件

二、编写智能合约

2.1.编写智能合约

在contract下新建合约合约文件Greeter.sol

pragma solidity >=0.4.25 <0.7.0;

contract Greeter {
    address creator;
    string greeting;

    constructor(string memory _greeting) public{
        creator = msg.sender;
        greeting = _greeting;
    }

    function greet() public view returns(string memory) {
        return greeting;
    }
    
    function setGreeting(string memory _newgreeting) public{
        greeting = _newgreeting;
    }
    
}

2.2.新建发布脚本

在./migrations/目录下新建一个文件:2_deploy_contracts.js,增加发布代码。

var Greeter = artifacts.require("./Greeter.sol");

module.exports = function(deployer) {
  deployer.deploy(Greeter,"Hello, World!");
};

2.3.修改配置文件truffle-config.js

module.exports = {

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

  // Set default mocha options here, use special reporters etc.
  mocha: {
    // timeout: 100000
  },

  // Configure your compilers
  compilers: {
    solc: {
      // version: "0.5.1",    // Fetch exact version from solc-bin (default: truffle's version)
      // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
      // settings: {          // See the solidity docs for advice about optimization and evmVersion
      //  optimizer: {
      //    enabled: false,
      //    runs: 200
      //  },
      //  evmVersion: "byzantium"
      // }
    }
  }
}

三、部署合约

truffle compile
ganache-cli
truffle migarte

 

 

 

四、测试合约

truffle提供了一种更加简单的方式,通过交互式控制台来与你的那些准备好的合约进行交互。

扫描二维码关注公众号,回复: 10825617 查看本文章

truffle console

一个基本的交互控制台,可以连接任何EVM客户端。如果你已经有了自己的ganache或者geth等EVM的本地环境,那么就可以使用truffle console来交互,所以如果你已经有一个现成的小组共享的开发用EVM,那么使用这个没错。

truffle develop

一个交互控制台,启动时会自动生成一个开发用区块链环境(其实我认为它与ganache就是一个底层实现机制,都是默认生成10个账户)。如果你没有自己的EVM环境的话,直接使用truffle develop非常方便。

进入基本的交互控制台

truffle console

输入Greeter智能合约命令,显示打印出一个json结构,展示了它的各种属性内容。

 调用合约

Greeter.deployed().then((instance) => { greeter = instance } )

greeter.greet()

参考:https://www.jianshu.com/p/2e2b3b12eb0e

猜你喜欢

转载自www.cnblogs.com/fdzang/p/12707027.html