github.com/ava-labs/avalanchego@v1.11.11/vms/platformvm/state/chain_time_helpers_test.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package state
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/ava-labs/avalanchego/database/memdb"
    12  	"github.com/ava-labs/avalanchego/genesis"
    13  	"github.com/ava-labs/avalanchego/upgrade/upgradetest"
    14  	"github.com/ava-labs/avalanchego/vms/platformvm/config"
    15  	"github.com/ava-labs/avalanchego/vms/platformvm/txs/fee"
    16  )
    17  
    18  func TestPickFeeCalculator(t *testing.T) {
    19  	var (
    20  		createAssetTxFee = genesis.LocalParams.CreateAssetTxFee
    21  		staticFeeConfig  = genesis.LocalParams.StaticFeeConfig
    22  		dynamicFeeConfig = genesis.LocalParams.DynamicFeeConfig
    23  	)
    24  
    25  	apricotPhase2StaticFeeConfig := staticFeeConfig
    26  	apricotPhase2StaticFeeConfig.CreateSubnetTxFee = createAssetTxFee
    27  	apricotPhase2StaticFeeConfig.CreateBlockchainTxFee = createAssetTxFee
    28  
    29  	tests := []struct {
    30  		fork     upgradetest.Fork
    31  		expected fee.Calculator
    32  	}{
    33  		{
    34  			fork:     upgradetest.ApricotPhase2,
    35  			expected: fee.NewStaticCalculator(apricotPhase2StaticFeeConfig),
    36  		},
    37  		{
    38  			fork:     upgradetest.ApricotPhase3,
    39  			expected: fee.NewStaticCalculator(staticFeeConfig),
    40  		},
    41  		{
    42  			fork: upgradetest.Etna,
    43  			expected: fee.NewDynamicCalculator(
    44  				dynamicFeeConfig.Weights,
    45  				dynamicFeeConfig.MinPrice,
    46  			),
    47  		},
    48  	}
    49  	for _, test := range tests {
    50  		t.Run(test.fork.String(), func(t *testing.T) {
    51  			var (
    52  				config = &config.Config{
    53  					CreateAssetTxFee: createAssetTxFee,
    54  					StaticFeeConfig:  staticFeeConfig,
    55  					DynamicFeeConfig: dynamicFeeConfig,
    56  					UpgradeConfig:    upgradetest.GetConfig(test.fork),
    57  				}
    58  				s = newTestState(t, memdb.New())
    59  			)
    60  			actual := PickFeeCalculator(config, s)
    61  			require.Equal(t, test.expected, actual)
    62  		})
    63  	}
    64  }