首先安装了truffle和truffle-hdwallet-provider
npm install truffle -g
npm install truffle-hdwallet-provider
安装truffle卡住的同学请在truffle后面加上@5.0.1指定版本
修改truffle配置文件
var HDWalletProvider = require("truffle-hdwallet-provider"); // 导入模块
var mnemonic = "你的助记词"; //MetaMask的助记词。
module.exports = {
networks: {
development: {
network_id: "*", // Any network (default: none)
provider: function () {
// mnemonic表示MetaMask的助记词。 "ropsten.infura.io/v3/33..."表示Infura上的项目id
return new HDWalletProvider(mnemonic, "http://ip:port", 0); // 1表示第二个账户(从0开始)
}
},
},
// Set default mocha options here, use special reporters etc.
mocha: {
// timeout: 100000
},
// Configure your compilers
compilers: {
solc: {
// version: "0.5.0", // 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"
// }
}
}
}
上面的 new HDWalletProvider 让我非常迷,我在metamask导入了一个有余额的账户,按理说是1,但是指定1部署的时候用的不是这个账户,所以我就给0账户转了点钱,依旧指定0账户
最后在终端执行部署命令
truffle migrate
注意,不要忘记把挖矿开起来,不然合约不会部署上去