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 }