Skip to content

Commit a2fdfa4

Browse files
committed
dbft: replace setters with extended constructor for dbft.RecoveryRequest
A part of #84. Signed-off-by: Anna Shaleva <[email protected]>
1 parent fca4ff6 commit a2fdfa4

File tree

7 files changed

+10
-17
lines changed

7 files changed

+10
-17
lines changed

config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ type Config[H Hash, A Address] struct {
7070
// NewCommit is a constructor for payload.Commit.
7171
NewCommit func(signature []byte) Commit
7272
// NewRecoveryRequest is a constructor for payload.RecoveryRequest.
73-
NewRecoveryRequest func() RecoveryRequest
73+
NewRecoveryRequest func(ts uint64) RecoveryRequest
7474
// NewRecoveryMessage is a constructor for payload.RecoveryMessage.
7575
NewRecoveryMessage func() RecoveryMessage[H, A]
7676
// VerifyPrepareRequest can perform external payload verification and returns true iff it was successful.
@@ -334,7 +334,7 @@ func WithNewCommit[H Hash, A Address](f func([]byte) Commit) func(config *Config
334334
}
335335

336336
// WithNewRecoveryRequest sets NewRecoveryRequest.
337-
func WithNewRecoveryRequest[H Hash, A Address](f func() RecoveryRequest) func(config *Config[H, A]) {
337+
func WithNewRecoveryRequest[H Hash, A Address](f func(ts uint64) RecoveryRequest) func(config *Config[H, A]) {
338338
return func(cfg *Config[H, A]) {
339339
cfg.NewRecoveryRequest = f
340340
}

dbft_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ func TestDBFT_Invalid(t *testing.T) {
489489
require.Nil(t, dbft.New(opts...))
490490
})
491491

492-
opts = append(opts, dbft.WithNewRecoveryRequest[crypto.Uint256, crypto.Uint160](func() dbft.RecoveryRequest {
492+
opts = append(opts, dbft.WithNewRecoveryRequest[crypto.Uint256, crypto.Uint160](func(uint64) dbft.RecoveryRequest {
493493
return nil
494494
}))
495495
t.Run("without NewRecoveryMessage", func(t *testing.T) {
@@ -738,7 +738,7 @@ func (s testState) getChangeView(from uint16, view byte) Payload {
738738
}
739739

740740
func (s testState) getRecoveryRequest(from uint16) Payload {
741-
p := payload.NewConsensusPayload(dbft.RecoveryRequestType, s.currHeight+1, from, 0, payload.NewRecoveryRequest())
741+
p := payload.NewConsensusPayload(dbft.RecoveryRequestType, s.currHeight+1, from, 0, payload.NewRecoveryRequest(0))
742742
return p
743743
}
744744

internal/payload/constructors.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ func NewCommit(signature []byte) dbft.Commit {
5151
}
5252

5353
// NewRecoveryRequest returns minimal RecoveryRequest implementation.
54-
func NewRecoveryRequest() dbft.RecoveryRequest {
55-
return new(recoveryRequest)
54+
func NewRecoveryRequest(ts uint64) dbft.RecoveryRequest {
55+
return &recoveryRequest{
56+
timestamp: nanoSecToSec(ts),
57+
}
5658
}
5759

5860
// NewRecoveryMessage returns minimal RecoveryMessage implementation.

internal/payload/message_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,8 @@ func TestPayload_Setters(t *testing.T) {
161161
})
162162

163163
t.Run("RecoveryRequest", func(t *testing.T) {
164-
r := NewRecoveryRequest()
164+
r := NewRecoveryRequest(secToNanoSec(321))
165165

166-
r.SetTimestamp(secToNanoSec(321))
167166
require.EqualValues(t, secToNanoSec(321), r.Timestamp())
168167
})
169168

internal/payload/recovery_request.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,3 @@ func (m *recoveryRequest) DecodeBinary(r *gob.Decoder) error {
4040
func (m *recoveryRequest) Timestamp() uint64 {
4141
return secToNanoSec(m.timestamp)
4242
}
43-
44-
// SetTimestamp implements RecoveryRequest interface.
45-
func (m *recoveryRequest) SetTimestamp(ts uint64) {
46-
m.timestamp = nanoSecToSec(ts)
47-
}

recovery_request.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,4 @@ package dbft
44
type RecoveryRequest interface {
55
// Timestamp returns this message's timestamp.
66
Timestamp() uint64
7-
// SetTimestamp sets this message's timestamp.
8-
SetTimestamp(ts uint64)
97
}

send.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,7 @@ func (d *DBFT[H, A]) sendRecoveryRequest() {
131131
if d.RequestSentOrReceived() && !d.hasAllTransactions() {
132132
d.processMissingTx()
133133
}
134-
req := d.NewRecoveryRequest()
135-
req.SetTimestamp(uint64(d.Timer.Now().UnixNano()))
134+
req := d.NewRecoveryRequest(uint64(d.Timer.Now().UnixNano()))
136135
d.broadcast(d.Config.NewConsensusPayload(&d.Context, RecoveryRequestType, req))
137136
}
138137

0 commit comments

Comments
 (0)