Skip to content

Commit

Permalink
vms/platformvm: Remove NewAdvanceTimeTx from Builder (#2668)
Browse files Browse the repository at this point in the history
  • Loading branch information
dhrubabasu committed Jan 25, 2024
1 parent 1302ed8 commit b73635e
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 27 deletions.
14 changes: 0 additions & 14 deletions vms/platformvm/txs/builder/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package builder
import (
"errors"
"fmt"
"time"

"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow"
Expand Down Expand Up @@ -183,10 +182,6 @@ type ProposalTxBuilder interface {
changeAddr ids.ShortID,
) (*txs.Tx, error)

// newAdvanceTimeTx creates a new tx that, if it is accepted and followed by a
// Commit block, will set the chain's timestamp to [timestamp].
NewAdvanceTimeTx(timestamp time.Time) (*txs.Tx, error)

// RewardStakerTx creates a new transaction that proposes to remove the staker
// [validatorID] from the default validator set.
NewRewardValidatorTx(txID ids.ID) (*txs.Tx, error)
Expand Down Expand Up @@ -615,15 +610,6 @@ func (b *builder) NewRemoveSubnetValidatorTx(
return tx, tx.SyntacticVerify(b.ctx)
}

func (b *builder) NewAdvanceTimeTx(timestamp time.Time) (*txs.Tx, error) {
utx := &txs.AdvanceTimeTx{Time: uint64(timestamp.Unix())}
tx, err := txs.NewSigned(utx, txs.Codec, nil)
if err != nil {
return nil, err
}
return tx, tx.SyntacticVerify(b.ctx)
}

func (b *builder) NewRewardValidatorTx(txID ids.ID) (*txs.Tx, error) {
utx := &txs.RewardValidatorTx{TxID: txID}
tx, err := txs.NewSigned(utx, txs.Codec, nil)
Expand Down
36 changes: 23 additions & 13 deletions vms/platformvm/txs/executor/advance_time_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (

"github.com/ava-labs/avalanchego/database"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow/snowtest"
"github.com/ava-labs/avalanchego/utils/constants"
"github.com/ava-labs/avalanchego/utils/crypto/secp256k1"
"github.com/ava-labs/avalanchego/vms/platformvm/reward"
Expand All @@ -20,6 +21,15 @@ import (
"github.com/ava-labs/avalanchego/vms/platformvm/txs"
)

func newAdvanceTimeTx(t testing.TB, timestamp time.Time) (*txs.Tx, error) {
utx := &txs.AdvanceTimeTx{Time: uint64(timestamp.Unix())}
tx, err := txs.NewSigned(utx, txs.Codec, nil)
if err != nil {
return nil, err
}
return tx, tx.SyntacticVerify(snowtest.Context(t, snowtest.PChainID))
}

// Ensure semantic verification updates the current and pending staker set
// for the primary network
func TestAdvanceTimeTxUpdatePrimaryNetworkStakers(t *testing.T) {
Expand All @@ -43,7 +53,7 @@ func TestAdvanceTimeTxUpdatePrimaryNetworkStakers(t *testing.T) {
)
require.NoError(err)

tx, err := env.txBuilder.NewAdvanceTimeTx(pendingValidatorStartTime)
tx, err := newAdvanceTimeTx(t, pendingValidatorStartTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -89,7 +99,7 @@ func TestAdvanceTimeTxTimestampTooEarly(t *testing.T) {
require := require.New(t)
env := newEnvironment(t, false /*=postBanff*/, false /*=postCortina*/, false /*=postDurango*/)

tx, err := env.txBuilder.NewAdvanceTimeTx(env.state.GetTimestamp())
tx, err := newAdvanceTimeTx(t, env.state.GetTimestamp())
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -124,7 +134,7 @@ func TestAdvanceTimeTxTimestampTooLate(t *testing.T) {
require.NoError(err)

{
tx, err := env.txBuilder.NewAdvanceTimeTx(pendingValidatorStartTime.Add(1 * time.Second))
tx, err := newAdvanceTimeTx(t, pendingValidatorStartTime.Add(1*time.Second))
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -153,7 +163,7 @@ func TestAdvanceTimeTxTimestampTooLate(t *testing.T) {

{
// Proposes advancing timestamp to 1 second after genesis validators stop validating
tx, err := env.txBuilder.NewAdvanceTimeTx(defaultValidateEndTime.Add(1 * time.Second))
tx, err := newAdvanceTimeTx(t, defaultValidateEndTime.Add(1*time.Second))
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -390,7 +400,7 @@ func TestAdvanceTimeTxUpdateStakers(t *testing.T) {

for _, newTime := range test.advanceTimeTo {
env.clk.Set(newTime)
tx, err := env.txBuilder.NewAdvanceTimeTx(newTime)
tx, err := newAdvanceTimeTx(t, newTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -514,7 +524,7 @@ func TestAdvanceTimeTxRemoveSubnetValidator(t *testing.T) {

// Advance time to the first staker's end time.
env.clk.Set(subnetVdr1EndTime)
tx, err = env.txBuilder.NewAdvanceTimeTx(subnetVdr1EndTime)
tx, err = newAdvanceTimeTx(t, subnetVdr1EndTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -588,7 +598,7 @@ func TestTrackedSubnet(t *testing.T) {

// Advance time to the staker's start time.
env.clk.Set(subnetVdr1StartTime)
tx, err = env.txBuilder.NewAdvanceTimeTx(subnetVdr1StartTime)
tx, err = newAdvanceTimeTx(t, subnetVdr1StartTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -636,7 +646,7 @@ func TestAdvanceTimeTxDelegatorStakerWeight(t *testing.T) {
)
require.NoError(err)

tx, err := env.txBuilder.NewAdvanceTimeTx(pendingValidatorStartTime)
tx, err := newAdvanceTimeTx(t, pendingValidatorStartTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -693,7 +703,7 @@ func TestAdvanceTimeTxDelegatorStakerWeight(t *testing.T) {
require.NoError(env.state.Commit())

// Advance Time
tx, err = env.txBuilder.NewAdvanceTimeTx(pendingDelegatorStartTime)
tx, err = newAdvanceTimeTx(t, pendingDelegatorStartTime)
require.NoError(err)

onCommitState, err = state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -735,7 +745,7 @@ func TestAdvanceTimeTxDelegatorStakers(t *testing.T) {
_, err := addPendingValidator(env, pendingValidatorStartTime, pendingValidatorEndTime, nodeID, []*secp256k1.PrivateKey{preFundedKeys[0]})
require.NoError(err)

tx, err := env.txBuilder.NewAdvanceTimeTx(pendingValidatorStartTime)
tx, err := newAdvanceTimeTx(t, pendingValidatorStartTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -787,7 +797,7 @@ func TestAdvanceTimeTxDelegatorStakers(t *testing.T) {
require.NoError(env.state.Commit())

// Advance Time
tx, err = env.txBuilder.NewAdvanceTimeTx(pendingDelegatorStartTime)
tx, err = newAdvanceTimeTx(t, pendingDelegatorStartTime)
require.NoError(err)

onCommitState, err = state.NewDiff(lastAcceptedID, env)
Expand Down Expand Up @@ -826,7 +836,7 @@ func TestAdvanceTimeTxAfterBanff(t *testing.T) {
env.config.DurangoTime = upgradeTime

// Proposed advancing timestamp to the banff timestamp
tx, err := env.txBuilder.NewAdvanceTimeTx(upgradeTime)
tx, err := newAdvanceTimeTx(t, upgradeTime)
require.NoError(err)

onCommitState, err := state.NewDiff(lastAcceptedID, env)
Expand All @@ -853,7 +863,7 @@ func TestAdvanceTimeTxUnmarshal(t *testing.T) {
defer env.ctx.Lock.Unlock()

chainTime := env.state.GetTimestamp()
tx, err := env.txBuilder.NewAdvanceTimeTx(chainTime.Add(time.Second))
tx, err := newAdvanceTimeTx(t, chainTime.Add(time.Second))
require.NoError(err)

bytes, err := txs.Codec.Marshal(txs.CodecVersion, tx)
Expand Down

0 comments on commit b73635e

Please sign in to comment.