Skip to content

Commit

Permalink
Drop Pending Stakers 2 - Replace txs.ScheduledStaker with txs.Staker (#…
Browse files Browse the repository at this point in the history
…2305)

Co-authored-by: Stephen Buttolph <[email protected]>
  • Loading branch information
abi87 and StephenButtolph authored Dec 7, 2023
1 parent a754118 commit c991157
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 45 deletions.
32 changes: 24 additions & 8 deletions vms/platformvm/block/executor/proposal_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -641,9 +641,11 @@ func TestBanffProposalBlockUpdateStakers(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx := addStaker0.Unsigned.(*txs.AddValidatorTx)
staker0, err := state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -741,9 +743,11 @@ func TestBanffProposalBlockRemoveSubnetValidator(t *testing.T) {
)
require.NoError(err)

addSubnetValTx := tx.Unsigned.(*txs.AddSubnetValidatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddSubnetValidatorTx),
addSubnetValTx,
addSubnetValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -799,9 +803,11 @@ func TestBanffProposalBlockRemoveSubnetValidator(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx := addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err = state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -912,9 +918,11 @@ func TestBanffProposalBlockTrackedSubnet(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx := addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err = state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -999,9 +1007,11 @@ func TestBanffProposalBlockDelegatorStakerWeight(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx := addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err := state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -1091,9 +1101,11 @@ func TestBanffProposalBlockDelegatorStakerWeight(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx = addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err = state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -1182,9 +1194,11 @@ func TestBanffProposalBlockDelegatorStakers(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx := addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err := state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -1273,9 +1287,11 @@ func TestBanffProposalBlockDelegatorStakers(t *testing.T) {
require.NoError(err)

// store Staker0 to state
addValTx = addStaker0.Unsigned.(*txs.AddValidatorTx)
staker, err = state.NewCurrentStaker(
addStaker0.ID(),
addStaker0.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down
4 changes: 3 additions & 1 deletion vms/platformvm/block/executor/standard_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -628,9 +628,11 @@ func TestBanffStandardBlockRemoveSubnetValidator(t *testing.T) {
)
require.NoError(err)

addSubnetValTx := tx.Unsigned.(*txs.AddSubnetValidatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddSubnetValidatorTx),
addSubnetValTx,
addSubnetValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down
8 changes: 6 additions & 2 deletions vms/platformvm/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -507,9 +507,11 @@ func TestGetStake(t *testing.T) {
)
require.NoError(err)

addDelTx := tx.Unsigned.(*txs.AddDelegatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddDelegatorTx),
addDelTx,
addDelTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -643,9 +645,11 @@ func TestGetCurrentValidators(t *testing.T) {
)
require.NoError(err)

addDelTx := delTx.Unsigned.(*txs.AddDelegatorTx)
staker, err := state.NewCurrentStaker(
delTx.ID(),
delTx.Unsigned.(*txs.AddDelegatorTx),
addDelTx,
addDelTx.StartTime(),
0,
)
require.NoError(err)
Expand Down
9 changes: 7 additions & 2 deletions vms/platformvm/state/staker.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,12 @@ func (s *Staker) Less(than *Staker) bool {
return bytes.Compare(s.TxID[:], than.TxID[:]) == -1
}

func NewCurrentStaker(txID ids.ID, staker txs.ScheduledStaker, potentialReward uint64) (*Staker, error) {
func NewCurrentStaker(
txID ids.ID,
staker txs.Staker,
startTime time.Time,
potentialReward uint64,
) (*Staker, error) {
publicKey, _, err := staker.PublicKey()
if err != nil {
return nil, err
Expand All @@ -95,7 +100,7 @@ func NewCurrentStaker(txID ids.ID, staker txs.ScheduledStaker, potentialReward u
PublicKey: publicKey,
SubnetID: staker.SubnetID(),
Weight: staker.Weight(),
StartTime: staker.StartTime(),
StartTime: startTime,
EndTime: endTime,
PotentialReward: potentialReward,
NextTime: endTime,
Expand Down
9 changes: 4 additions & 5 deletions vms/platformvm/state/staker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,16 +148,15 @@ func TestNewCurrentStaker(t *testing.T) {
potentialReward := uint64(54321)
currentPriority := txs.SubnetPermissionedValidatorCurrentPriority

stakerTx := txs.NewMockScheduledStaker(ctrl)
stakerTx := txs.NewMockStaker(ctrl)
stakerTx.EXPECT().EndTime().Return(endTime)
stakerTx.EXPECT().NodeID().Return(nodeID)
stakerTx.EXPECT().PublicKey().Return(publicKey, true, nil)
stakerTx.EXPECT().SubnetID().Return(subnetID)
stakerTx.EXPECT().Weight().Return(weight)
stakerTx.EXPECT().StartTime().Return(startTime)
stakerTx.EXPECT().EndTime().Return(endTime)
stakerTx.EXPECT().CurrentPriority().Return(currentPriority)

staker, err := NewCurrentStaker(txID, stakerTx, potentialReward)
staker, err := NewCurrentStaker(txID, stakerTx, startTime, potentialReward)
require.NotNil(staker)
require.NoError(err)
require.Equal(txID, staker.TxID)
Expand All @@ -173,7 +172,7 @@ func TestNewCurrentStaker(t *testing.T) {

stakerTx.EXPECT().PublicKey().Return(nil, false, errCustom)

_, err = NewCurrentStaker(txID, stakerTx, potentialReward)
_, err = NewCurrentStaker(txID, stakerTx, startTime, potentialReward)
require.ErrorIs(err, errCustom)
}

Expand Down
28 changes: 21 additions & 7 deletions vms/platformvm/state/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -1346,7 +1346,7 @@ func (s *state) syncGenesis(genesisBlk block.Block, genesis *genesis.Genesis) er
return err
}

staker, err := NewCurrentStaker(vdrTx.ID(), validatorTx, potentialReward)
staker, err := NewCurrentStaker(vdrTx.ID(), validatorTx, validatorTx.StartTime(), potentialReward)
if err != nil {
return err
}
Expand Down Expand Up @@ -1457,7 +1457,7 @@ func (s *state) loadCurrentValidators() error {

stakerTx, ok := tx.Unsigned.(txs.ScheduledStaker)
if !ok {
return fmt.Errorf("expected tx type txs.Staker but got %T", tx.Unsigned)
return fmt.Errorf("expected tx type txs.ScheduledStaker but got %T", tx.Unsigned)
}

metadataBytes := validatorIt.Value()
Expand All @@ -1470,7 +1470,11 @@ func (s *state) loadCurrentValidators() error {
return err
}

staker, err := NewCurrentStaker(txID, stakerTx, metadata.PotentialReward)
staker, err := NewCurrentStaker(
txID,
stakerTx,
stakerTx.StartTime(),
metadata.PotentialReward)
if err != nil {
return err
}
Expand Down Expand Up @@ -1498,7 +1502,7 @@ func (s *state) loadCurrentValidators() error {

stakerTx, ok := tx.Unsigned.(txs.ScheduledStaker)
if !ok {
return fmt.Errorf("expected tx type txs.Staker but got %T", tx.Unsigned)
return fmt.Errorf("expected tx type txs.ScheduledStaker but got %T", tx.Unsigned)
}

metadataBytes := subnetValidatorIt.Value()
Expand All @@ -1513,7 +1517,12 @@ func (s *state) loadCurrentValidators() error {
return err
}

staker, err := NewCurrentStaker(txID, stakerTx, metadata.PotentialReward)
staker, err := NewCurrentStaker(
txID,
stakerTx,
startTime,
metadata.PotentialReward,
)
if err != nil {
return err
}
Expand Down Expand Up @@ -1545,7 +1554,7 @@ func (s *state) loadCurrentValidators() error {

stakerTx, ok := tx.Unsigned.(txs.ScheduledStaker)
if !ok {
return fmt.Errorf("expected tx type txs.Staker but got %T", tx.Unsigned)
return fmt.Errorf("expected tx type txs.ScheduledStaker but got %T", tx.Unsigned)
}

metadata := &delegatorMetadata{
Expand All @@ -1556,7 +1565,12 @@ func (s *state) loadCurrentValidators() error {
return err
}

staker, err := NewCurrentStaker(txID, stakerTx, metadata.PotentialReward)
staker, err := NewCurrentStaker(
txID,
stakerTx,
stakerTx.StartTime(),
metadata.PotentialReward,
)
if err != nil {
return err
}
Expand Down
4 changes: 3 additions & 1 deletion vms/platformvm/txs/executor/advance_time_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -476,9 +476,11 @@ func TestAdvanceTimeTxRemoveSubnetValidator(t *testing.T) {
)
require.NoError(err)

addSubnetValTx := tx.Unsigned.(*txs.AddSubnetValidatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddSubnetValidatorTx),
addSubnetValTx,
addSubnetValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down
20 changes: 15 additions & 5 deletions vms/platformvm/txs/executor/proposal_tx_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,11 @@ func TestProposalTxExecuteAddDelegator(t *testing.T) {
)
require.NoError(t, err)

addValTx := tx.Unsigned.(*txs.AddValidatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(t, err)
Expand All @@ -74,9 +76,11 @@ func TestProposalTxExecuteAddDelegator(t *testing.T) {
)
require.NoError(t, err)

addValTx := tx.Unsigned.(*txs.AddValidatorTx)
staker, err := state.NewCurrentStaker(
tx.ID(),
tx.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(t, err)
Expand Down Expand Up @@ -398,9 +402,11 @@ func TestProposalTxExecuteAddSubnetValidator(t *testing.T) {
require.ErrorIs(err, ErrNotValidator)
}

addValTx := addDSTx.Unsigned.(*txs.AddValidatorTx)
staker, err := state.NewCurrentStaker(
addDSTx.ID(),
addDSTx.Unsigned.(*txs.AddValidatorTx),
addValTx,
addValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -551,9 +557,11 @@ func TestProposalTxExecuteAddSubnetValidator(t *testing.T) {
)
require.NoError(err)

addSubnetValTx := subnetTx.Unsigned.(*txs.AddSubnetValidatorTx)
staker, err = state.NewCurrentStaker(
subnetTx.ID(),
subnetTx.Unsigned.(*txs.AddSubnetValidatorTx),
addSubnetValTx,
addSubnetValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down Expand Up @@ -680,9 +688,11 @@ func TestProposalTxExecuteAddSubnetValidator(t *testing.T) {
)
require.NoError(err)

addSubnetValTx := subnetTx.Unsigned.(*txs.AddSubnetValidatorTx)
staker, err = state.NewCurrentStaker(
subnetTx.ID(),
subnetTx.Unsigned.(*txs.AddSubnetValidatorTx),
addSubnetValTx,
addSubnetValTx.StartTime(),
0,
)
require.NoError(err)
Expand Down
Loading

0 comments on commit c991157

Please sign in to comment.