UNPKG

@unruggable/gateways

Version:

Trustless Ethereum Multichain CCIP-Read Gateway

36 lines 1.87 kB
import type { ChainPair, HexString, Provider, ProviderPair, ProofSequenceV1, ProofSequence, BigNumberish } from './types.js'; import type { AbstractProver } from './vm.js'; export type RollupDeployment<Config> = Readonly<ChainPair & Config>; export type RollupCommit<P extends AbstractProver> = { readonly index: bigint; readonly prover: P; }; export type Rollup = AbstractRollup<RollupCommit<AbstractProver>>; export type RollupCommitType<R extends Rollup> = Parameters<R['fetchParentCommitIndex']>[0]; export declare abstract class AbstractRollup<C extends RollupCommit<AbstractProver>> { configure: (<T extends C>(commit: T) => void) | undefined; latestBlockTag: BigNumberish; getLogsStepSize: number; readonly provider1: Provider; readonly provider2: Provider; constructor(providers: ProviderPair); protected abstract _fetchCommit(index: bigint): Promise<C>; abstract fetchLatestCommitIndex(): Promise<bigint>; abstract encodeWitness(commit: C, proofSeq: ProofSequence): HexString; abstract windowFromSec(sec: number): number; get unfinalized(): boolean; protected _fetchParentCommitIndex(commit: C): Promise<bigint>; isCommitStillValid(_commit: C): Promise<boolean>; fetchParentCommitIndex(commit: C): Promise<bigint>; fetchCommit(index: bigint): Promise<C>; fetchLatestCommit(): Promise<C>; fetchParentCommit(commit: C): Promise<C>; fetchRecentCommits(count: number): Promise<C[]>; get defaultWindow(): number; } export interface RollupWitnessV1<C extends RollupCommit<AbstractProver>> { encodeWitnessV1(commit: C, proofSeq: ProofSequenceV1): HexString; } export declare function supportsV1<R extends Rollup>(rollup: R): rollup is R & RollupWitnessV1<RollupCommitType<R>>; export declare function align(index: bigint, step: number): bigint; //# sourceMappingURL=rollup.d.ts.map