Skip to content

Commit

Permalink
pending validator export test
Browse files Browse the repository at this point in the history
  • Loading branch information
Reecepbcups committed Nov 21, 2023
1 parent 16df80e commit 746364f
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 18 deletions.
47 changes: 39 additions & 8 deletions keeper/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,71 @@ import (

"github.com/strangelove-ventures/poa"
"github.com/stretchr/testify/require"

sdkmath "cosmossdk.io/math"

sdk "github.com/cosmos/cosmos-sdk/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
)

func TestInitGenesis(t *testing.T) {
fixture := SetupTest(t, 2_000_000)
require := require.New(t)

t.Run("default params", func(t *testing.T) {
data := &poa.GenesisState{
PendingValidators: []poa.Validator{},
Params: poa.DefaultParams(),
}
err := fixture.k.InitGenesis(fixture.ctx, data)
require.NoError(t, err)
require.NoError(err)

params, err := fixture.k.GetParams(fixture.ctx)
require.NoError(t, err)
require.Equal(t, poa.DefaultParams(), params)
require.NoError(err)
require.Equal(poa.DefaultParams(), params)
})

// check custom
t.Run("custom params", func(t *testing.T) {
p, err := poa.NewParams([]string{fixture.addrs[0].String(), fixture.addrs[1].String()})
require.NoError(t, err)
require.NoError(err)

data := &poa.GenesisState{
PendingValidators: []poa.Validator{},
Params: p,
}
err = fixture.k.InitGenesis(fixture.ctx, data)
require.NoError(t, err)
require.NoError(err)

params, err := fixture.k.GetParams(fixture.ctx)
require.NoError(t, err)
require.Equal(t, p, params)
require.NoError(err)
require.Equal(p, params)
})

t.Run("pending validator export", func(t *testing.T) {
p, err := poa.NewParams([]string{fixture.addrs[0].String(), fixture.addrs[1].String()})
require.NoError(err)

acc := GenAcc()
valAddr := sdk.ValAddress(acc.addr)

val, err := stakingtypes.NewValidator(valAddr.String(), acc.valKey.PubKey(), stakingtypes.Description{})
require.NoError(err)

val.Tokens = sdkmath.NewInt(1_234_567)

err = fixture.k.InitGenesis(fixture.ctx, &poa.GenesisState{
PendingValidators: []poa.Validator{
poa.ConvertStakingToPOA(val),
},
Params: p,
})
require.NoError(err)

exported := fixture.k.ExportGenesis(fixture.ctx)
require.Equal(1, len(exported.PendingValidators))
require.Equal(valAddr.String(), exported.PendingValidators[0].OperatorAddress)
require.Equal(val.Tokens, exported.PendingValidators[0].Tokens)
})

// TODO: PendingValidators
}
16 changes: 9 additions & 7 deletions keeper/keeper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ type testFixture struct {

func SetupTest(t *testing.T, baseValShares int64) *testFixture {
s := new(testFixture)
require := require.New(t)

logger := log.NewTestLogger(t)
s.govModAddr = authtypes.NewModuleAddress(govtypes.ModuleName).String()
Expand All @@ -87,11 +88,11 @@ func SetupTest(t *testing.T, baseValShares int64) *testFixture {

s.stakingKeeper = stakingkeeper.NewKeeper(encCfg.Codec, storeService, s.accountkeeper, s.bankkeeper, s.govModAddr, authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr), authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr))
err := s.stakingKeeper.SetParams(s.ctx, stakingtypes.DefaultParams())
require.NoError(t, err)
require.NoError(err)

s.slashingKeeper = slashingkeeper.NewKeeper(encCfg.Codec, encCfg.Amino, storeService, s.stakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String())
err = s.slashingKeeper.SetParams(s.ctx, slashingtypes.DefaultParams())
require.NoError(t, err)
require.NoError(err)

s.k = keeper.NewKeeper(encCfg.Codec, storeService, s.stakingKeeper, s.slashingKeeper, addresscodec.NewBech32Codec("cosmosvaloper"))
s.msgServer = keeper.NewMsgServerImpl(s.k)
Expand All @@ -106,7 +107,7 @@ func SetupTest(t *testing.T, baseValShares int64) *testFixture {
genState := poa.NewGenesisState()
genState.Params.Admins = []string{s.addrs[0].String(), s.govModAddr}
err = s.k.InitGenesis(s.ctx, genState)
require.NoError(t, err)
require.NoError(err)

s.createBaseStakingValidators(t, baseValShares)
return s
Expand All @@ -131,6 +132,7 @@ func GenAcc() valSetup {
}

func (f *testFixture) createBaseStakingValidators(t *testing.T, baseValShares int64) {
require := require.New(t)
bondCoin := sdk.NewCoin("stake", math.NewInt(baseValShares))

vals := []valSetup{
Expand Down Expand Up @@ -161,17 +163,17 @@ func (f *testFixture) createBaseStakingValidators(t *testing.T, baseValShares in
Power: bondCoin.Amount.Uint64(),
Unsafe: true,
})
require.NoError(t, err)
require.NoError(err)

// increase the block so the new validator is in the validator set
_, err = f.IncreaseBlock(1)
require.NoError(t, err)
require.NoError(err)

valAddrBz, err := sdk.ValAddressFromBech32(val.GetOperator())
require.NoError(t, err)
require.NoError(err)

validator, err := f.stakingKeeper.GetValidator(f.ctx, valAddrBz)
require.NoError(t, err)
require.NoError(err)

validator.Status = stakingtypes.Bonded
if err := f.stakingKeeper.SetValidator(f.ctx, validator); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion simapp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ require (
cosmossdk.io/x/nft v0.0.0-20230925151519-64e0e8980834
cosmossdk.io/x/tx v0.12.0
cosmossdk.io/x/upgrade v0.0.0-20230925151519-64e0e8980834
github.com/cometbft/cometbft v0.38.0
github.com/cometbft/cometbft v0.38.1
github.com/cosmos/cosmos-db v1.0.0
github.com/cosmos/cosmos-sdk v0.50.1
github.com/cosmos/gogoproto v1.4.11
Expand Down
4 changes: 2 additions & 2 deletions simapp/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/cometbft/cometbft v0.38.0 h1:ogKnpiPX7gxCvqTEF4ly25/wAxUqf181t30P3vqdpdc=
github.com/cometbft/cometbft v0.38.0/go.mod h1:5Jz0Z8YsHSf0ZaAqGvi/ifioSdVFPtEGrm8Y9T/993k=
github.com/cometbft/cometbft v0.38.1 h1:hflfGk/VrPapfHco3rgCqn2YpOglAqJshSdyrM2zSLk=
github.com/cometbft/cometbft v0.38.1/go.mod h1:PIi48BpzwlHqtV3mzwPyQgOyOnU94BNBimLS2ebBHOg=
github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo=
github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
Expand Down

0 comments on commit 746364f

Please sign in to comment.