? ? SushiSwap是一个去中心化的交易所,其代码是由Uniswap V2分叉而来,支持质押挖矿、闪电贷等功能,其中MasterChef合约,用于质押挖矿。下面,介绍MasterChef合约的测试方法。
1、拉取Sushiswap工程
git clone https://github.com/sushiswap/sushiswap.git
2、修改hardhat.config.js文件
? ? 将hardhat.config.js复制一份,源文件重命名为hardhat.config00.js,然后,将hardhat.config.js内容修改如下: ? ? //hardhat.config.js
/**
* @type import('hardhat/config').HardhatUserConfig
*/
require("@nomiclabs/hardhat-waffle");
//选取ganache下的4个账户的私钥
// const PRIVATE_KEY1 = "9066...4c7f";
// const PRIVATE_KEY2 = "0c933...8b9c";
// const PRIVATE_KEY3 = "28ba...2c9d";
// const PRIVATE_KEY4 = "da9f...1808";
module.exports = {
solidity: "0.6.12",
networks: {
// ganache: {
// url: `http://127.0.0.1:9545`,
// accounts: [`0x${PRIVATE_KEY1}`,`0x${PRIVATE_KEY2}`,`0x${PRIVATE_KEY3}`,`0x${PRIVATE_KEY4}`]
// },
// ropsten: {
// url: `https://eth-ropsten.alchemyapi.io/v2/${ALCHEMY_API_KEY}`,
// accounts: [`0x${ROPSTEN_PRIVATE_KEY}`]
// },
// rinkeby: {
// url: `https://eth-rinkeby.alchemyapi.io/v2/${ALCHEMY_API_KEY}`,
// accounts: [`0x${rinkeby_PRIVATE_KEY}`]
// },
}
};
3、安装依赖包
3.1 修改yarn.lock
? ? 修改yarn.lock的第3669行,改成如下,如图(1)所示:
dependencies:
ethereumjs-abi "0.6.8"
图(1) 在yarn.lock的dependencies字段,指定ethereumjs-abi的版本号
3.2 yarn安装依赖包
sudo yarn install
4、测试MasterChef合约
4.1 启动hardhat本地测试网节点
? ? 启动hardhat的测试网节点,命令如下:
npx hardhat node
? ? 它默认有20个账户,每个账户有10000ETH,如图(2)所示:
图(2) 启动hardhat本地的测试节点
4.2 编译工程
npx hardhat compile
4.3 测试合约
? ? a) 测试MasterChef合约
npx hardhat test test/MasterChef.test.ts
? ? 效果如下:
图(3) 使用npx测试MasterChef合约
? ? 如图(3)所示,8个案例,全部测试通过。
? ? b) 测试全部合约
npx hardhat test --verbose
|