OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / bytom / protocol / bc / blockheader.go
diff --git a/vendor/github.com/bytom/protocol/bc/blockheader.go b/vendor/github.com/bytom/protocol/bc/blockheader.go
new file mode 100644 (file)
index 0000000..34c5ccf
--- /dev/null
@@ -0,0 +1,34 @@
+package bc
+
+import "io"
+
+// BlockHeader contains the header information for a blockchain
+// block. It satisfies the Entry interface.
+
+func (BlockHeader) typ() string { return "blockheader" }
+func (bh *BlockHeader) writeForHash(w io.Writer) {
+       mustWriteForHash(w, bh.Version)
+       mustWriteForHash(w, bh.Height)
+       mustWriteForHash(w, bh.PreviousBlockId)
+       mustWriteForHash(w, bh.Timestamp)
+       mustWriteForHash(w, bh.TransactionsRoot)
+       mustWriteForHash(w, bh.TransactionStatusHash)
+       mustWriteForHash(w, bh.Bits)
+       mustWriteForHash(w, bh.Nonce)
+}
+
+// NewBlockHeader creates a new BlockHeader and populates
+// its body.
+func NewBlockHeader(version, height uint64, previousBlockID *Hash, timestamp uint64, transactionsRoot, transactionStatusHash *Hash, nonce, bits uint64) *BlockHeader {
+       return &BlockHeader{
+               Version:               version,
+               Height:                height,
+               PreviousBlockId:       previousBlockID,
+               Timestamp:             timestamp,
+               TransactionsRoot:      transactionsRoot,
+               TransactionStatusHash: transactionStatusHash,
+               TransactionStatus:     nil,
+               Bits:                  bits,
+               Nonce:                 nonce,
+       }
+}