2023-03-11 14:49:07 +00:00
|
|
|
package index
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2023-03-11 16:21:16 +00:00
|
|
|
"errors"
|
2023-03-11 14:49:07 +00:00
|
|
|
|
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
|
|
|
"github.com/ipfs/go-cid"
|
|
|
|
)
|
|
|
|
|
2023-03-11 16:21:16 +00:00
|
|
|
var ErrNotFound = errors.New("message not found")
|
2023-03-11 20:09:31 +00:00
|
|
|
var ErrClosed = errors.New("index closed")
|
2023-03-11 16:21:16 +00:00
|
|
|
|
2023-03-11 14:49:07 +00:00
|
|
|
// MsgInfo is the Message metadata the index tracks.
|
|
|
|
type MsgInfo struct {
|
|
|
|
// the message this record refers to
|
|
|
|
Message cid.Cid
|
2023-03-11 16:21:16 +00:00
|
|
|
// the tipset where this messages was executed
|
2023-03-12 11:21:03 +00:00
|
|
|
TipSet cid.Cid
|
2023-03-11 14:49:07 +00:00
|
|
|
// the epoch whre this message was executed
|
|
|
|
Epoch abi.ChainEpoch
|
2023-03-11 15:25:57 +00:00
|
|
|
// the canonical execution order of the message in the tipset
|
2023-03-11 14:49:07 +00:00
|
|
|
Index int
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgIndex is the interface to the message index
|
|
|
|
type MsgIndex interface {
|
|
|
|
// GetMsgInfo retrieves the message metadata through the index.
|
|
|
|
GetMsgInfo(ctx context.Context, m cid.Cid) (MsgInfo, error)
|
|
|
|
// Close closes the index
|
|
|
|
Close() error
|
|
|
|
}
|