github.com/Finschia/finschia-sdk@v0.48.1/x/foundation/events.go (about)

     1  package foundation
     2  
     3  import (
     4  	"github.com/gogo/protobuf/proto"
     5  
     6  	codectypes "github.com/Finschia/finschia-sdk/codec/types"
     7  	sdkerrors "github.com/Finschia/finschia-sdk/types/errors"
     8  )
     9  
    10  func (m EventUpdateDecisionPolicy) GetDecisionPolicy() DecisionPolicy {
    11  	if m.DecisionPolicy == nil {
    12  		return nil
    13  	}
    14  
    15  	policy, ok := m.DecisionPolicy.GetCachedValue().(DecisionPolicy)
    16  	if !ok {
    17  		return nil
    18  	}
    19  	return policy
    20  }
    21  
    22  func (m *EventUpdateDecisionPolicy) SetDecisionPolicy(policy DecisionPolicy) error {
    23  	event, ok := policy.(proto.Message)
    24  	if !ok {
    25  		return sdkerrors.ErrInvalidType.Wrapf("can't proto marshal %T", event)
    26  	}
    27  
    28  	any, err := codectypes.NewAnyWithValue(event)
    29  	if err != nil {
    30  		return err
    31  	}
    32  	m.DecisionPolicy = any
    33  
    34  	return nil
    35  }
    36  
    37  func (m EventUpdateDecisionPolicy) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error {
    38  	var policy DecisionPolicy
    39  	return unpacker.UnpackAny(m.DecisionPolicy, &policy)
    40  }