2021.09.09 - [Lecture] - [elliptic , secp256k1] 랜덤 키 값 만들기
2번째 목표인 node serever.js 가 실행되면 특정 폴더에 특정파일이 생성된다. 를 실행하기 위해서
이전 개시물에서 만든 개인키값을 파일에 넣어 만들고
파일 저장할 경로와 파일의 존재 여부를 확인하는 함수를 만들고자 한다.
특정폴더가 있는지 확인 ? 있으면 폴더 생성 X : 없으면 폴더 생성 진행
여기서 나는 특정폴더의 이름을 wallet이라고 정했다.
A. fs모듈에 내장 함수 existsSync로 wallet/ 가 존재하는 지 확인을 한다 // 결과값은 false || true
!fs.existsSync("wallet/")
B. if문으로 mkdirSync를 사용해 wallet/ 폴더가 존재하지 않을때 폴더를 생성해 준다.
if(!fs.existsSync("wallet/")){
fs.mkdirSync("wallet/")
}
여기서 wallet이 database라면 앞으로 생길 파일들을 구분해주는 폴더 (즉 table)을 같은 방식으로 검증 후 생성해 준다.
A-1. fs모듈에 내장 함수 existsSync로 wallet/default 가 존재하는 지 확인을 한다.
여기서 뒤에 붙은 파일명이 바뀔 수 도 있기 때문에 변수로 처리해준다.
const privateKeyLocation = "wallet/"+(process.env.PRIVATE_KEY || "default");
!fs.existsSync(privateKeyLocation);
B-1. if문으로 mkdirSync를 사용해 wallet/default 폴더가 존재하지 않을때 폴더를 생성해 준다.
const privateKeyLocation = "wallet/"+(process.env.PRIVATE_KEY || "default");
if(!fs.existsSync(privateKeyLocation)){
fs.mkdirSync(privateKeyLocation);
};
키 값을 넣을 파일이 존재하는지 확인하고 존재하지 않는다면 파일을 만들어 이전 발행글에서 만들었던 랜덤 키값(개인키값)을 넣어준다.
A-2. fs모듈에 내장 함수 existsSync로 wallet/default/private_key 가 존재하는 지 확인을 한다.
위와 같은 이유로 변수로 설정해서 처리해준다.
const privateFile = privateKeyLocation+"/private_key";
!fs.existsSync(privateFile)
B-2. if문으로 writeFileSync를 사용해 wallet/default/pricate_key 파일이 존재하지 않을때 파일을 생성해 준다.
여기서 writeFileSync를 사용하는데 들어가는 첫번째 인자값은 경로+ 파일명이고 두번째 인자값은 파일에 들어갈 내용이다.
파일에 들어갈 내용을 전에 만들어 두었던 개인키를 만드는 함수의 결과물로 넣어준다.
if(!fs.existsSync(privateFile)){
console.log(`주소값을 생성중입니다...`);
const newPrivateKey = generatorPrivateKey();
fs.writeFileSync(privateFile,newPrivateKey);
console.log(`주소값이 생성 되었습니다.`);
}
마지막으로 위 3가지 검사를 한 함수안에 넣어서 실행한다.
function initWallet(){
if(!fs.existsSync("wallet/")){
fs.mkdirSync("wallet/")
}
if(!fs.existsSync(privateKeyLocation)){
fs.mkdirSync(privateKeyLocation);
}
if(!fs.existsSync(privateFile)){
console.log(`주소값을 생성중입니다...`);
const newPrivateKey = generatorPrivateKey();
fs.writeFileSync(privateFile,newPrivateKey);
console.log(`주소값이 생성 되었습니다.`);
}
}
'DeFi' 카테고리의 다른 글
메타마스크 에러 code 32603 (0) | 2022.04.18 |
---|---|
[ 디파이 코인 ] 유니스왑 클론 (0) | 2021.11.01 |
디파이 코인 개념 (1) | 2021.10.25 |
[지갑 만들기] privateKey, publicKey 생성 및 불러오기 (0) | 2021.09.09 |