MateMask既可以连接以太坊的主网,也可连接以太坊的测试网(ropsten网、rinkeby网等),还可以连接私有链,只要给出URL和端口就可以连接。这里介绍MateMask连接私有链节点ganache。
1、创建twoSol工程mkdir twoSol
cd twoSol
npm init -y
truffle 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 工程的目录结构
4、启动ganache节点
a) 配置ganache
设置ganache的IP和端口,依次如下:
IP:127.0.0.1
Port:8545
b) 点击[restart]按钮,即可重启ganache
5、编译并部署合约进入truffle的console模式,编译使用compile命令,部署使用migrate命令。
truffle console
compile
migrate
合约部署成功后,会生成一个合约地址,此WRT合约地址为:0x7c8d677B43DA2Fd8d64802558F2DBdAabfbaB7A1
6、设置节点参数,并重启浏览器在MetaMask里设置localhost:8545网络连接,用来连接本地的私有链节点,比如ganache,然后,重启google浏览器。如图(3)所示。
7、连接MateMask 7.1 以助记词的方式登录MateMask
a) 选中网络类型:localhost 8545,点击[import using Secret Recovery Phrase]
b)拷贝ganache里的助记词到MateMask
一路next即可。
7.2 添加WRT合约地址 ganache有10个账户:Account1~Account10,默认用第一个账户Account1来发布合约,消耗的gas也是第一个账户提供的,所以Account1是WRT合约的主人。
在Account1页面,点击[添加代币] —> 填写WRT合约的地址,一路next即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)