From 0a6eb765de2040728646da0ad1bdc055f3dee551 Mon Sep 17 00:00:00 2001 From: Zeeeeeeek Date: Thu, 21 Oct 2021 00:32:17 +0200 Subject: [PATCH] Add Crea_una_Blockchain_Zeeeeeeek --- .../src/Block.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 LVL2_T353i/Crea_una_Blockchain/Crea_una_Blockchain_Zeeeeeeek/src/Block.java diff --git a/LVL2_T353i/Crea_una_Blockchain/Crea_una_Blockchain_Zeeeeeeek/src/Block.java b/LVL2_T353i/Crea_una_Blockchain/Crea_una_Blockchain_Zeeeeeeek/src/Block.java new file mode 100644 index 0000000..f9bf340 --- /dev/null +++ b/LVL2_T353i/Crea_una_Blockchain/Crea_una_Blockchain_Zeeeeeeek/src/Block.java @@ -0,0 +1,57 @@ +import java.sql.Timestamp; +import java.util.ArrayList; + + +public class Block { + private Timestamp timestamp; + private Object data; + private int previousHash; + private int hash; + ArrayList chain = new ArrayList(); + private static boolean isFirst = true; + + public Block(Timestamp timestamp, Object data) { + if (!isFirst) throw new IllegalArgumentException("Non รจ il primo block"); + this.timestamp = timestamp; + this.data = data; + this.previousHash = 0; + hash = hashCode(); + chain.add(this); + isFirst = false; + } + + public Block(Timestamp timestamp, Object data, int previousHash) { + this.timestamp = timestamp; + this.data = data; + this.previousHash = previousHash; + hash = hashCode(); + int temp = chain.size() - 1; + chain.add(this); + } + + public int getHash() { + return hash; + } + private Block getLastBlock() { + return chain.get(chain.size() - 1); + } + @Override + public int hashCode() { + int temp = 17; + temp = 31 * temp + timestamp.hashCode(); + temp = 31 * temp + data.hashCode(); + return temp; + } + + public boolean isValidBlock(Block previousBlock) { + return (previousHash == previousBlock.hash); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Block)) return false; + Block block = (Block) o; + return timestamp.equals(block.timestamp) && data.equals(block.data); + } +}