-
Notifications
You must be signed in to change notification settings - Fork 670
/
option_blocks.go
70 lines (57 loc) · 1.27 KB
/
option_blocks.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright (C) 2019-2021, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package blocks
import (
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/vms/platformvm/txs"
)
var (
_ Block = &AbortBlock{}
_ Block = &CommitBlock{}
)
type AbortBlock struct {
CommonBlock `serialize:"true"`
}
func (ab *AbortBlock) initialize(bytes []byte) error {
ab.CommonBlock.initialize(bytes)
return nil
}
func (ab *AbortBlock) Txs() []*txs.Tx { return nil }
func (ab *AbortBlock) Visit(v Visitor) error {
return v.AbortBlock(ab)
}
func NewAbortBlock(
parentID ids.ID,
height uint64,
) (*AbortBlock, error) {
blk := &AbortBlock{
CommonBlock: CommonBlock{
PrntID: parentID,
Hght: height,
},
}
return blk, initialize(blk)
}
type CommitBlock struct {
CommonBlock `serialize:"true"`
}
func (cb *CommitBlock) initialize(bytes []byte) error {
cb.CommonBlock.initialize(bytes)
return nil
}
func (cb *CommitBlock) Txs() []*txs.Tx { return nil }
func (cb *CommitBlock) Visit(v Visitor) error {
return v.CommitBlock(cb)
}
func NewCommitBlock(
parentID ids.ID,
height uint64,
) (*CommitBlock, error) {
blk := &CommitBlock{
CommonBlock: CommonBlock{
PrntID: parentID,
Hght: height,
},
}
return blk, initialize(blk)
}