MateMask连接本地私有链节点ganache

MateMask连接本地私有链节点ganache,第1张

    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 工程的目录结构
图(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 console
compile
migrate

    合约部署成功后,会生成一个合约地址,此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列表

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/736254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存