github.com/Finschia/finschia-sdk@v0.49.1/x/feegrant/genesis.go (about) 1 package feegrant 2 3 import ( 4 "github.com/Finschia/finschia-sdk/codec/types" 5 ) 6 7 var _ types.UnpackInterfacesMessage = GenesisState{} 8 9 // NewGenesisState creates new GenesisState object 10 func NewGenesisState(entries []Grant) *GenesisState { 11 return &GenesisState{ 12 Allowances: entries, 13 } 14 } 15 16 // ValidateGenesis ensures all grants in the genesis state are valid 17 func ValidateGenesis(data GenesisState) error { 18 for _, f := range data.Allowances { 19 grant, err := f.GetGrant() 20 if err != nil { 21 return err 22 } 23 err = grant.ValidateBasic() 24 if err != nil { 25 return err 26 } 27 } 28 return nil 29 } 30 31 // DefaultGenesisState returns default state for feegrant module. 32 func DefaultGenesisState() *GenesisState { 33 return &GenesisState{} 34 } 35 36 // UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces 37 func (data GenesisState) UnpackInterfaces(unpacker types.AnyUnpacker) error { 38 for _, f := range data.Allowances { 39 err := f.UnpackInterfaces(unpacker) 40 if err != nil { 41 return err 42 } 43 } 44 45 return nil 46 }