해시를 계산 하고 새로운 블록을 연결 해보자.
yarn add crypto-js
import * as CryptoJS from 'crypto-js';
이제 블록의 해쉬를 계산
계산 메소드를 static으로 만들자.
import * as CryptoJS from 'crypto-js';
class Block {
public index: number;
public hash: string;
public previousHash: string;
public data: string;
public timestamp: number;
static calculateBlockHash = (
index: number,
previousHash: string,
timestamp: number,
data: string
): string => CryptoJS.SHA256(index + previousHash + timestamp + data).toString();
constructor(
index: number,
hash: string,
previousHash: string,
data: string,
timestamp: number,
) {
this.index = index;
this.hash = hash;
this.previousHash = previousHash;
this.data = data;
this.timestamp = timestamp;
}
}
const genesisBlock: Block = new Block(0, 'abc123', '','hello', 123456);
let blockchain: Block[] = [genesisBlock];
console.log(blockchain);
함수를 몇 개 만들어 보자
const getBlockchain = (): Block[] => blockchain;
const getLatestBlock = (): Block => blockchain[blockchain.length - 1];
const getNewTimestamp = (): Number => Math.round(Date.now() / 1000);