-
Notifications
You must be signed in to change notification settings - Fork 24
/
relayer_db.go
39 lines (33 loc) · 1.56 KB
/
relayer_db.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package db
import (
"context"
"github.com/ethereum/go-ethereum/common"
listenerDB "github.com/synapsecns/sanguine/ethergo/listener/db"
submitterDB "github.com/synapsecns/sanguine/ethergo/submitter/db"
"github.com/synapsecns/sanguine/services/cctp-relayer/types"
)
// CCTPRelayerDBReader is the interface for reading from the database.
type CCTPRelayerDBReader interface {
// GetLastBlockNumber gets the last block number that had a message for the respective origin chain in the database.
GetLastBlockNumber(ctx context.Context, chainID uint32) (uint64, error)
// GetMessagesByState gets all messages with the given state.
GetMessagesByState(ctx context.Context, states ...types.MessageState) ([]types.Message, error)
// GetMessageByOriginHash gets a message by its origin hash.
GetMessageByOriginHash(ctx context.Context, originHash common.Hash) (*types.Message, error)
// GetMessageByRequestID gets a message by its request id.
GetMessageByRequestID(ctx context.Context, requestID string) (*types.Message, error)
// GetMessageByHash gets a message by its message hash.
GetMessageByHash(ctx context.Context, messageHash common.Hash) (*types.Message, error)
}
// CCTPRelayerDBWriter is the interface for writing to the database.
type CCTPRelayerDBWriter interface {
// StoreMessage stores a message in the database.
StoreMessage(ctx context.Context, message types.Message) error
}
// CCTPRelayerDB is the interface for the database service.
type CCTPRelayerDB interface {
CCTPRelayerDBReader
CCTPRelayerDBWriter
SubmitterDB() submitterDB.Service
listenerDB.ChainListenerDB
}