일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nest.js설명
- 러스트 기초
- 프록시배포구조
- ethers
- chainlink 설명
- 스마트컨트렉트테스트
- 러스트기초
- ethers websocket
- 컨트렉트 동일한 함수이름 호출
- ambiguous function description
- 티스토리챌린지
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트 예약어 함수이름 중복
- ethers type
- SBT표준
- Vue
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트프록시
- 러스트 기초 학습
- multicall
- git rebase
- ethers v6
- 오블완
- 머신러닝기초
- rust 기초
- ethers typescript
- 체인의정석
- Vue.js
- vue기초
- 컨트렉트 배포 자동화
- Today
- Total
목록개발/backend (92)
체인의정석
nest.js에서 type ORM을 사용할 때 복잡한 구문은 query builder를 사용하여 구현할 수 있다. https://typeorm.io/#/select-query-builder/what-is-querybuilder TypeORM - Amazing ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, typeorm.io 이번에는 query builder를 사용하여 조금 더 복잡한 조건절을 구현하는 것을 해보도록 하겠다. const firstUser = await connection .getRepository(User) .createQueryBuilde..
상황 이더리움 주소값이 틀린 경우 반환하는 에러 상황, 이러한 경우 따로 값을 반환하여야 하나, class - validtaor를 사용하면 기능이 다 작동하고 마지막에 조건을 검사하는 문제가 생김. 그 결과 성능이 떨어지기 때문에 입력값을 받자마자 검사를 해주고 마지막에 class-validtor를 써서 한번 더 검사해주는것이 맞다. 이 경우 web3를 사용할 수 있다. 하지만 web3를 사용할 경우, 풀노드와 연결을 한번 해야 한다. 풀노드와 연결을 하는 부분은 현재 모듈에 없는데 이것때메 만들기가 좀 그렇다. 성능이 역시 떨어질것 같다. 따라서 db에 있는 16진수 + 42개의 길이를 통하여서 검사를 하였다. if (address.substr(0, 2) !== '0x' || address.length..
API 설계를 하였는데 내가 설계한 부분은 그냥 data 만 들어간 부분이였다. 따라서 API의 응답도 구체화 시켜서 더 상세하게 설계하기로 하였다. 구현에서 다시 설계로 돌아와서 살펴보겠다. 조회할때도 상황에 따라서 GET과 POST를 구분한다. 상황에 따라서 get에 대한 경우와 post에 대한 경우를 구분한다. get에 대한 부분은 파라미터가 하나일 때 사용하면 괜찮다. POST인 경우 여러개의 입력값을 받아서 복잡한 쿼리를 실행 할 때 POST를 사용한다. 설계시에 이를 고려하여 설뎨를 해야 한다. 결과 값에 대한 객체를 만들어 주어야 한다. 결과 값에 대한 객체를 만들어주기 위하여 전송하는 데이터는 data로 두고 그 외에도 code 와 message를 리턴해 준다. 각 예외 상황에 맞게 알맞은..
https://github.com/typestack/class-validator GitHub - typestack/class-validator: Decorator-based property validation for classes. Decorator-based property validation for classes. Contribute to typestack/class-validator development by creating an account on GitHub. github.com class-validator에서 이더리움 주소도 판별해 준다. 타입스크립트 타입 지정할 때 이걸 이용해서 짜주어야겠다.
오랜 방황 끝에 결국 다음과 같이 구조를 짤 수 있었다. ├── addresses │ ├── addresses.module.ts │ ├── controller │ │ ├── addresses.controller.spec.ts │ │ └── addresses.controller.ts │ ├── dto │ │ ├── get-contract-command.dto.ts │ │ └── get-contract-response.dto.ts │ ├── entities │ │ └── addresses.entity.ts │ └── service │ ├── addresses.service.spec.ts │ └── addresses.service.ts ├── app.module.ts ├── config │ └── config..
다음을 통해 시스템 환경변수를 설정하였다. https://docs.nestjs.kr/techniques/configuration 네스트JS 한국어 매뉴얼 사이트 네스트JS 한국, 네스트JS Korea 한국어 매뉴얼 docs.nestjs.kr env 파일로 불러오는 부분은 계속 에러가 나서 나중에 마무리 하기로 하고, 일단 하드코딩으로 넣은 후 swagger를 먼저 보았다. https://docs.nestjs.kr/openapi/introduction 네스트JS 한국어 매뉴얼 사이트 네스트JS 한국, 네스트JS Korea 한국어 매뉴얼 docs.nestjs.kr import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.modu..
nest.js 에서 일어난 ERROR [ExceptionHandler] Nest can't resolve dependencies of the 에러는 모듈이 app.module.ts에서 중복해서 호출될 때 일어난다. 따라서 중복된 부분을 삭제를 해주면 해결된다.
정의한 entities를 바탕으로 services에서 다음과 같이 적용을 했다. import { Injectable } from '@nestjs/common'; import { InjectRepository} from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Addresses } from '../entities/addresses.entity' @Injectable() export class AddressesService { constructor( @InjectRepository(Addresses) private addressesRepository: Repository, ) {} findOne(address: string) { r..