diff --git a/src/finalizer/index.ts b/src/finalizer/index.ts index 682ab011a..7e845f91b 100644 --- a/src/finalizer/index.ts +++ b/src/finalizer/index.ts @@ -13,9 +13,9 @@ import { getMultisender, winston, } from "../utils"; -import { opStackFinalizer, polygonFinalizer, multicallArbitrumFinalizations, zkSyncFinalizer } from "./utils"; +import { arbitrumOneFinalizer, opStackFinalizer, polygonFinalizer, zkSyncFinalizer } from "./utils"; import { SpokePoolClientsByChain } from "../interfaces"; -import { HubPoolClient, SpokePoolClient } from "../clients"; +import { HubPoolClient } from "../clients"; import { DataworkerConfig } from "../dataworker/DataworkerConfig"; import { constructClients, @@ -26,7 +26,7 @@ import { FINALIZER_TOKENBRIDGE_LOOKBACK, Multicall2Call, } from "../common"; -import { ChainFinalizer, FinalizerPromise, Withdrawal } from "./types"; +import { ChainFinalizer, Withdrawal } from "./types"; config(); let logger: winston.Logger; @@ -43,28 +43,6 @@ const chainFinalizers: { [chainId: number]: ChainFinalizer } = { 42161: arbitrumOneFinalizer, }; -async function arbitrumOneFinalizer( - logger: winston.Logger, - signer: Wallet, - hubPoolClient: HubPoolClient, - spokePoolClient: SpokePoolClient, - latestBlockToFinalize: number -): Promise { - const { chainId } = spokePoolClient; - - logger.debug({ - at: "Finalizer#arbitrumOneFinalizer", - message: `Oldest TokensBridged block to attempt to finalize for ${getNetworkName(chainId)}`, - latestBlockToFinalize, - }); - // Skip events that are likely not past the seven day challenge period. - const olderTokensBridgedEvents = spokePoolClient - .getTokensBridged() - .filter((e) => e.blockNumber < latestBlockToFinalize); - - return await multicallArbitrumFinalizations(olderTokensBridgedEvents, signer, hubPoolClient, logger); -} - export async function finalize( logger: winston.Logger, hubSigner: Wallet, diff --git a/src/finalizer/utils/arbitrum.ts b/src/finalizer/utils/arbitrum.ts index 69aeee910..4d6fc9ade 100644 --- a/src/finalizer/utils/arbitrum.ts +++ b/src/finalizer/utils/arbitrum.ts @@ -1,13 +1,43 @@ -import { Wallet, winston, convertFromWei, groupObjectCountsByProp, Contract, getCachedProvider } from "../../utils"; import { L2ToL1MessageStatus, L2TransactionReceipt, L2ToL1MessageWriter } from "@arbitrum/sdk"; +import { + Wallet, + winston, + convertFromWei, + getNetworkName, + groupObjectCountsByProp, + Contract, + getCachedProvider, +} from "../../utils"; import { TokensBridged } from "../../interfaces"; -import { HubPoolClient } from "../../clients"; +import { HubPoolClient, SpokePoolClient } from "../../clients"; import { CONTRACT_ADDRESSES, Multicall2Call } from "../../common"; -import { Withdrawal } from "../types"; +import { FinalizerPromise, Withdrawal } from "../types"; const CHAIN_ID = 42161; -export async function multicallArbitrumFinalizations( +export async function arbitrumOneFinalizer( + logger: winston.Logger, + signer: Wallet, + hubPoolClient: HubPoolClient, + spokePoolClient: SpokePoolClient, + latestBlockToFinalize: number +): Promise { + const { chainId } = spokePoolClient; + + logger.debug({ + at: "Finalizer#arbitrumOneFinalizer", + message: `Oldest TokensBridged block to attempt to finalize for ${getNetworkName(chainId)}`, + latestBlockToFinalize, + }); + // Skip events that are likely not past the seven day challenge period. + const olderTokensBridgedEvents = spokePoolClient + .getTokensBridged() + .filter((e) => e.blockNumber < latestBlockToFinalize); + + return await multicallArbitrumFinalizations(olderTokensBridgedEvents, signer, hubPoolClient, logger); +} + +async function multicallArbitrumFinalizations( tokensBridged: TokensBridged[], hubSigner: Wallet, hubPoolClient: HubPoolClient, @@ -38,7 +68,7 @@ export async function multicallArbitrumFinalizations( }; } -export async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise { +async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise { const l2Provider = getCachedProvider(CHAIN_ID, true); const proof = await message.getOutboxProof(l2Provider); const { address, abi } = CONTRACT_ADDRESSES[CHAIN_ID].outbox; @@ -64,7 +94,7 @@ export async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise x.status === L2ToL1MessageStatus[L2ToL1MessageStatus.CONFIRMED]); } -export async function getAllMessageStatuses( +async function getAllMessageStatuses( tokensBridged: TokensBridged[], logger: winston.Logger, mainnetSigner: Wallet @@ -122,7 +152,8 @@ export async function getAllMessageStatuses( }) .filter((result) => result.message !== undefined); } -export async function getMessageOutboxStatusAndProof( + +async function getMessageOutboxStatusAndProof( logger: winston.Logger, event: TokensBridged, l1Signer: Wallet,