일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- ethers
- ethers websocket
- Vue.js
- ambiguous function description
- 체인의정석
- 오블완
- 컨트렉트 동일한 함수이름 호출
- ethers type
- chainlink 설명
- 스마트컨트렉트프록시
- 티스토리챌린지
- nest.js설명
- 프록시배포구조
- 스마트컨트렉트테스트
- 러스트 기초
- 스마트컨트렉트 예약어 함수이름 중복
- 컨트렉트 배포 자동화
- 러스트기초
- ethers v6
- 머신러닝기초
- SBT표준
- 러스트 기초 학습
- rust 기초
- vue기초
- multicall
- 스마트컨트렉트 함수이름 중복 호출
- ethers typescript
- Vue
- 스마트 컨트렉트 함수이름 중복
- git rebase
Archives
- Today
- Total
체인의정석
ethers에 typescript 제대로 적용해보기 본문
728x90
반응형
1. 타입스크립트를 사용하면 테스트 코드에서 타입을 가져와서 사용할 수 있다.
2. ethers에서 함수를 사용할때 그동안 any를 사용했었다. 근데 여기에 대한 타입은 어디서 가져올까?
eturn ethers.provider.getTransactionReceipt(tx)
예를들어 이렇게 Transaction 영수증을 가져오는 부분이 있다고 쳐보자
https://docs.ethers.org/v5/api/providers/types/#providers-TransactionReceipt
provider.getTransactionReceipt( hash ) ⇒ Promise< TransactionReceipt >
타입을 any로 둘게 아니라 내가 사용한 모듈의 타입을 가져와서 지정해 주어야 하는 것이였다.
다음부터 any로 만들지 말고 공식 문서를 잘 찾고 거기에 해당하는 타입을 잘 잡아주어야겠다.
3. 다시 잘 살펴보니 ethers ts 모듈을 다운 받으면 이미 타입은 다 정의되어 있었다. 또한 2번에 설명한 타입들에 맞는 형태라면 any를 쓰지 않아도 오류가 나지 않았었다.
만약 명시적으로 타입을 지정해주어야 한다면 해당 모듈에 직접 들어가서 위치를 찾아서 가져오면 명시적인 타입 지정이 되지만 제대로 된 타입일 경우 내부적으로 이미 타입이 지정되고 검사까지 되므로 any를 쓸 필요가 없었다.
따라서 타입을 명시적으로 지정해야 하는 경우는 테스트 코드 또는 타입체인을 써서 이미 배포된 컨트렉트에 쉽게 테스트를 하려는 경우에 해당된다.
728x90
반응형
'블록체인 > Ethers & web3' 카테고리의 다른 글
hardhat, ethers 테스트 코드 스크립트로 바꾸는 법 (여러 지갑주소로 서명하는 스크립트 만드는법) (0) | 2023.03.11 |
---|---|
hardhat 환경에서 잘 작동하지 않는 benchmark와 그에 대한 해결 방안 (0) | 2023.02.21 |
Typescript에서 hardhat 사용하기 - task 사용하는법, config파일 밖으로 꺼내서 코드 가독성 높이는 법 (0) | 2022.12.16 |
ethers & hardhat에서 이벤트 로그 다루기 (검색부터 필터링과 decode) (1) | 2022.11.23 |
ERC20 만들고 test code까지 작성하기 (0) | 2022.08.11 |
Comments