Skip to content

Commit d17fcff

Browse files
Kubuxurjan90
authored andcommitted
fix(f3): when returning a partially used lease, trim its ValidityTerm (#12667)
Signed-off-by: Jakub Sztandera <[email protected]>
1 parent f9dd342 commit d17fcff

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

chain/lf3/participation_lease.go

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ func (l *leaser) participate(ticket api.F3ParticipationTicket) (api.F3Participat
104104
if found {
105105
// short-circuite for reparticipation.
106106
if currentLease == newLease {
107+
newLease.ValidityTerm = newLease.ToInstance() - instant.ID
108+
newLease.FromInstance = instant.ID
107109
return newLease, nil
108110
}
109111
if currentLease.Network == newLease.Network && currentLease.FromInstance > newLease.FromInstance {

chain/lf3/participation_lease_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@ func TestLeaser(t *testing.T) {
3434
require.Equal(t, issuer.String(), lease.Issuer)
3535
require.Equal(t, uint64(10), lease.FromInstance) // Current instance (10) + offset (5)
3636
require.Equal(t, uint64(5), lease.ValidityTerm) // Current instance (10) + offset (5)
37+
38+
progress.currentInstance += 2
39+
40+
lease, err = subject.participate(ticket)
41+
require.NoError(t, err)
42+
require.Equal(t, uint64(123), lease.MinerID)
43+
require.Equal(t, issuer.String(), lease.Issuer)
44+
require.Equal(t, uint64(12), lease.FromInstance) // Current instance (10) + offset (5)
45+
require.Equal(t, uint64(3), lease.ValidityTerm) // Current instance (10) + offset (5)
3746
})
3847
t.Run("get participants", func(t *testing.T) {
3948
progress.currentInstance = 11

0 commit comments

Comments
 (0)