diff --git a/packages/mobymask-v2-watcher/environments/local.toml b/packages/mobymask-v2-watcher/environments/local.toml index f6139853..bfcf6e32 100644 --- a/packages/mobymask-v2-watcher/environments/local.toml +++ b/packages/mobymask-v2-watcher/environments/local.toml @@ -33,6 +33,7 @@ relayMultiaddr = '' pubSubTopic = 'mobymask' peerIdFile = '' + enableL2Txs = false [server.p2p.peer.l2TxConfig] privateKey = '' diff --git a/packages/mobymask-v2-watcher/src/server.ts b/packages/mobymask-v2-watcher/src/server.ts index 51923357..f2baeccf 100644 --- a/packages/mobymask-v2-watcher/src/server.ts +++ b/packages/mobymask-v2-watcher/src/server.ts @@ -4,6 +4,7 @@ import fs from 'fs'; import path from 'path'; +import assert from 'assert'; import 'reflect-metadata'; import debug from 'debug'; import { ethers } from 'ethers'; @@ -23,11 +24,12 @@ export const main = async (): Promise => { await serverCmd.initIndexer(Indexer); let p2pMessageHandler = parseLibp2pMessage; - const { l2TxConfig } = serverCmd.config.server.p2p.peer; + const { enableL2Txs, l2TxsConfig } = serverCmd.config.server.p2p.peer; - if (l2TxConfig) { - const wallet = new ethers.Wallet(l2TxConfig.privateKey, serverCmd.ethProvider); - p2pMessageHandler = createMessageToL2Handler(wallet, l2TxConfig); + if (enableL2Txs) { + assert(l2TxsConfig); + const wallet = new ethers.Wallet(l2TxsConfig.privateKey, serverCmd.ethProvider); + p2pMessageHandler = createMessageToL2Handler(wallet, l2TxsConfig); } const typeDefs = fs.readFileSync(path.join(__dirname, 'schema.gql')).toString(); diff --git a/packages/util/src/config.ts b/packages/util/src/config.ts index b0fccdcb..e8adf44d 100644 --- a/packages/util/src/config.ts +++ b/packages/util/src/config.ts @@ -70,7 +70,7 @@ export interface RelayConfig { } // L2 tx config -interface L2TxConfig { +interface L2TxsConfig { // Address of contract for which txs are sent contractAddress: string; @@ -113,8 +113,11 @@ export interface PeerConfig { // Participate in exchange of debug info over floodsub enableDebugInfo?: boolean; + // Enable sending txs to L2 chain for every message received in P2P network + enableL2Txs: boolean; + // Config for sending txs to L2 - l2TxConfig?: L2TxConfig; + l2TxsConfig?: L2TxsConfig; } // P2P config