eth-gas-reporter 사용

좋은 스마트 계약은 가스에 최적화되고 공격에 취약하지 않은 계약입니다.
계약을 프로덕션에 배포하기 전에 이러한 측면을 분석하는 데 도움이 되는 몇 가지 도구가 있습니다.
(내가 블로그 시리즈를 만들었고 관심이 있다면)

이 블로그에서는 eth-gas-provider를 사용하여 계약의 배포 및 함수 호출을 위한 가스 소비 및 가스 가격 보고서를 얻는 방법을 살펴봅니다.
읽기가 지루하다면 myGitHub repo로 이동하여 단계를 따르십시오.

시작하겠습니다.


  • 아직 설치하지 않은 경우 안전모를 설치하십시오.
  • npm install --save-dev hardhat
  • 샘플 안전모 프로젝트를 만듭니다.
  • npx hardhat
    이렇게 하면 다른 파일 및 디렉터리와 함께 계약 디렉터리에 Greeter.sol이 생성됩니다.
  • 종속성 설치:
  • npm i hardhat-gas-reporter
    npm i dotenv
  • 다음과 같이 .env 파일(기본 디렉토리에)을 만듭니다.

  • coinMarketCap_API= //get your api-key at https://coinmarketcap.com/api/pricing/
    REPORT_GAS= true // set to false when you don't want gas-report
    


  • 이제 hardhat.config.js 파일로 이동하여 그 내용을 다음으로 바꿉니다.

  • require("@nomiclabs/hardhat-waffle");
    require("hardhat-gas-reporter");
    const dotenv = require("dotenv");
    dotenv.config();
    
    module.exports = {
      solidity: "0.8.4",
      gasReporter: {
        enabled: (process.env.REPORT_GAS) ? true : false, // will give report if REPORT_GAS environment variable is true
        currency: 'USD', // can be set to ETH and other currencies (see coinmarketcap api documentation)
        coinmarketcap: process.env.coinMarketCap_API // to fetch prices from coinmarketcap api
      }
    };
    


  • 마지막으로 다음 명령을 사용하여 샘플 계약에 대한 가스 보고서를 컴파일, 테스트 및 가져옵니다.
  • npx hardhat test

    산출:



    다음과 유사한 출력을 기대할 수 있습니다.



    USD(평균)는 ETH 가격과 현재 가스 가격에 따라 달라질 수 있습니다. Avg는 함수 호출 및 계약 배포를 위한 가스 소비량을 보여줍니다.

    좋은 웹페이지 즐겨찾기