github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/client/cli/tx_vote_test.go (about)

     1  package cli
     2  
     3  import (
     4  	"encoding/hex"
     5  	"strings"
     6  	"testing"
     7  
     8  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     9  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto"
    10  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto/ed25519"
    11  	"github.com/stretchr/testify/require"
    12  )
    13  
    14  func TestGetValsSet(t *testing.T) {
    15  	pubKeys := []crypto.PubKey{
    16  		newPubKey("0000000000000000000000000000000000000000000000000000000000000000"),
    17  		newPubKey("1111111111111111111111111111111111111111111111111111111111111111"),
    18  		newPubKey("2222222222222222222222222222222222222222222222222222222222222222"),
    19  		newPubKey("3333333333333333333333333333333333333333333333333333333333333333"),
    20  	}
    21  
    22  	accAddrs := []sdk.AccAddress{
    23  		sdk.AccAddress(pubKeys[0].Address()),
    24  		sdk.AccAddress(pubKeys[1].Address()),
    25  		sdk.AccAddress(pubKeys[2].Address()),
    26  		sdk.AccAddress(pubKeys[3].Address()),
    27  	}
    28  
    29  	var valAddrsStr []string
    30  	var expectedValAddrs []sdk.ValAddress
    31  	for i := 0; i < 4; i++ {
    32  		valAddr := sdk.ValAddress(accAddrs[i])
    33  		expectedValAddrs = append(expectedValAddrs, valAddr)
    34  		valAddrsStr = append(valAddrsStr, valAddr.String())
    35  	}
    36  
    37  	arg := strings.Join(valAddrsStr, ",")
    38  
    39  	valAddrs, err := getValsSet(arg)
    40  	require.NoError(t, err)
    41  	require.Equal(t, expectedValAddrs, valAddrs)
    42  }
    43  
    44  func newPubKey(pubKey string) (res crypto.PubKey) {
    45  	pubKeyBytes, err := hex.DecodeString(pubKey)
    46  	if err != nil {
    47  		panic(err)
    48  	}
    49  	var pubKeyEd25519 ed25519.PubKeyEd25519
    50  	copy(pubKeyEd25519[:], pubKeyBytes[:])
    51  	return pubKeyEd25519
    52  }