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  }