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 }