일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 머신러닝기초
- 스마트컨트렉트프록시
- Vue.js
- ethers
- 스마트컨트렉트 함수이름 중복 호출
- 프록시배포구조
- vue기초
- multicall
- 러스트기초
- 스마트 컨트렉트 함수이름 중복
- 체인의정석
- chainlink 설명
- 깃허브명령어
- SBT표준
- ethers type
- ethers v6
- ambiguous function description
- git rebase
- 컨트렉트 동일한 함수이름 호출
- 러스트 기초 학습
- Vue
- rust 기초
- nest.js설명
- 러스트 기초
- 스마트컨트렉트 예약어 함수이름 중복
- nestjs 튜토리얼
- ethers typescript
- 컨트렉트 배포 자동화
- ethers websocket
- 스마트컨트렉트테스트
Archives
- Today
- Total
체인의정석
nest.js) 예외처리 - 이더리움 주소값인지 확인하고 아닐 시 에러리턴 본문
728x90
반응형
상황 이더리움 주소값이 틀린 경우 반환하는 에러 상황,
이러한 경우 따로 값을 반환하여야 하나,
class - validtaor를 사용하면 기능이 다 작동하고 마지막에 조건을 검사하는 문제가 생김.
그 결과 성능이 떨어지기 때문에 입력값을 받자마자 검사를 해주고 마지막에 class-validtor를 써서 한번 더 검사해주는것이 맞다.
이 경우 web3를 사용할 수 있다.
하지만 web3를 사용할 경우, 풀노드와 연결을 한번 해야 한다. 풀노드와 연결을 하는 부분은 현재 모듈에 없는데 이것때메 만들기가 좀 그렇다. 성능이 역시 떨어질것 같다. 따라서 db에 있는 16진수 + 42개의 길이를 통하여서 검사를 하였다.
if (address.substr(0, 2) !== '0x' || address.length !== 42) {
const code = RESPONSE_CODE.INVALID_ADDRESS;
const message = RESPONSE_MESSAGE.INVALID_CONTRACT_ADDRESS;
return {
code: code,
message: message,
data: {
address: address,
},
};
사실 더 복잡한 조건검사가 가능하지만 마지막에 검사해주는 부분이 한번 더 들어가기 때문에 이정도로만 해도 문제가 없을것 같다.
저런 조건문 같은 경우 내가 빨리 테스트를 하려면 아래와 같은 codepen에 가서 조건이 잘 맞나 빠르게 테스트 해 볼 수 있다.
https://codepen.io/codeBelt/pen/OVjxJN
728x90
반응형
'개발 > backend' 카테고리의 다른 글
리팩토링) nest.js 기본 구조 체계화 하기 (0) | 2021.10.26 |
---|---|
TypeORM - query builder/ find 함수로 쿼리기능 구현 (0) | 2021.10.25 |
Nest.js) API 설계를 위한 피드백- 조회기능 (0) | 2021.10.20 |
class-validator) 이더리움 주소, 비트코인 주소 형태 판별하기 (0) | 2021.10.19 |
Nest.js) 구조와 작업순서 총정리 (0) | 2021.10.19 |
Comments