github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/keeper/test_common_distr_proposal.go (about)

     1  package keeper
     2  
     3  import (
     4  	"testing"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  	abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types"
     8  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto"
     9  	"github.com/fibonacci-chain/fbc/x/distribution/types"
    10  	"github.com/fibonacci-chain/fbc/x/staking"
    11  	"github.com/stretchr/testify/require"
    12  	"github.com/tendermint/go-amino"
    13  )
    14  
    15  func DoCreateValidator(t *testing.T, ctx sdk.Context, sk staking.Keeper, valAddr sdk.ValAddress, valConsPk crypto.PubKey) {
    16  	sh := staking.NewHandler(sk)
    17  	msg := staking.NewMsgCreateValidator(valAddr, valConsPk, staking.Description{}, NewTestSysCoin(1, 0))
    18  	res, err := sh(ctx, msg)
    19  	require.NoError(t, err)
    20  	require.NotNil(t, res)
    21  }
    22  
    23  func DoEditValidator(t *testing.T, ctx sdk.Context, sk staking.Keeper, valAddr sdk.ValAddress, newRate sdk.Dec) {
    24  	h := staking.NewHandler(sk)
    25  	msg := staking.NewMsgEditValidatorCommissionRate(valAddr, newRate)
    26  	_, e := h(ctx, msg)
    27  	require.Nil(t, e)
    28  }
    29  
    30  func DoWithdraw(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, amount sdk.SysCoin) {
    31  	h := staking.NewHandler(sk)
    32  	msg := staking.NewMsgWithdraw(delAddr, amount)
    33  	_, e := h(ctx, msg)
    34  	require.Nil(t, e)
    35  }
    36  
    37  func DoDestroyValidator(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress) {
    38  	h := staking.NewHandler(sk)
    39  	msg := staking.NewMsgDestroyValidator(delAddr)
    40  	_, e := h(ctx, msg)
    41  	require.Nil(t, e)
    42  }
    43  
    44  func DoDeposit(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, amount sdk.SysCoin) {
    45  	h := staking.NewHandler(sk)
    46  	msg := staking.NewMsgDeposit(delAddr, amount)
    47  	_, e := h(ctx, msg)
    48  	require.Nil(t, e)
    49  }
    50  
    51  func DoDepositWithError(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, amount sdk.SysCoin, err error) {
    52  	h := staking.NewHandler(sk)
    53  	msg := staking.NewMsgDeposit(delAddr, amount)
    54  	_, e := h(ctx, msg)
    55  	require.Equal(t, err, e)
    56  }
    57  
    58  func DoAddShares(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, valAddrs []sdk.ValAddress) {
    59  	h := staking.NewHandler(sk)
    60  	msg := staking.NewMsgAddShares(delAddr, valAddrs)
    61  	_, e := h(ctx, msg)
    62  	require.Nil(t, e)
    63  }
    64  
    65  func DoAddSharesWithError(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, valAddrs []sdk.ValAddress, err error) {
    66  	h := staking.NewHandler(sk)
    67  	msg := staking.NewMsgAddShares(delAddr, valAddrs)
    68  	_, e := h(ctx, msg)
    69  	require.Equal(t, err, e)
    70  }
    71  
    72  func DoRegProxy(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, reg bool) {
    73  	h := staking.NewHandler(sk)
    74  	msg := staking.NewMsgRegProxy(delAddr, reg)
    75  	_, e := h(ctx, msg)
    76  	require.Nil(t, e)
    77  }
    78  
    79  func DoBindProxy(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress, proxyAddr sdk.AccAddress) {
    80  	h := staking.NewHandler(sk)
    81  	msg := staking.NewMsgBindProxy(delAddr, proxyAddr)
    82  	_, e := h(ctx, msg)
    83  	require.Nil(t, e)
    84  }
    85  
    86  func DoUnBindProxy(t *testing.T, ctx sdk.Context, sk staking.Keeper, delAddr sdk.AccAddress) {
    87  	h := staking.NewHandler(sk)
    88  	msg := staking.NewMsgUnbindProxy(delAddr)
    89  	_, e := h(ctx, msg)
    90  	require.Nil(t, e)
    91  }
    92  
    93  func GetQueriedDelegationRewards(t *testing.T, ctx sdk.Context, querier sdk.Querier,
    94  	delegatorAddr sdk.AccAddress, validatorAddr sdk.ValAddress) (rewards sdk.DecCoins) {
    95  	bz, err := amino.MarshalJSON(types.NewQueryDelegationRewardsParams(delegatorAddr, validatorAddr))
    96  	require.NoError(t, err)
    97  
    98  	ctx, _ = ctx.CacheContext()
    99  	result, err := querier(ctx, []string{types.QueryDelegationRewards}, abci.RequestQuery{Data: bz})
   100  	require.NoError(t, err)
   101  
   102  	err = amino.UnmarshalJSON(result, &rewards)
   103  	require.NoError(t, err)
   104  
   105  	return rewards
   106  }
   107  
   108  func GetQueriedDelegationTotalRewards(t *testing.T, ctx sdk.Context, querier sdk.Querier,
   109  	delegatorAddr sdk.AccAddress) types.QueryDelegatorTotalRewardsResponse {
   110  
   111  	params := types.NewQueryDelegatorParams(delegatorAddr)
   112  	bz, err := amino.MarshalJSON(params)
   113  	require.NoError(t, err)
   114  
   115  	ctx, _ = ctx.CacheContext()
   116  	result, err := querier(ctx, []string{types.QueryDelegatorTotalRewards}, abci.RequestQuery{Data: bz})
   117  	require.NoError(t, err)
   118  
   119  	var response types.QueryDelegatorTotalRewardsResponse
   120  	err = amino.UnmarshalJSON(result, &response)
   121  	require.NoError(t, err)
   122  
   123  	return response
   124  }