-
Notifications
You must be signed in to change notification settings - Fork 12
/
events.go
37 lines (29 loc) · 1.33 KB
/
events.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
package blockdag
import (
"github.com/iotaledger/hive.go/runtime/event"
"github.com/iotaledger/iota-core/pkg/protocol/engine/blocks"
)
// Events is a collection of Tangle related Events.
type Events struct {
// BlockAppended is triggered when a previously unknown Block is appended to the block DAG.
BlockAppended *event.Event1[*blocks.Block]
// BlockSolid is triggered when a Block becomes solid (its entire past cone is known and solid).
BlockSolid *event.Event1[*blocks.Block]
// BlockMissing is triggered when a referenced Block was not appended, yet.
BlockMissing *event.Event1[*blocks.Block]
// MissingBlockAppended is triggered when a previously missing Block was appended.
MissingBlockAppended *event.Event1[*blocks.Block]
// BlockInvalid is triggered when a Block is found to be invalid.
BlockInvalid *event.Event2[*blocks.Block, error]
event.Group[Events, *Events]
}
// NewEvents contains the constructor of the Events object (it is generated by a generic factory).
var NewEvents = event.CreateGroupConstructor(func() (newEvents *Events) {
return &Events{
BlockAppended: event.New1[*blocks.Block](),
BlockSolid: event.New1[*blocks.Block](),
BlockMissing: event.New1[*blocks.Block](),
MissingBlockAppended: event.New1[*blocks.Block](),
BlockInvalid: event.New2[*blocks.Block, error](),
}
})