Back

blockchain - truffle - config 配置truffle truffle.config.js

发布时间: 2022-06-18 23:14:00

refer to: https://ethereum.stackexchange.com/questions/15749/how-do-i-specify-a-different-solidity-version-in-a-truffle-contract/130441#130441

https://trufflesuite.com/docs/truffle/reference/configuration/

一个拿来就用的精简版

# .env 文件
INFURA_API_URL = "wss://goerli.infura.io/ws/v3/427a8f460d514ebfadf0d6c60b09ef27"
MNEMONIC = "margin blouse tenant chat hub chef addict club rather prize strategy joy"
$ cat truffle-config.js
require('dotenv').config();
const HDWalletProvider = require('@truffle/hdwallet-provider');
const { INFURA_API_URL, MNEMONIC } = process.env;

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*"
    },
    goerli: {
      provider: () => new HDWalletProvider(MNEMONIC, INFURA_API_URL),
      network_id: '5',
      gas: 5500000,
//      gasPrice: 50000000000, // 50 gwei
      networkCheckTimeout: 1000000,
      timeoutBlocks: 200,
      addressIndex: 2
    }
  },
  compilers: {
    solc: {
      version: "0.8.15",   // 这样的话能快速的运行
    }
  }
};

配置compiler version  默认居然是 0.4.x

module.exports = {
  compilers: {
    solc: {
      version: <string>, // A version or constraint - Ex. "^0.5.0"
                         // Can be set to "native" to use a native solc or
                         // "pragma" which attempts to autodetect compiler versions
      docker: <boolean>, // Use a version obtained through docker
      parser: "solcjs",  // Leverages solc-js purely for speedy parsing
      settings: {
        optimizer: {
          enabled: <boolean>,
          runs: <number>   // Optimize for how many times you intend to run the code
        },
        evmVersion: <string> // Default: "istanbul"
      },
      modelCheckerSettings: {
        // contains options for SMTChecker
      }
    }
  }
}

每次卡在了 truffle compile 怎么办?

$ truffle compile

Compiling your contracts...
===========================
✖ Fetching solc version list from solc-bin. Attempt #1
✖ Fetching solc version list from solc-bin. Attempt #2
✖ Fetching solc version list from solc-bin. Attempt #3
✖ Fetching solc version list from solc-bin. Attempt #1
✖ Fetching solc version list from solc-bin. Attempt #2
✖ Fetching solc version list from solc-bin. Attempt #3
> Compiling ./contracts/MyTestNft.sol

运行命令 $ truffle compile --list

✖ Fetching solc version list from solc-bin. Attempt #1
✓ Fetching solc version list from solc-bin. Attempt #2
[
 "0.8.15",
 "0.8.14",
 "0.8.13",
 "0.8.12",
 "0.8.11",
 "0.8.10",
 "0.8.9",
 "0.8.8",
 "0.8.7",
 "0.8.6"
]

所以,修改 truffle-config.js

  compilers: {
    solc: {
      // version: "^0.8.0",   不要这样
      version: "0.8.15",    // 要这样
    }
  },

Back