view src/main/java/christie/blockchain/Block.java @ 198:dd3c0ba6a0a6

fix topology manager
author akahori
date Sat, 09 Mar 2019 21:53:37 +0900
parents 0ef25958ac04
children 8b55a00da2a9
line wrap: on
line source

package christie.blockchain;

import org.msgpack.annotation.Message;

import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

@Message
public class Block {
    private BlockHeader header;

    private List<Transaction> transactionsList = new CopyOnWriteArrayList<>();

    public Block(long difficulty, long timestamp){
        this("".getBytes(), difficulty, 0, timestamp, null);
    }
    public Block(byte[] parentHash, long difficulty, long number, long timestamp){
        this(parentHash, difficulty, number, timestamp, null);
    }

    public Block(byte[] parentHash, long difficulty, long number, long timestamp, List<Transaction> transactionsList) {
        this.header = new BlockHeader(parentHash, difficulty, number, timestamp);
        if (this.transactionsList == null) {
            this.transactionsList = new CopyOnWriteArrayList<>();
        }
    }

    public BlockHeader getHeader(){
        return this.header;
    }

    public long getTimestamp() {
        return this.header.getTimestamp();
    }

    public byte[] getPresentHash(){
        return this.header.getPresentHash();
    }

    public byte[] getParentHash(){
        return this.header.getParentHash();
    }

    public void setNonce(long nonce) {
        this.header.setNonce(nonce);
    }

    public long getNonce(){
        return this.header.getNonce();
    }

    public byte[] getByteArrayWithoutNonce(){
        return this.header.getByteArrayWithoutNonce();
    }

    public long getNumber() {
        return this.header.getNumber();
    }

}