-
Notifications
You must be signed in to change notification settings - Fork 9
/
blockheader.go
31 lines (27 loc) · 1.01 KB
/
blockheader.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)
}
// NewBlockHeader creates a new BlockHeader and populates
// its body.
func NewBlockHeader(version, height uint64, previousBlockID *Hash, timestamp uint64, transactionsRoot, transactionStatusHash *Hash, witness [][]byte) *BlockHeader {
return &BlockHeader{
Version: version,
Height: height,
PreviousBlockId: previousBlockID,
Timestamp: timestamp,
TransactionsRoot: transactionsRoot,
TransactionStatusHash: transactionStatusHash,
TransactionStatus: nil,
WitnessArguments: witness,
}
}