-
Notifications
You must be signed in to change notification settings - Fork 0
/
bridge.go
42 lines (35 loc) · 1.18 KB
/
bridge.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
40
41
42
package server
import (
"context"
"github.com/jinxprotocol/v4-chain/protocol/daemons/bridge/api"
"github.com/jinxprotocol/v4-chain/protocol/daemons/server/types"
bdtypes "github.com/jinxprotocol/v4-chain/protocol/daemons/server/types/bridge"
)
// BridgeServer defines the fields required for bridge event updates.
type BridgeServer struct {
bridgeEventManager *bdtypes.BridgeEventManager
}
// WithBridgeEventManager sets the `bridgeEventManager` field.
// This is updated by the bridge service with a list of recognized bridge events.
func (server *Server) WithBridgeEventManager(
bridgeEventManager *bdtypes.BridgeEventManager,
) *Server {
server.bridgeEventManager = bridgeEventManager
return server
}
// AddBridgeEvents stores any bridge events recognized by the daemon
// in a go-routine safe slice.
func (s *Server) AddBridgeEvents(
ctx context.Context,
req *api.AddBridgeEventsRequest,
) (
response *api.AddBridgeEventsResponse,
err error,
) {
if err = s.bridgeEventManager.AddBridgeEvents(req.BridgeEvents); err != nil {
return nil, err
}
// Capture valid responses in metrics.
s.reportValidResponse(types.BridgeDaemonServiceName)
return &api.AddBridgeEventsResponse{}, nil
}