Skip to content

Commit

Permalink
Initialize watchers for Arbitrum and Optimism
Browse files Browse the repository at this point in the history
  • Loading branch information
Agustin Godnic committed Jul 25, 2023
1 parent 108236c commit f706369
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
26 changes: 26 additions & 0 deletions contract-watcher/builder/watcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,29 @@ func CreateCeloWatcher(rateLimit int, chainURL string, wb config.WatcherBlockcha
MethodsByAddress: wb.MethodsByAddress}
return watcher.NewEvmStandarWatcher(celoClient, params, repo, metrics, logger)
}

func CreateOptimismWatcher(rateLimit int, chainURL string, wb config.WatcherBlockchainAddresses, logger *zap.Logger, repo *storage.Repository, metrics metrics.Metrics) watcher.ContractWatcher {
optimismLimiter := ratelimit.New(rateLimit, ratelimit.Per(time.Second))
optimismClient := evm.NewEvmSDK(chainURL, optimismLimiter, metrics)
params := watcher.EVMParams{
ChainID: wb.ChainID,
Blockchain: wb.Name,
SizeBlocks: wb.SizeBlocks,
WaitSeconds: wb.WaitSeconds,
InitialBlock: wb.InitialBlock,
MethodsByAddress: wb.MethodsByAddress}
return watcher.NewEvmStandarWatcher(optimismClient, params, repo, metrics, logger)
}

func CreateArbitrumWatcher(rateLimit int, chainURL string, wb config.WatcherBlockchainAddresses, logger *zap.Logger, repo *storage.Repository, metrics metrics.Metrics) watcher.ContractWatcher {
arbitrumLimiter := ratelimit.New(rateLimit, ratelimit.Per(time.Second))
arbitrumClient := evm.NewEvmSDK(chainURL, arbitrumLimiter, metrics)
params := watcher.EVMParams{
ChainID: wb.ChainID,
Blockchain: wb.Name,
SizeBlocks: wb.SizeBlocks,
WaitSeconds: wb.WaitSeconds,
InitialBlock: wb.InitialBlock,
MethodsByAddress: wb.MethodsByAddress}
return watcher.NewEvmStandarWatcher(arbitrumClient, params, repo, metrics, logger)
}
22 changes: 22 additions & 0 deletions contract-watcher/cmd/service/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ type watchersConfig struct {
oasis *config.WatcherBlockchainAddresses
moonbeam *config.WatcherBlockchainAddresses
celo *config.WatcherBlockchainAddresses
arbitrum *config.WatcherBlockchainAddresses
optimism *config.WatcherBlockchainAddresses
rateLimit rateLimitConfig
}

Expand All @@ -57,6 +59,8 @@ type rateLimitConfig struct {
oasis int
moonbeam int
celo int
optimism int
arbitrum int
}

func Run() {
Expand Down Expand Up @@ -185,10 +189,24 @@ func newWatchers(config *config.ServiceConfiguration, repo *storage.Repository,
result = append(result, moonbeamWatcher)
}

// add celo watcher
if watchers.celo != nil {
celoWatcher := builder.CreateCeloWatcher(watchers.rateLimit.celo, config.CeloUrl, *watchers.celo, logger, repo, metrics)
result = append(result, celoWatcher)
}

// add optimism watcher
if watchers.optimism != nil {
optimismWatcher := builder.CreateOptimismWatcher(watchers.rateLimit.optimism, config.OptimismUrl, *watchers.optimism, logger, repo, metrics)
result = append(result, optimismWatcher)
}

// add arbitrum watcher
if watchers.arbitrum != nil {
arbitrumWatcher := builder.CreateOptimismWatcher(watchers.rateLimit.arbitrum, config.ArbitrumUrl, *watchers.arbitrum, logger, repo, metrics)
result = append(result, arbitrumWatcher)
}

return result
}

Expand All @@ -215,6 +233,8 @@ func newWatchersForMainnet(cfg *config.ServiceConfiguration) *watchersConfig {
oasis: cfg.OasisRequestsPerSecond,
moonbeam: cfg.MoonbeamRequestsPerSecond,
celo: cfg.CeloRequestsPerSecond,
arbitrum: cfg.ArbitrumRequestsPerSecond,
optimism: cfg.OptimismRequestsPerSecond,
},
}
}
Expand All @@ -241,6 +261,8 @@ func newWatchersForTestnet(cfg *config.ServiceConfiguration) *watchersConfig {
oasis: cfg.OasisRequestsPerSecond,
moonbeam: cfg.MoonbeamRequestsPerSecond,
celo: cfg.CeloRequestsPerSecond,
optimism: cfg.OptimismRequestsPerSecond,
arbitrum: cfg.ArbitrumRequestsPerSecond,
},
}
}
Expand Down

0 comments on commit f706369

Please sign in to comment.