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是部署的合约名)