forked from ssvlabs/ssv-spec
/
finished.go
76 lines (72 loc) · 3.59 KB
/
finished.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
71
72
73
74
75
76
package newduty
import (
"github.com/MatheusFranco99/ssv-spec-AleaBFT/qbft"
"github.com/MatheusFranco99/ssv-spec-AleaBFT/ssv"
"github.com/MatheusFranco99/ssv-spec-AleaBFT/types"
"github.com/MatheusFranco99/ssv-spec-AleaBFT/types/testingutils"
)
// Finished tests a valid start duty after finished prev
func Finished() *MultiStartNewRunnerDutySpecTest {
ks := testingutils.Testing4SharesSet()
// TODO: check error
// nolint
finishRunner := func(r ssv.Runner, duty *types.Duty) ssv.Runner {
r.GetBaseRunner().State = ssv.NewRunnerState(3, duty)
r.GetBaseRunner().State.RunningInstance = qbft.NewInstance(
r.GetBaseRunner().QBFTController.GetConfig(),
r.GetBaseRunner().Share,
r.GetBaseRunner().QBFTController.Identifier,
qbft.FirstHeight)
r.GetBaseRunner().State.RunningInstance.State.Decided = true
r.GetBaseRunner().QBFTController.StoredInstances = append(r.GetBaseRunner().QBFTController.StoredInstances, r.GetBaseRunner().State.RunningInstance)
r.GetBaseRunner().QBFTController.Height = qbft.FirstHeight
r.GetBaseRunner().State.Finished = true
return r
}
return &MultiStartNewRunnerDutySpecTest{
Name: "new duty finished",
Tests: []*StartNewRunnerDutySpecTest{
{
Name: "sync committee aggregator",
Runner: finishRunner(testingutils.SyncCommitteeContributionRunner(ks), testingutils.TestingSyncCommitteeContributionNexEpochDuty),
Duty: testingutils.TestingSyncCommitteeContributionNexEpochDuty,
PostDutyRunnerStateRoot: "d46a8d498e403c17b5cef207a99f4da7b5ff7de2cdc73c3c3d588ead18cb3307",
OutputMessages: []*ssv.SignedPartialSignatureMessage{
testingutils.PreConsensusContributionProofNextEpochMsg(ks.Shares[1], ks.Shares[1], 1, 1), // broadcasts when starting a new duty
},
},
{
Name: "sync committee",
Runner: finishRunner(testingutils.SyncCommitteeRunner(ks), testingutils.TestingSyncCommitteeDuty),
Duty: testingutils.TestingSyncCommitteeDuty,
PostDutyRunnerStateRoot: "6a0dc57a92abc028355a5f5f978c5d48b5c5377eb200369e2d8955ea689b85fa",
OutputMessages: []*ssv.SignedPartialSignatureMessage{},
},
{
Name: "aggregator",
Runner: finishRunner(testingutils.AggregatorRunner(ks), testingutils.TestingAggregatorDutyNextEpoch),
Duty: testingutils.TestingAggregatorDutyNextEpoch,
PostDutyRunnerStateRoot: "d41f116ce5808d14015a7fb9d796f411d10fbe0612ac44873e440406b91c7799",
OutputMessages: []*ssv.SignedPartialSignatureMessage{
testingutils.PreConsensusSelectionProofNextEpochMsg(ks.Shares[1], ks.Shares[1], 1, 1), // broadcasts when starting a new duty
},
},
{
Name: "proposer",
Runner: finishRunner(testingutils.ProposerRunner(ks), testingutils.TestingProposerDutyNextEpoch),
Duty: testingutils.TestingProposerDutyNextEpoch,
PostDutyRunnerStateRoot: "af4ecfb6d8c9cf5bf293a7f35aeb22c6db97294c109e1c2b4d0e98d02ff59602",
OutputMessages: []*ssv.SignedPartialSignatureMessage{
testingutils.PreConsensusRandaoNextEpochMsg(ks.Shares[1], 1), // broadcasts when starting a new duty
},
},
{
Name: "attester",
Runner: finishRunner(testingutils.AttesterRunner(ks), testingutils.TestingAttesterDuty),
Duty: testingutils.TestingAttesterDuty,
PostDutyRunnerStateRoot: "6ff27f063988dda4a45a835206a028e9578b8cf4bc24cb0363ba13d0a34dede7",
OutputMessages: []*ssv.SignedPartialSignatureMessage{},
},
},
}
}