MateMask既可以连接以太坊的主网,也可连接以太坊的测试网(ropsten网、rinkeby网等),还可以连接私有链,只要给出URL和端口就可以连接。这里介绍MateMask连接私有链节点ganache。
1、创建twoSol工程
mkdir twoSolcd twoSolnpm init -ytruffle init
2、修改package.json和truffle-config.js
2.1 修改package.json
修改twoSol/package.json文件,主要是添加dependencies、devDependencies这2项,如下:
//package.json
{"name": "twosol","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC","dependencies": {"@openzeppelin/contracts": "^2.5.0","@truffle/hdwallet-provider": "^1.1.1","bignumber": "^1.1.0","bignumber.js": "^8.1.1","chai": "^4.2.0","chai-as-promised": "^7.1.1","eslint": "^5.15.0","ethereumjs-tx": "^1.3.7","request": "^2.88.2","web3": "^1.3.0"},"devDependencies": {"@babel/core": "^7.12.3","@babel/preset-env": "^7.12.1"}}
2.2 修改truffle-config.js
修改twoSol/truffle-config.js,主要是开启development字段和设置sol编译版本,如下。
//truffle-config.js需要修改的地方有2个:
//1)开启development字段 networks: {development: { host: "127.0.0.1", // Localhost (default: none) port: 8545,// Standard Ethereum port (default: none) network_id: "*", // Any network (default: none)},... },// 2)指定solidity版本compilers: {solc: {version: "0.5.16",...}},
2.3 安装依赖包
npm install
3、创建合约和相关的部署脚本
3.1 创建WhiteRiceToken.sol合约
在twoSol/contracts目录下,新建一个合约名称为WhiteRiceToken.sol
vim contracts/WhiteRiceToken.sol
//WhiteRiceToken.sol
pragma solidity ^0.5.0;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";contract WhiteRiceToken is ERC20,ERC20Detailed {constructor() public ERC20Detailed("WhiteRiceToken","WRT",18) {_mint(msg.sender, 10000000000 * (10 ** uint256(decimals())));}}
3.2 创建合约的部署脚本
在twoSol/migrations目录下,新建一个合约名称为2_deploy_WRT.js
vim migrations/2_deploy_WRT.js
//2_deploy_WRT.js
const WhiteRiceToken = artifacts.require("WhiteRiceToken");module.exports = function(deployer) {deployer.deploy(WhiteRiceToken);}
3.3 工程的目录结构
图(1) twoSol的工程目录
4、启动ganache节点
a) 配置ganache
设置ganache的IP和端口,依次如下:
IP:127.0.0.1
Port:8545
图(2) 配置ganache节点
b) 点击[restart]按钮,即可重启ganache
5、编译并部署合约
进入truffle的console模式,编译使用compile命令,部署使用migrate命令。
truffle consolecompilemigrate
合约部署成功后,会生成一个合约地址,此WRT合约地址为:0x7c8d677B43DA2Fd8d64802558F2DBdAabfbaB7A1
6、设置节点参数,并重启浏览器
在MetaMask里设置localhost:8545网络连接,用来连接本地的私有链节点,比如ganache,然后,重启google浏览器。如图(3)所示。
图(3) 在MateMask里,设置私有链节点参数
7、连接MateMask
7.1 以助记词的方式登录MateMask
a) 选中网络类型:localhost 8545,点击[import using Secret Recovery Phrase]
图(4) 选中”助记词方式”登录
b)拷贝ganache里的助记词到MateMask
图(5) 拷贝助记词到MateMask
一路next即可。
7.2 添加WRT合约地址
ganache有10个账户:Account1~Account10,默认用第一个账户Account1来发布合约,消耗的gas也是第一个账户提供的,所以Account1是WRT合约的主人。
在Account1页面,点击[添加代币] —> 填写WRT合约的地址,一路next即可。
图(6) 在Account1里添加ERC20 Token
图(7) 填写合约地址
图(8) 一路next
图(9) Account1的Token列表