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 }