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 }