掌握将智能合约部署到ganache测试网,首先要构建本地的ganache,然后用ganache中的用户去连接到ganache。
实验原理
ganache是一个模拟区块链网络的本地区块链程序,里面有20个用户共我们使用,方便我们模拟用户的使用,进行代码测试等 *** 作。ethers.js为以太坊区块链及其生态系统提供一个小而完整的 JavaScript API 库。方便开发者更好的与智能合约交互。fs是js读取文件的一个组件,方便我们读取目录中的文件。
开始条件
安装好基于windows系统的子系统wsl。默认安装ubuntu20.04。在ubuntu中安装node.js安装好solidity的编译器使用yarn需要先进行设置,在命令行中输入corepack enable
实验过程
下载ganche下载ethers.js下载fs编写deploy.js部署合约
实验步骤
ganache下载
yarn add ganache-cli
2.开启本地ganache
ganache-cli
** ganache中内置了10个账户, 记住ip和其中一个私钥,通过ip和私钥来连接到ganache(窗口别关闭) **
另外启动一个窗口完成后面的 *** 作
下载ethers.jsyarn add ethers
下载fs
yarn add fs-extra
在test目录中创建 一个deploy.js文件(文件源码在后面) //test目录是上一章创建并编译的项目路径
上一章的连接地址(solidity代码编译)[]
touch deploy.js
vim deploy.js
运行deploy.js
node deploy.js
结果如下:左边为ganache的运行日志,右边为运行deploy.js中控制台打印的部署合约的相关信息。
调用部署在ganache的智能合约
欢迎讨论学习⊙﹏⊙
** deploy.js的代码如下:**
// 引包
const ethers = require("ethers");
const fs = require("fs-extra");
async function main() {
// 建立ganache网络
let provider = new ethers.providers.JsonRpcProvider("http://127.0.0.1:8545");
//用户连接到网络
let wallet = new ethers.Wallet(
"0x955befd54e2c3d5825644c32eb9770dc273e62420139724eadb42969eb33d19e", //私钥
provider
);
// 获取solidity的接口和字节码
const abi = fs.readFileSync("./SimpleStorage_sol_SimpleStorage.abi", "utf8");
const binary = fs.readFileSync(
"./SimpleStorage_sol_SimpleStorage.bin",
"utf8"
);
//用户创建交易
const contractFactory = new ethers.ContractFactory(abi, binary, wallet);
console.log("Deploying, please wait...");
//用户部署智能合约
const contract = await contractFactory.deploy();
console.log(contract);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)