如何在 Solidity 6.0 中使用 Truffle?

How to use Truffle with Solidity 6.0?

阅读官方 Truffle 文档,我注意到 Truffle 不支持 Solidity 6.0

pragma solidity >=0.4.21 <0.6.0;

有什么方法可以在 Solidity 6.0 中使用 Truffle 吗?

是的,这适用于此迁移

pragma solidity >=0.4.21 <0.7.0;

contract Migrations {
  address public owner;
  uint public last_completed_migration;

  constructor() public {
    owner = msg.sender;
  }

  modifier restricted() {
    if (msg.sender == owner) _;
  }

  function setCompleted(uint completed) public restricted {
    last_completed_migration = completed;
  }
}

和这个编译器设置

compilers: {
     solc: {
       version: "^0.6.0",

并且还需要重新安装 Truffle 到最新版本

您可以在 truffle 配置 文件中设置 solidity 版本。

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1", // Localhost (default: none)
      port: 7545, // Standard Ethereum port (default: none)
      network_id: "*", // Any network (default: none)
    },
  },
  compilers: {
    solc: {
      version: "0.6.0",
      settings: {
        optimizer: {
          enabled: true, // Default: false
          runs: 1000, // Default: 200
        },
      },
    },
  },
};