Skip to content

Commit

Permalink
refactor(finalizer): Remove Arbitrum One code from index (#903)
Browse files Browse the repository at this point in the history
Repeat the finalizer refactoring for Arbitrum One.
  • Loading branch information
pxrl committed Aug 22, 2023
1 parent 5f48898 commit 6350daa
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 33 deletions.
28 changes: 3 additions & 25 deletions src/finalizer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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;
Expand All @@ -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<FinalizerPromise> {
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,
Expand Down
47 changes: 39 additions & 8 deletions src/finalizer/utils/arbitrum.ts
Original file line number Diff line number Diff line change
@@ -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<FinalizerPromise> {
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,
Expand Down Expand Up @@ -38,7 +68,7 @@ export async function multicallArbitrumFinalizations(
};
}

export async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise<Multicall2Call> {
async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise<Multicall2Call> {
const l2Provider = getCachedProvider(CHAIN_ID, true);
const proof = await message.getOutboxProof(l2Provider);
const { address, abi } = CONTRACT_ADDRESSES[CHAIN_ID].outbox;
Expand All @@ -64,7 +94,7 @@ export async function finalizeArbitrum(message: L2ToL1MessageWriter): Promise<Mu
};
}

export async function getFinalizableMessages(
async function getFinalizableMessages(
logger: winston.Logger,
tokensBridged: TokensBridged[],
l1Signer: Wallet
Expand All @@ -88,7 +118,7 @@ export async function getFinalizableMessages(
return allMessagesWithStatuses.filter((x) => x.status === L2ToL1MessageStatus[L2ToL1MessageStatus.CONFIRMED]);
}

export async function getAllMessageStatuses(
async function getAllMessageStatuses(
tokensBridged: TokensBridged[],
logger: winston.Logger,
mainnetSigner: Wallet
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 6350daa

Please sign in to comment.