github.com/datachainlab/burrow@v0.25.0/execution/exec/call_event.go (about)

     1  package exec
     2  
     3  type CallType uint32
     4  
     5  const (
     6  	CallTypeCall     = CallType(0x00)
     7  	CallTypeCode     = CallType(0x01)
     8  	CallTypeDelegate = CallType(0x02)
     9  	CallTypeStatic   = CallType(0x03)
    10  	CallTypeSNative  = CallType(0x04)
    11  )
    12  
    13  var nameFromCallType = map[CallType]string{
    14  	CallTypeCall:     "Call",
    15  	CallTypeCode:     "CallCode",
    16  	CallTypeDelegate: "DelegateCall",
    17  	CallTypeStatic:   "StaticCall",
    18  	CallTypeSNative:  "SNativeCall",
    19  }
    20  
    21  var callTypeFromName = make(map[string]CallType)
    22  
    23  func init() {
    24  	for t, n := range nameFromCallType {
    25  		callTypeFromName[n] = t
    26  	}
    27  }
    28  
    29  func CallTypeFromString(name string) CallType {
    30  	return callTypeFromName[name]
    31  }
    32  
    33  func (ct CallType) String() string {
    34  	name, ok := nameFromCallType[ct]
    35  	if ok {
    36  		return name
    37  	}
    38  	return "UnknownCallType"
    39  }
    40  
    41  func (ct CallType) MarshalText() ([]byte, error) {
    42  	return []byte(ct.String()), nil
    43  }
    44  
    45  func (ct *CallType) UnmarshalText(data []byte) error {
    46  	*ct = CallTypeFromString(string(data))
    47  	return nil
    48  }