-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> (cherry picked from commit 5028893) # Conflicts: # schema/appdata/data.go
- Loading branch information
1 parent
0eb9540
commit 3db9c56
Showing
3 changed files
with
148 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
package appdata | ||
|
||
import ( | ||
"encoding/json" | ||
|
||
"cosmossdk.io/schema" | ||
) | ||
|
||
// ModuleInitializationData represents data for related to module initialization, in particular | ||
// the module's schema. | ||
type ModuleInitializationData struct { | ||
// ModuleName is the name of the module. | ||
ModuleName string | ||
|
||
// Schema is the schema of the module. | ||
Schema schema.ModuleSchema | ||
} | ||
|
||
// StartBlockData represents the data that is passed to a listener when a block is started. | ||
type StartBlockData struct { | ||
// Height is the height of the block. | ||
Height uint64 | ||
|
||
// Bytes is the raw byte representation of the block header. It may be nil if the source does not provide it. | ||
HeaderBytes ToBytes | ||
|
||
// JSON is the JSON representation of the block header. It should generally be a JSON object. | ||
// It may be nil if the source does not provide it. | ||
HeaderJSON ToJSON | ||
} | ||
|
||
// TxData represents the raw transaction data that is passed to a listener. | ||
type TxData struct { | ||
// TxIndex is the index of the transaction in the block. | ||
TxIndex int32 | ||
|
||
// Bytes is the raw byte representation of the transaction. | ||
Bytes ToBytes | ||
|
||
// JSON is the JSON representation of the transaction. It should generally be a JSON object. | ||
JSON ToJSON | ||
} | ||
|
||
// EventData represents event data that is passed to a listener when events are received. | ||
type EventData struct { | ||
// Events are the events that are received. | ||
Events []Event | ||
} | ||
|
||
// Event represents the data for a single event. | ||
type Event struct { | ||
// BlockStage represents the stage of the block at which this event is associated. | ||
// If the block stage is unknown, it should be set to UnknownBlockStage. | ||
BlockStage BlockStage | ||
|
||
// TxIndex is the 1-based index of the transaction in the block to which this event is associated. | ||
// If TxIndex is zero, it means that we do not know the transaction index. | ||
// Otherwise, the index should start with 1. | ||
TxIndex int32 | ||
|
||
// MsgIndex is the 1-based index of the message in the transaction to which this event is associated. | ||
// If MsgIndex is zero, it means that we do not know the message index. | ||
// Otherwise, the index should start with 1. | ||
MsgIndex int32 | ||
|
||
// EventIndex is the 1-based index of the event in the message to which this event is associated. | ||
// If EventIndex is zero, it means that we do not know the event index. | ||
// Otherwise, the index should start with 1. | ||
EventIndex int32 | ||
|
||
// Type is the type of the event. | ||
Type string | ||
|
||
// Data lazily returns the JSON representation of the event. | ||
Data ToJSON | ||
|
||
// Attributes lazily returns the key-value attribute representation of the event. | ||
Attributes ToEventAttributes | ||
} | ||
|
||
// BlockStage represents the stage of block processing for an event. | ||
type BlockStage int32 | ||
|
||
const ( | ||
// UnknownBlockStage indicates that we do not know the block stage. | ||
UnknownBlockStage BlockStage = iota | ||
|
||
// PreBlockStage indicates that the event is associated with the pre-block stage. | ||
PreBlockStage | ||
|
||
// BeginBlockStage indicates that the event is associated with the begin-block stage. | ||
BeginBlockStage | ||
|
||
// TxProcessingStage indicates that the event is associated with the transaction processing stage. | ||
TxProcessingStage | ||
|
||
// EndBlockStage indicates that the event is associated with the end-block stage. | ||
EndBlockStage | ||
) | ||
|
||
type EventAttribute = struct { | ||
Key, Value string | ||
} | ||
|
||
// ToBytes is a function that lazily returns the raw byte representation of data. | ||
type ToBytes = func() ([]byte, error) | ||
|
||
// ToJSON is a function that lazily returns the JSON representation of data. | ||
type ToJSON = func() (json.RawMessage, error) | ||
|
||
// ToEventAttributes is a function that lazily returns the key-value attribute representation of an event. | ||
type ToEventAttributes = func() ([]EventAttribute, error) | ||
|
||
// KVPairData represents a batch of key-value pair data that is passed to a listener. | ||
type KVPairData struct { | ||
Updates []ActorKVPairUpdate | ||
} | ||
|
||
// ActorKVPairUpdate represents a key-value pair update for a specific module or account. | ||
type ActorKVPairUpdate = struct { | ||
// Actor is the byte representation of the module or account that is updating the key-value pair. | ||
Actor []byte | ||
|
||
// StateChanges are key-value pair updates. | ||
StateChanges []schema.KVPairUpdate | ||
} | ||
|
||
// ObjectUpdateData represents object update data that is passed to a listener. | ||
type ObjectUpdateData struct { | ||
// ModuleName is the name of the module that the update corresponds to. | ||
ModuleName string | ||
|
||
// Updates are the object updates. | ||
Updates []schema.ObjectUpdate | ||
} | ||
|
||
// CommitData represents commit data. It is empty for now, but fields could be added later. | ||
type CommitData struct{} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters