Skip to content

Commit 060c56c

Browse files
#11 Validating Block Structure part Two
1 parent f3d15ea commit 060c56c

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/index.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,35 @@ const createNewBlock = (data: string): Block => {
6464
data,
6565
newTimestamp
6666
);
67+
addBlock(newBlock);
6768
return newBlock;
6869
};
6970

71+
const getHashforBlock = (aBlock: Block): string =>
72+
Block.calculateBlockHash(
73+
aBlock.index,
74+
aBlock.previousHash,
75+
aBlock.timestamp,
76+
aBlock.data
77+
);
78+
7079
const isBlockValid = (candidateBlock: Block, previousBlock: Block): boolean => {
7180
if (!Block.validateStructure(candidateBlock)) {
7281
return false;
7382
} else if (previousBlock.index + 1 !== candidateBlock.index) {
7483
return false;
7584
} else if (previousBlock.hash !== candidateBlock.previousHash) {
7685
return false;
86+
} else if (getHashforBlock(candidateBlock) !== candidateBlock.hash) {
87+
return false;
88+
} else {
89+
return true;
90+
}
91+
};
92+
93+
const addBlock = (candidateBlock: Block): void => {
94+
if (isBlockValid(candidateBlock, getLatestBlock())) {
95+
blockchain.push(candidateBlock);
7796
}
7897
};
7998

0 commit comments

Comments
 (0)