일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ethers typescript
- ethers v6
- 머신러닝기초
- 체인의정석
- 러스트기초
- ambiguous function description
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트 함수이름 중복 호출
- multicall
- 러스트 기초 학습
- 스마트컨트렉트프록시
- 프록시배포구조
- 깃허브명령어
- nest.js설명
- ethers type
- Vue.js
- vue기초
- 컨트렉트 배포 자동화
- ethers
- 러스트 기초
- nestjs 튜토리얼
- chainlink 설명
- Vue
- 스마트컨트렉트테스트
- rust 기초
- SBT표준
- 컨트렉트 동일한 함수이름 호출
- git rebase
- 스마트 컨트렉트 함수이름 중복
- ethers websocket
- Today
- Total
목록분류 전체보기 (488)
체인의정석
모듈의 경로를 설정해줄때 폴더명의 대소문자가 맞지 않아서 에러가 났다. 확인해 보니 git에 올릴 때 폴더 경로의 대소문자를 인식하지 못해서 난 에러였다. 해결방법은 다음 명령어를 입력해주면 된다. git config core.ignorecase false
다음과 같이 short hand가 특정 객체안에 적용될 경우 new Object{ legalPersonName: accountInfoEntity.companyName, legalPersonNameIdentifierType, } 적용된 short hand 및 ... 표현은 상단에 위치시켜야 한다. new Object{ legalPersonNameIdentifierType, legalPersonName: accountInfoEntity.companyName } 따라서 위와 같이 순서를 바꾸어 준다. 또한 아래 예시코드를 보면 알 수 있다. const a = "aa"; const b = "bb"; new CC { aa, bb, companyName: accountInfoEntity.companyName, } ..
모듈을 깃허브에 올려서 사용할 때 버전을 계속해서 관리해 주어야 한다. 버전은 package.json에 버전을 명시하는 부분과 git tag를 추가하는 부분이 있다. 먼저 package.json에는 다음과 같이 버전을 명시해야 한다. "version": "1.0.2", 이 버전은 새로운 배포가 이루어질 때마다 올리도록 한다. 또한 깃 테그도 다룰줄 알아야 한다. 깃 테크 후에 메세지 달기 git tag -a v1.0.2 -m"Release version 1.0.2" 깃 테크 깃허브에 반영시키기 위해서는 아래와 같이 명령어를 쳐준다. git push origin --tags 두 버전은 같아야한다. 사수님 말대로 깃허브 커맨드라인을 계속해서 쓰고 있는데 깃허브를 그동안 툴만 써왔는데 커멘드를 쓰고 툴을 체크..
타입스크립트에서 타입을 any로 지정하는것은 최대한 지양해야하는 부분이다. 따라서 아래와 같이 any 타입으로 지정되어 있는 부분을 string으로 받아와서 enum으로 고칠 수 있다. 여기서 사용한 것은 key of type of로 특정 변수를 문자열로 받아와서 key of type of를 사용하면 enum 타입에 해당되며 해당 키가 있는지를 체크하여 리턴 해줄 수 있다. keyof 는 객체의 키 값을 나타내며 type of는 해당 값의 타입을 나타낸다. B가 enum이고 A가 string입력 값일때 A as keyof typeof B 와 같이 사용하면 A라는 string을 B에 대핟하는 키 값과 타입으로 바꿔주는 역할을 한다. 따라서 이 구문을 이용하여 체크가 가능하다. 참고링크 https://sta..
에러를 발생시키거나 유효성을 검증하는 로직은 하나의 common 클래스로 만들고 그걸 가져와서 새로 validate 함수로 수정해 준다. 이런 식으로 추상 클래스를 모두 만들어주고 validate를 가져와서 오버라이딩 시키면서 예외를 잡아주는 구조를 잡아주는 것이 바람직하다. 적용전 static fromJson(json: IntermediaryVASPType) { if (!json.intermediaryVASP) throw new Error(`Not a valid ivms101 structure : intermediaryVASP should be defined`); return new IntermediaryVASP({ intermediaryVASP: Person.fromJson(json.intermedi..
타입스크립트에서 implements를 사용하면 정의한 인터페이스를 구현해야 에러가 안나게 된다. 만약 인터페이스를 가져와서 constrcutor에 만든 경우 implements를 추가해주도록 한다. export interface IntermediaryVASPType { sequence: string; } export class IntermediaryVASP extends Common implements IntermediaryVASPType { sequence: string; }
optional chainning을 적용할 경우 아래와 같이 undeifinded가 계속해서 나오게 된다. optional chainning에서는 리턴 값이 undefined를 주기 때문에 이를 유의해야한다. Address { addressType: 'BIZZ', department: undefined, subDepartment: undefined, streetName: undefined, buildingNumber: undefined, buildingName: undefined, floor: undefined, postBox: undefined, room: undefined, postcode: '06232', townName: 'Seoul', townLocationName: undefined, dist..
optional chainning을 이용하면 아래와 같이 null이나 undeifined 같은 케이스를 짧은 구문으로 검사할 수 있다. 아래와 같이 foo 밑에 있는 foo bar, foo bar, baz 가 null 이거나 undeifined인지 체크하는 구문을 단축 시킬 수 있다. optional chainning 은 중간에 없는 요소가 나오면 undefined를 리턴하고, 중간에 요소가 모두 있으면 계속해서 실행되게 된다. // Before if (foo && foo.bar && foo.bar.baz) { // ... } // After-ish if (foo?.bar?.baz) { // ... } https://www.typescriptlang.org/docs/handbook/release-note..