일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트프록시
- 프록시배포구조
- SBT표준
- Vue
- ambiguous function description
- ethers v6
- ethers websocket
- 컨트렉트 배포 자동화
- multicall
- 깃허브명령어
- chainlink 설명
- Vue.js
- 스마트컨트렉트 예약어 함수이름 중복
- nestjs 튜토리얼
- ethers
- ethers typescript
- 러스트기초
- vue기초
- ethers type
- 체인의정석
- 스마트컨트렉트테스트
- 러스트 기초
- 러스트 기초 학습
- 컨트렉트 동일한 함수이름 호출
- rust 기초
- nest.js설명
- 스마트 컨트렉트 함수이름 중복
- 머신러닝기초
- git rebase
Archives
- Today
- Total
체인의정석
스캔에 뜨지 않는 EVM 에러 코드 확인하는 법, hardhat console 사용 본문
728x90
반응형
EVM 체인을 포크해서 사용하는 경우에 에러 메세지가 안뜨는 경우가 종종 발생합니다.
이때 estimateGas를 쓰게 되면 에러 메세지를 확인할 수 있습니다. (물론 과거 상황의 에러의 경우 estimateGas를 그때 시점에서 하는 것이 아니기에 안되는 케이스도 존재합니다.)
따라서 현재 트랜잭션에서 에러가 발생했는데 tenderly나 이더스캔에서 작동을 하지 않는 경우에 에러 메세지 확인하는 법에 대해서 정리해보았습니다.
1. 원하는 네트워크 환경으로 콘솔 들어가기
먼저 에러 코드를 확인할 testNetwork 에 맞춰서 하드햇 콘솔을 띄웁니다. 그럼 콘솔창에 들어가집니다.
npx hardhat console --network testNetwork
2. 콘솔에서 트랜잭션 가져오고 gasPrice 제거하기
tx = await ethers.provider.getTransaction("")
다만, gasPrice가 없어야 estimateGas가 가능하기 때문에 gasPirce를 지워줘야합니다.
delete tx.gasPrice
3. 이제 estimateGasPrice를 해줍니다.
ethers.provider.estimateGas(tx)
이렇게 해주면 에러가 날 경우 에러메세지를 확인할 수 있습니다.
또한 같은 원리로 콘솔창에서 바로 조회용 쿼리를 날려볼 수도 있습니다.
먼저 컨트렉트 정보를 가져온 후에
test = await ethers.getContractAt("ContractName","0x...")
함수로 바로 호출을 날려주면 됩니다.
test.exampleView("address")
마찬가지로 스크립트를 작성하기 귀찮고 일회용인 경우 이렇게 콘솔창을 활용하면 편합니다.
728x90
반응형
'블록체인 > Ethers & web3' 카테고리의 다른 글
ethers에서 블록태그(block tag) 사용하기 (0) | 2023.05.23 |
---|---|
web3의 getPastEvent가 있다면ethers에는 query filter가 있다. query filter 설명 (0) | 2023.05.15 |
hardhat node 버전 맞추기 + 여러 컨트렉트 소스 한번에 컴파일하기 (0) | 2023.03.17 |
ethers, hardhat 환경에서 이벤트를 통한 대용량 토큰 스냅샷 처리 프로그램 제작하기 (엑셀파일로 스냅샷 만들기) (0) | 2023.03.16 |
큰 규모의 서비스에서의 백엔드 최적화 방안들 (0) | 2023.03.16 |
Comments