Solidity truffle,部署合约到Ropsten测试链或主链,调用合约(转)
Solidity truffle,部署合约到Ropsten测试链或主链,调用合约
Infura是⼀个托管的以太坊节点集群,可以将你开发的以太坊智能合约部署到infura提供的节点上,⽽⽆需搭建⾃⼰的以太坊节点,它是MetaMask背后的以太坊供应商。
1、Chrome浏览器安装MetaMask插件。 https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn/related?hl=zh-CN
2、安装HDWalletProvider: npm install truffle-hdwallet-provider
3、注册Infura。 https://infura.io/
truffle.js(truffle的配置文件,配置部署的网络。Windows下的配置文件是truffle-config.js):
-
var HDWalletProvider = require("truffle-hdwallet-provider"); // 导入模块
-
var mnemonic = "drill food hunt team moment bird mistake attitude tunnel ecology sister resist"; //MetaMask的助记词。
-
-
module.exports = {
-
networks: {
-
ropsten: {
-
provider: function() {
-
// mnemonic表示MetaMask的助记词。 "ropsten.infura.io/v3/33..."表示Infura上的项目id
-
return new HDWalletProvider(mnemonic, "ropsten.infura.io/v3/33c69b85140042c8b67c7d74e776c4e4", 1); // 1表示第二个账户(从0开始)
-
},
-
network_id: "*", // match any network
-
gas: 3012388,
-
gasPrice: 30000000000
-
},
-
}
-
};
命令行中: truffle compile (编译合约)
命令行中: truffle migrate --network ropsten (部署到测试网络或主网络)
调用合约:
命令行中: truffle console --network ropsten (truffle连接到指定网络的交互模式)
交互模式等同于truffle develop进入的开发环境,调用合约与开发环境下一样。
或者采用如下方式调用:
(Math是部署的合约名)