github.com/lino-network/lino@v0.6.11/types/event.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/cosmos/cosmos-sdk/types"
     5  )
     6  
     7  // Event - event executed in app.go
     8  type Event interface{}
     9  
    10  // Minute -> TimeEventList
    11  type TimeEventList struct {
    12  	Events []Event `json:"events"`
    13  }
    14  
    15  // EventError - event and errors
    16  // Module scheduled events
    17  type EventError struct {
    18  	Time    int64        `json:"time"`
    19  	Event   Event        `json:"event"`
    20  	ErrCode sdk.CodeType `json:"err_code"`
    21  }
    22  
    23  // EventExec is a function that can execute events.
    24  type EventExec = func(ctx sdk.Context, event Event) sdk.Error
    25  
    26  // BCEventErrReason - blockchain event error. deterministic.
    27  type BCEventErr struct {
    28  	Time         int64             `json:"time"`
    29  	ErrCode      sdk.CodeType      `json:"err_code"`
    30  	ErrCodeSpace sdk.CodespaceType `json:"err_code_space"`
    31  	Reason       string            `json:"reason"`
    32  }
    33  
    34  func NewBCEventErr(ctx sdk.Context, err sdk.Error, reason string) BCEventErr {
    35  	return BCEventErr{
    36  		Time:         ctx.BlockTime().Unix(),
    37  		ErrCode:      err.Code(),
    38  		ErrCodeSpace: err.Codespace(),
    39  		Reason:       reason,
    40  	}
    41  }
    42  
    43  // BCEvent execute blockchain scheduled events.
    44  type BCEventExec = func(ctx sdk.Context) []BCEventErr