-
Notifications
You must be signed in to change notification settings - Fork 0
/
aBlock.go
43 lines (37 loc) · 1.22 KB
/
aBlock.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
32
33
34
35
36
37
38
39
40
41
42
43
package testHelper
import (
"github.com/DCNT-developer/dcnt/common/adminBlock"
"github.com/DCNT-developer/dcnt/common/primitives"
)
func CreateTestAdminBlock(prev *adminBlock.AdminBlock) *adminBlock.AdminBlock {
block := new(adminBlock.AdminBlock)
block.SetHeader(CreateTestAdminHeader(prev))
if prev == nil {
h, _ := primitives.HexToHash("38bab1455b7bd7e5efd15c53c777c79d0c988e9210f1da49a99d95b3a6417be9")
block.AddFedServer(h)
p := primitives.PubKeyFromString("cc1985cdfae4e32b5a454dfda8ce5e1361558482684f3367649c3ad852c8e31a")
block.AddFederatedServerSigningKey(h, p)
block.InsertIdentityABEntries()
}
block.GetHeader().SetMessageCount(uint32(len(block.GetABEntries())))
return block
}
func CreateTestAdminHeader(prev *adminBlock.AdminBlock) *adminBlock.ABlockHeader {
header := new(adminBlock.ABlockHeader)
if prev == nil {
header.PrevBackRefHash = primitives.NewZeroHash()
header.DBHeight = 0
} else {
keyMR, err := prev.GetKeyMR()
if err != nil {
panic(err)
}
header.PrevBackRefHash = keyMR
header.DBHeight = prev.Header.GetDBHeight() + 1
}
header.HeaderExpansionSize = 5
header.HeaderExpansionArea = []byte{0x00, 0x01, 0x02, 0x03, 0x04}
header.MessageCount = 0
header.BodySize = 0
return header
}