Skip to content

Commit

Permalink
add watchdog service
Browse files Browse the repository at this point in the history
  • Loading branch information
cyberhorsey committed Feb 7, 2024
1 parent 0df4a71 commit fdf4c01
Show file tree
Hide file tree
Showing 6 changed files with 196 additions and 118 deletions.
2 changes: 2 additions & 0 deletions packages/relayer/bridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
)

type Bridge interface {
IsMessageSent(opts *bind.CallOpts, message bridge.IBridgeMessage) (bool, error)
WatchMessageSent(
opts *bind.WatchOpts,
sink chan<- *bridge.BridgeMessageSent,
Expand Down Expand Up @@ -44,4 +45,5 @@ type Bridge interface {
InvocationDelay *big.Int
InvocationExtraDelay *big.Int
}, error)
SuspendMessages(opts *bind.TransactOpts, msgHashes [][32]byte, toSuspend bool) (*types.Transaction, error)
}
1 change: 1 addition & 0 deletions packages/relayer/cmd/flags/watchdog.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,5 @@ var WatchdogFlags = MergeFlags(CommonFlags, QueueFlags, []cli.Flag{
DestBridgeAddress,
TargetTxHash,
ProofEncodingType,
SrcBridgeAddress,
})
11 changes: 11 additions & 0 deletions packages/relayer/pkg/mock/bridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@ func (s *Subscription) Err() <-chan error {

func (s *Subscription) Unsubscribe() {}

func (b *Bridge) SuspendMessages(
opts *bind.TransactOpts,
msgHashes [][32]byte,
toSuspend bool,
) (*types.Transaction, error) {
return ProcessMessageTx, nil
}
func (b *Bridge) IsMessageSent(opts *bind.CallOpts, message bridge.IBridgeMessage) (bool, error) {
return false, nil
}

func (b *Bridge) GetInvocationDelays(opts *bind.CallOpts) (struct {
InvocationDelay *big.Int
InvocationExtraDelay *big.Int
Expand Down
18 changes: 3 additions & 15 deletions packages/relayer/watchdog/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,13 @@ import (

type Config struct {
// address configs
SrcSignalServiceAddress common.Address
DestBridgeAddress common.Address
DestERC721VaultAddress common.Address
DestERC20VaultAddress common.Address
DestERC1155VaultAddress common.Address
DestTaikoAddress common.Address
SrcBridgeAddress common.Address
DestBridgeAddress common.Address

// private key
WatchdogPrivateKey *ecdsa.PrivateKey

TargetTxHash *common.Hash

// processing configs
HeaderSyncInterval uint64
Confirmations uint64
ConfirmationsTimeout uint64
EnableTaikoL2 bool
Expand Down Expand Up @@ -73,12 +66,8 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) {

return &Config{
WatchdogPrivateKey: watchdogPrivateKey,
SrcSignalServiceAddress: common.HexToAddress(c.String(flags.SrcSignalServiceAddress.Name)),
DestTaikoAddress: common.HexToAddress(c.String(flags.DestTaikoAddress.Name)),
DestBridgeAddress: common.HexToAddress(c.String(flags.DestBridgeAddress.Name)),
DestERC721VaultAddress: common.HexToAddress(c.String(flags.DestERC721VaultAddress.Name)),
DestERC20VaultAddress: common.HexToAddress(c.String(flags.DestERC20VaultAddress.Name)),
DestERC1155VaultAddress: common.HexToAddress(c.String(flags.DestERC1155VaultAddress.Name)),
SrcBridgeAddress: common.HexToAddress(c.String(flags.SrcBridgeAddress.Name)),
DatabaseUsername: c.String(flags.DatabaseUsername.Name),
DatabasePassword: c.String(flags.DatabasePassword.Name),
DatabaseName: c.String(flags.DatabaseName.Name),
Expand All @@ -93,7 +82,6 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) {
QueuePrefetch: c.Uint64(flags.QueuePrefetchCount.Name),
SrcRPCUrl: c.String(flags.SrcRPCUrl.Name),
DestRPCUrl: c.String(flags.DestRPCUrl.Name),
HeaderSyncInterval: c.Uint64(flags.HeaderSyncInterval.Name),
Confirmations: c.Uint64(flags.Confirmations.Name),
ConfirmationsTimeout: c.Uint64(flags.ConfirmationTimeout.Name),
EnableTaikoL2: c.Bool(flags.EnableTaikoL2.Name),
Expand Down
16 changes: 3 additions & 13 deletions packages/relayer/watchdog/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
var (
dummyEcdsaKey = "8da4ef21b864d2cc526dbdb2a120bd2874c36c9d0a1fb7f8c63d7f7a8b41de8f"
destBridgeAddr = "0x63FaC9201494f0bd17B9892B9fae4d52fe3BD377"
headerSyncInterval = "30"
srcBridgeAddr = "0x33FaC9201494f0bd17B9892B9fae4d52fe3BD377"
confirmations = "10"
confirmationTimeout = "30"
backoffRetryInterval = "20"
Expand Down Expand Up @@ -53,12 +53,7 @@ func TestNewConfigFromCliContext(t *testing.T) {
assert.Equal(t, "srcRpcUrl", c.SrcRPCUrl)
assert.Equal(t, "destRpcUrl", c.DestRPCUrl)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.DestBridgeAddress)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.SrcSignalServiceAddress)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.DestERC20VaultAddress)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.DestERC721VaultAddress)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.DestERC1155VaultAddress)
assert.Equal(t, common.HexToAddress(destBridgeAddr), c.DestTaikoAddress)
assert.Equal(t, uint64(30), c.HeaderSyncInterval)
assert.Equal(t, common.HexToAddress(srcBridgeAddr), c.SrcBridgeAddress)
assert.Equal(t, uint64(10), c.Confirmations)
assert.Equal(t, uint64(30), c.ConfirmationsTimeout)
assert.Equal(t, uint64(20), c.BackoffRetryInterval)
Expand Down Expand Up @@ -96,13 +91,8 @@ func TestNewConfigFromCliContext(t *testing.T) {
"--" + flags.SrcRPCUrl.Name, "srcRpcUrl",
"--" + flags.DestRPCUrl.Name, "destRpcUrl",
"--" + flags.DestBridgeAddress.Name, destBridgeAddr,
"--" + flags.SrcSignalServiceAddress.Name, destBridgeAddr,
"--" + flags.DestERC721VaultAddress.Name, destBridgeAddr,
"--" + flags.DestERC20VaultAddress.Name, destBridgeAddr,
"--" + flags.DestERC1155VaultAddress.Name, destBridgeAddr,
"--" + flags.DestTaikoAddress.Name, destBridgeAddr,
"--" + flags.SrcBridgeAddress.Name, srcBridgeAddr,
"--" + flags.WatchdogPrivateKey.Name, dummyEcdsaKey,
"--" + flags.HeaderSyncInterval.Name, headerSyncInterval,
"--" + flags.Confirmations.Name, confirmations,
"--" + flags.ConfirmationTimeout.Name, confirmationTimeout,
"--" + flags.BackOffRetryInterval.Name, backoffRetryInterval,
Expand Down
Loading

0 comments on commit fdf4c01

Please sign in to comment.