cic-chain-events/pkg/fetch/fetch.go

38 lines
965 B
Go
Raw Permalink Normal View History

2023-01-05 12:45:09 +01:00
package fetch
import "context"
2023-01-05 12:45:09 +01:00
// Fetch defines a block fetcher that must return a full JSON response
type Fetch interface {
Block(ctx context.Context, block uint64) (fetchResponse FetchResponse, err error)
2023-01-05 12:45:09 +01:00
}
// Transaction reprsents a JSON object of all important mined transaction information
type Transaction struct {
Block struct {
Number uint64 `json:"number"`
2023-01-05 12:45:09 +01:00
Timestamp string `json:"timestamp"`
} `json:"block"`
Hash string `json:"hash"`
Index uint `json:"index"`
From struct {
Address string `json:"address"`
} `json:"from"`
To struct {
Address string `json:"address"`
} `json:"to"`
Value string `json:"value"`
InputData string `json:"inputData"`
Status uint64 `json:"status"`
GasUsed uint64 `json:"gasUsed"`
2023-01-05 12:45:09 +01:00
}
// BlockResponse represents a full fetch JSON response
type FetchResponse struct {
Data struct {
Block struct {
Transactions []Transaction `json:"transactions"`
} `json:"block"`
} `json:"data"`
}