diff --git a/x/claim/keeper/airdrop_supply.go b/x/claim/keeper/airdrop_supply.go index ca83bf5..241f6dc 100644 --- a/x/claim/keeper/airdrop_supply.go +++ b/x/claim/keeper/airdrop_supply.go @@ -3,6 +3,7 @@ package keeper import ( "context" + "cosmossdk.io/collections" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" @@ -36,10 +37,10 @@ func (k Keeper) InitializeAirdropSupply(ctx context.Context, airdropSupply sdk.C func (k Keeper) EndAirdrop(ctx context.Context) error { airdropSupply, err := k.AirdropSupply.Get(ctx) - if err != nil { + if err != nil && !errors.IsOf(err, collections.ErrNotFound) { return err } - if !airdropSupply.Supply.IsPositive() { + if errors.IsOf(err, collections.ErrNotFound) || !airdropSupply.Supply.IsPositive() { return nil } @@ -48,8 +49,8 @@ func (k Keeper) EndAirdrop(ctx context.Context) error { return err } - blockTime := sdk.UnwrapSDKContext(ctx).BlockTime() decayInfo := params.DecayInformation + blockTime := sdk.UnwrapSDKContext(ctx).BlockTime() if decayInfo.Enabled && blockTime.After(decayInfo.DecayEnd) { err := k.distrKeeper.FundCommunityPool( ctx, diff --git a/x/claim/simulation/claim.go b/x/claim/simulation/claim.go index 5bc60dd..6e3dbd7 100644 --- a/x/claim/simulation/claim.go +++ b/x/claim/simulation/claim.go @@ -52,6 +52,14 @@ func SimulateMsgClaim( return value, nil }, ) + if err != nil { + return simtypes.NoOpMsg( + types.ModuleName, + msg.Type(), + fmt.Sprintf("chain has no missions: %s", err.Error()), + ), nil, nil + } + for _, m := range missions { if cr.IsMissionCompleted(m.MissionID) && !cr.IsMissionClaimed(m.MissionID) { hasMission = true