@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
36 lines • 1.87 kB
TypeScript
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