일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러스트 기초 학습
- 스마트 컨트렉트 함수이름 중복
- 체인의정석
- Vue.js
- erc4337 contract
- 스마트컨트렉트 예약어 함수이름 중복
- ethers typescript
- erc4337
- cloud hsm 서명
- 오블완
- ethers websocket
- ethers v6
- 러스트 기초
- 스마트컨트렉트 함수이름 중복 호출
- cloud hsm 사용하기
- redux toolkit 설명
- 계정추상화
- SBT표준
- ambiguous function description
- 머신러닝기초
- cloud hsm
- rust 기초
- vue기초
- Vue
- 러스트기초
- ethers type
- redux 기초
- 컨트렉트 동일한 함수이름 호출
- 티스토리챌린지
- git rebase
- Today
- Total
목록전체 글 (527)
체인의정석
자바스크립트에서 비교 연산을 할 때 "=="를 사용하는것은 좋지 않다. 이유는 다음과 같다. 암묵적인 형변화를 실시하기 때문에 데이터 타입 오류를 덮어버리는 효과를 가지고 있어서 오류에 대한 대응을 놓칠 수 있다고 본다. https://ui.toast.com/fe-guide/ko_ANTI-PATTERN#%EB%8F%99%EB%93%B1-%EB%B9%84%EA%B5%90-%EC%97%B0%EC%82%B0-%EC%8B%9C-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8B%A4 안티 패턴 안티 패턴이란 습관적으로 많이 사용하는 패턴이지만 성능, 디버깅, 유지보수, 가독성 측면에서 부정적인 영향을 줄 수 있어 지양하는 패턴이다. 이..
nest.js 모듈을 써서 예외 처리를 하다가 보니 에러가 iterable하지 않는다는 말이 나와 찾아 보았다. https://docs.w3cub.com/javascript/errors/is_not_iterable Errors: Is Not Iterable - JavaScript - W3cubDocs Errors: is not iterable The JavaScript exception "is not iterable" occurs when the value which is given as the right hand-side of for…of or as argument of a function such as Promise.all or TypedArray.from, is not an iterable obje..
페이징 부분에 다음과 같은 실수를 하였다. 아래처럼 "|"를 하면 두 값에 대한 byte연산을 진행하게 된다. 이러한 비트 연산을 원래 의도에서 벗어났다. this.page = page | 1; this.rpp = rpp | 20; 따라서 다음과 같은 논리연산으로 해야 값이 비었을 때 기본값을 넣어줄 수 있게 된다. this.page = page || 1; this.rpp = rpp || 20; https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR_assignment Logical OR assignment (||=) - JavaScript | MDN The logical OR assignment (x |..
Controller 부분에서 아래와 같이 함수를 짜면 잘 보이지만 swagger에서는 잘 잡히지 않는다. @Param('ethAddress') ethAddress: string, @Query('쿼리파라미터1') 쿼리파라미터1?: string, @Query('쿼리파라미터2') 쿼리파라미터2?: string, @Query('쿼리파라미터3') 쿼리파라미터3?: number, 다음과 같이 optional 하게 주려고 해도 required로 나온다. https://github.com/nestjs/nest/issues/2169 Please Add `optional: boolean` to @Query route param decorator · Issue #2169 · nestjs/nest I'm submitting ..
이더리움 value의 경우 숫자가 커서 빅넘버처리를 안해주면 에러가 나게 된다. 단위가 너무 크기 때문인데 조사해본 결과 빅넘버 처리는 결과 목적에 맞는 모듈을 사용하는것이 정답이라고 한다. 타입스크립트도 사용하였으니 한번 유명한 ether.js를 찾아보았다. 처음 써보는데 너무 편리했다. 일단 ether.js 에서 사용하는 bignumber의 경우에는 elliptic로직에서 쓰이는것과 같은 방법이기 때문에 가장 안전하다고 한다. 오랜기간 서칭을 한 결과 몇가지 케이스에 대한 방안을 알 수 있었다. 1. 이더리움 단위로 만들 경우 //ethers.utils.formatEther( value ) ⇒ string const value = BigNumber.from("1000000000000000000"); ..
입력값을 수정하는 부분이 nest.js에서 매우 중요한데, 사실 이게 타입스크립트를 쓰는 이유이기도 한다. 타입스크립트를 사용하게 되면, 타입을 모두 지정해 줄 수 있어서 모든 request , response 그리고 그 안에 들어가는 요소들을 객체화 시키고 타입을 지정하여 모든 상황에 대한 예외를 잘 잡아 줄 수 있다. 1. Class validator 사용의 경우 이번 프로젝트를 구현하면서 가장 많이 사용한 것은 class-validator 이다. Validation Pipe 모듈의 경우 클래스 형태로 요청을 받아줄 때 사용가능하기 때문에 일반적인 string의 형태나 단일 타입에 적용 시킬 수는 없다. 따라서 조회를 쿼리 파라미터로 실행하는 경우 class-validator를 실행한다고 보면 된다...
1. 공통 예외처리 부분 에러 처리의 경우 결과적으로 invalid input과 internal server error로 나뉘었다. 여기에 대한 구조는 다음과 같다. @Get('/:ethAddress/경로') async 함수이름( @Param('ethAddress') ethAddress: string, . . . @Query('page') page?: number, ): Promise { //오류의 경우 공통 부분으로 빼두어서 관리 const 객체화된요청 = new RelatedTransactionsRequest( ethAddress, new Date(fromDate), . . page * 1, ); const errors = await validate(객체화된요청); //쿼리 파라미터가 있는 경우 va..
노드 버전을 높이고 나서 npm install을 하다가 갑자기 다음 에러가 떴다. npm ERR! git@github.com: Permission denied (publickey). npm ERR! fatal: 리모트 저장소에서 읽을 수 없습니다 npm ERR! npm ERR! 올바른 접근 권한이 있는지, 그리고 저장소가 있는지 npm ERR! 확인하십시오. vs 코드를 껐다켜도 보니 에러가 많이 줄어있어 컴퓨터도 재시작해봤지만 효과가 없었다. 이런 경우 깃허브의 접근 문제인데 1. 회사에서 쓰는 모듈에 접근 권한이 없는 경우 이 경우는 깃허브에 들어가서 코드를 볼 수있으면 권한이 있는것이니 패스했다. 2. vs코드에서 깃허브 로그인이 풀린경우 이번엔 2번의 케이스 같아 다음과 같은 병령어로 현재 접속된..