github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evidence/genesis.go (about)

     1  package evidence
     2  
     3  import (
     4  	"fmt"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  )
     8  
     9  // InitGenesis initializes the evidence module's state from a provided genesis
    10  // state.
    11  func InitGenesis(ctx sdk.Context, k Keeper, gs GenesisState) {
    12  	if err := gs.Validate(); err != nil {
    13  		panic(fmt.Sprintf("failed to validate %s genesis state: %s", ModuleName, err))
    14  	}
    15  
    16  	for _, e := range gs.Evidence {
    17  		if _, ok := k.GetEvidence(ctx, e.Hash()); ok {
    18  			panic(fmt.Sprintf("evidence with hash %s already exists", e.Hash()))
    19  		}
    20  
    21  		k.SetEvidence(ctx, e)
    22  	}
    23  
    24  	k.SetParams(ctx, gs.Params)
    25  }
    26  
    27  // ExportGenesis returns the evidence module's exported genesis.
    28  func ExportGenesis(ctx sdk.Context, k Keeper) GenesisState {
    29  	return GenesisState{
    30  		Params:   k.GetParams(ctx),
    31  		Evidence: k.GetAllEvidence(ctx),
    32  	}
    33  }