hardhat-contract-prompts
hardhat을 이용해서 smart contarct 테스트를 할 때 사용할만한 라이브러리.
hardhat project directory안 contracts/ 에 Solidity 파일을 넣으면, 해당 smart contract에 대한 메소드를 prompts로 제공해준다.
(현재는 view 태그가 붙은 메소드에 대한 기능만 구현되어 있음)
repo : https://github.com/dbadoy/hardhat-contract-prompts
Install
Intsall in hardhat project root directory.
npm i hardhat-contract-prompts
Usage
- Place solidity code to 'contracts' in hardhat project path.
- Import prompt.
import { ViewContractPrompt } from 'hardhat-contract-prompts';
- Generate prompt.
const vcp = new ViewContractPrompt();
- Set contract name, prompt message.
await vcp.prepare('CONTRACT_NAME', 'my prompts...');
- Execute.
// contract -> ethers.Contract
const res = await vcp.executre(contract);
console.log(res);
- Run script.
// It doesn't work in 'npx hardhat test'. Use 'hardhat run'.
$ npx hardhat run [script]
Example
Example 1 : Greeter
import { ViewContractPrompt } from './hardhat-prompt';
async function temp() {
const Greeter = await ethers.getContractFactory("Greeter");
const greeter = await Greeter.deploy("Hello, world!");
await greeter.deployed();
expect(await greeter.greet()).to.equal("Hello, world!");
const setGreetingTx = await greeter.setGreeting("Hola, mundo!");
await setGreetingTx.wait();
const vcp = new ViewContractPrompt();
await vcp.prepare('Greeter', 'greeter test prompts.');
const res = await vcp.execute(greeter);
console.log(res);
}
// npx hardhat run test/greeter.ts
Run
Example 2 : myERC20
import { ViewContractPrompt } from './hardhat-prompt';
async function temp() {
const Token = await ethers.getContractFactory("Token");
const token = await Token.deploy(ethers.utils.parseEther('100000000'), 'MyToken', 'MTK');
await token.deployed();
const vcp = new ViewContractPrompt();
await vcp.prepare('Token', 'Token test prompts.');
const res = await vcp.execute(token);
console.log(res);
}
// npx hardhat run test/token.ts
Run
Author And Source
이 문제에 관하여(hardhat-contract-prompts), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dbadoy/hardhat-contract-prompts저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)