CodingSpace

(니모닉 지갑 개발하기) Chapter1: 니모닉 구문 (mnemonic phrase) 생성 본문

블록체인

(니모닉 지갑 개발하기) Chapter1: 니모닉 구문 (mnemonic phrase) 생성

개발자_조이킴 2022. 10. 22. 16:32


What:

  • 메타마스크와 같은 가상 지갑에서 사용하는 니모닉 지갑 개발을 목표로 하는 컨텐츠
  • Chapter1에서는 니모닉 지갑 생성에 필요한 니모닉 12구문(mnemonic phrase)을 생성하는 API 구현에 관한 컨텐츠

Objectives. 

  • 니모닉 지갑 생성에 사용할 니모닉 12구문을 생성하는 API를 만든다.
  • 생성한 API를 편리하게 테스트할 수 있게 Swagger를 작성한다.

Develop. 

1. eth-lightwallet 패키지 사용

니모닉 12구문을 랜덤하게 생성하기 위해 eth-lightwallet을 사용했다.

eth-lightwallet의 docs 주소는 아래와 같다:

https://www.npmjs.com/package/eth-lightwallet 

 

eth-lightwallet

A lightweight ethereum javascript wallet.. Latest version: 4.0.0, last published: 3 years ago. Start using eth-lightwallet in your project by running `npm i eth-lightwallet`. There are 52 other projects in the npm registry using eth-lightwallet.

www.npmjs.com

 

2. eth-lightwallet 패키지 설치

아래 실행문으로 eth-lightwallet 패키지를 설치할 수 있다.

npm install eth-lightwallet

 

3. eth-lightwallet의 generateRandomSeed() 메소드로 니모닉 12구문 랜덤 생성기 구성하기

eth-lightwallet의 generateRandomSeed() 메소드로 랜덤한 니모닉 12구문을 쉽게 생성할 수 있다.코드를 참고해서 니모닉 12구문 랜덤 생성기를 만들어 보자.

import lightwallet from 'eth-lightwallet'

export default class WalletService {
    
    static async generateMnemonicCode() {    
        try {
            let mnemomic = lightwallet.keystore.generateRandomSeed();
            return mnemomic;    
        }   
        catch (err) {
            throw(err);
        } 
    }
}

 

4. Swagger를 이용한 니모닉 12구문 생성기 테스트

위에서 구현한 니모닉 12구문 생성기가 우리가 원하는대로 작동하는지

Swagger를 이용해 테스트 해보자.

1_니모닉 12구문 생성.webm
3.94MB

 

첫 번째 니모닉 12구문

legal deer symptom hint embark auto strategy short enroll horn limit artwork

 

두 번째 니모닉 12구문

skirt purity file slow team survey now forum smooth ceiling extend know

 

정상적으로 니모닉 12구문이 생성된다!


References. 

github: https://github.com/joykim93/mnemonic-wallet

 

GitHub - joykim93/mnemonic-wallet: mnemonic wallet tutorial

mnemonic wallet tutorial. Contribute to joykim93/mnemonic-wallet development by creating an account on GitHub.

github.com


For Developer. 

  • 잘못되거나 부족한 부분이 있다면 언제든지 댓글 부탁드립니다 :)
Comments