UNPKG

@unruggable/gateways

Version:

Trustless Ethereum Multichain CCIP-Read Gateway

28 lines (27 loc) 1.04 kB
import { AbstractRollup } from '../rollup.mjs'; import { ABI_CODER, MAINNET_BLOCK_SEC } from '../utils.mjs'; import { Contract } from 'ethers/contract'; export class AbstractArbitrumRollup extends AbstractRollup { isBoLD; minAgeBlocks; Rollup; constructor(providers, isBoLD, config, abi, minAgeBlocks) { if (config.isBoLD != isBoLD) throw new TypeError('isBold mismatch'); super(providers); this.isBoLD = isBoLD; this.minAgeBlocks = minAgeBlocks; this.Rollup = new Contract(config.Rollup, abi, this.provider1); } get unfinalized() { return !!this.minAgeBlocks; } encodeWitness(commit, proofSeq) { return ABI_CODER.encode(['(bytes, bytes[], bytes)'], [[commit.encodedRollupProof, proofSeq.proofs, proofSeq.order]]); } windowFromSec(sec) { // finalization time is not on-chain // the delta between createdAtBlock is a sufficient proxy return Math.ceil(sec / MAINNET_BLOCK_SEC); // units of L1 blocks } }