github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/app/types/config_test.go (about)

     1  package types
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/crypto/keys/hd"
     9  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    10  )
    11  
    12  func resetConfig(config *sdk.Config) {
    13  	config.SetBech32PrefixForAccount(sdk.Bech32PrefixAccAddr, sdk.Bech32PrefixAccPub)
    14  	config.SetBech32PrefixForValidator(sdk.Bech32PrefixValAddr, sdk.Bech32PrefixValPub)
    15  	config.SetBech32PrefixForConsensusNode(sdk.Bech32PrefixConsAddr, sdk.Bech32PrefixConsPub)
    16  	config.SetCoinType(sdk.CoinType)
    17  	config.SetFullFundraiserPath(sdk.FullFundraiserPath)
    18  }
    19  
    20  func TestSetBech32Prefixes(t *testing.T) {
    21  	config := sdk.GetConfig()
    22  	resetConfig(config)
    23  
    24  	require.Equal(t, sdk.Bech32PrefixAccAddr, config.GetBech32AccountAddrPrefix())
    25  	require.Equal(t, sdk.Bech32PrefixAccPub, config.GetBech32AccountPubPrefix())
    26  	require.Equal(t, sdk.Bech32PrefixValAddr, config.GetBech32ValidatorAddrPrefix())
    27  	require.Equal(t, sdk.Bech32PrefixValPub, config.GetBech32ValidatorPubPrefix())
    28  	require.Equal(t, sdk.Bech32PrefixConsAddr, config.GetBech32ConsensusAddrPrefix())
    29  	require.Equal(t, sdk.Bech32PrefixConsPub, config.GetBech32ConsensusPubPrefix())
    30  
    31  	SetBech32Prefixes(config)
    32  	require.Equal(t, Bech32PrefixAccAddr, config.GetBech32AccountAddrPrefix())
    33  	require.Equal(t, Bech32PrefixAccPub, config.GetBech32AccountPubPrefix())
    34  	require.Equal(t, Bech32PrefixValAddr, config.GetBech32ValidatorAddrPrefix())
    35  	require.Equal(t, Bech32PrefixValPub, config.GetBech32ValidatorPubPrefix())
    36  	require.Equal(t, Bech32PrefixConsAddr, config.GetBech32ConsensusAddrPrefix())
    37  	require.Equal(t, Bech32PrefixConsPub, config.GetBech32ConsensusPubPrefix())
    38  
    39  	require.Equal(t, sdk.GetConfig().GetBech32AccountAddrPrefix(), config.GetBech32AccountAddrPrefix())
    40  	require.Equal(t, sdk.GetConfig().GetBech32AccountPubPrefix(), config.GetBech32AccountPubPrefix())
    41  	require.Equal(t, sdk.GetConfig().GetBech32ValidatorAddrPrefix(), config.GetBech32ValidatorAddrPrefix())
    42  	require.Equal(t, sdk.GetConfig().GetBech32ValidatorPubPrefix(), config.GetBech32ValidatorPubPrefix())
    43  	require.Equal(t, sdk.GetConfig().GetBech32ConsensusAddrPrefix(), config.GetBech32ConsensusAddrPrefix())
    44  	require.Equal(t, sdk.GetConfig().GetBech32ConsensusPubPrefix(), config.GetBech32ConsensusPubPrefix())
    45  }
    46  
    47  func TestSetCoinType(t *testing.T) {
    48  	config := sdk.GetConfig()
    49  	resetConfig(config)
    50  	require.Equal(t, sdk.CoinType, int(config.GetCoinType()))
    51  	require.Equal(t, sdk.FullFundraiserPath, config.GetFullFundraiserPath())
    52  
    53  	SetBip44CoinType(config)
    54  	require.Equal(t, Bip44CoinType, int(config.GetCoinType()))
    55  	require.Equal(t, sdk.GetConfig().GetCoinType(), config.GetCoinType())
    56  	require.Equal(t, sdk.GetConfig().GetFullFundraiserPath(), config.GetFullFundraiserPath())
    57  }
    58  
    59  func TestHDPath(t *testing.T) {
    60  	params := *hd.NewFundraiserParams(0, Bip44CoinType, 0)
    61  	// need to prepend "m/" because the below method provided by the sdk does not add the proper prepending
    62  	hdPath := params.String()
    63  	require.Equal(t, "m/44'/996'/0'/0/0", hdPath)
    64  	require.Equal(t, "m/44'/60'/0'/0/0", BIP44HDPath)
    65  }