UNPKG

@tokamak-network/thanos-sdk

Version:
88 lines (87 loc) 4.81 kB
import { Provider, TransactionResponse, TransactionRequest, TransactionReceipt } from '@ethersproject/abstract-provider'; import { Signer } from '@ethersproject/abstract-signer'; import { BigNumber, PayableOverrides, ethers } from 'ethers'; import { BedrockOutputData, BedrockCrossChainMessageProof } from '@tokamak-network/core-utils'; import { DepositTransactionRequest, OEContracts, OEContractsLike, NumberLike, SignerOrProviderLike, ProvenWithdrawal, WithdrawalMessageInfo, WithdrawalTransactionRequest, MessageStatus, StateRoot, StateRootBatch } from './interfaces'; import { DeepPartial } from './utils'; export declare class Portals { l1SignerOrProvider: Signer | Provider; l2SignerOrProvider: Signer | Provider; l1ChainId: number; l2ChainId: number; contracts: OEContracts; depositConfirmationBlocks: number; l1BlockTimeSeconds: number; bedrock: boolean; private _outputCache; constructor(opts: { l1SignerOrProvider: SignerOrProviderLike; l2SignerOrProvider: SignerOrProviderLike; l1ChainId: NumberLike; l2ChainId: NumberLike; depositConfirmationBlocks?: NumberLike; l1BlockTimeSeconds?: NumberLike; contracts?: DeepPartial<OEContractsLike>; bedrock?: boolean; }); get l1Provider(): Provider; get l2Provider(): Provider; get l1Signer(): Signer; get l2Signer(): Signer; getL1BlockNumber(): Promise<number>; getMessageStatus(txReceipt: TransactionReceipt): Promise<MessageStatus>; getL1ToL2MessageStatusByReceipt(txReceipt: TransactionReceipt): Promise<MessageStatus>; getStateBatchAppendedEventByBatchIndex(batchIndex: number): Promise<ethers.Event | null>; getStateBatchAppendedEventByTransactionIndex(transactionIndex: number): Promise<ethers.Event | null>; getStateRootBatchByTransactionIndex(transactionIndex: number): Promise<StateRootBatch | null>; getMessageStateRoot(transactionHash: string): Promise<StateRoot | null>; getMessageBedrockOutput(l2BlockNumber: number): Promise<BedrockOutputData | null>; getL2ToL1MessageStatusByReceipt(txReceipt: TransactionReceipt): Promise<MessageStatus>; calculateRelayedDepositTxID(txReceipt: TransactionReceipt): Promise<string>; calculateWithdrawalMessage(txReceipt: TransactionReceipt): Promise<WithdrawalMessageInfo>; calculateWithdrawalMessageByL2TxHash(transactionHash: string): Promise<WithdrawalMessageInfo>; waitForMessageStatus(txReceipt: TransactionReceipt, status: MessageStatus, opts?: { pollIntervalMs?: number; timeoutMs?: number; }): Promise<void>; getChallengePeriodSeconds(): Promise<number>; getBedrockMessageProof(withdrawalMessageInfo: WithdrawalMessageInfo): Promise<BedrockCrossChainMessageProof>; getProvenWithdrawal(withdrawalHash: string): Promise<ProvenWithdrawal>; isValidOutputRoot(outputRoot: string, l2BlockNumber: number): Promise<boolean>; getFinalizedWithdrawalStatus(withdrawalHash: string): Promise<boolean>; depositTransaction(request: DepositTransactionRequest, opts?: { signer?: Signer; }): Promise<TransactionResponse>; initiateWithdrawal(request: WithdrawalTransactionRequest, opts?: { signer?: Signer; }): Promise<TransactionResponse>; proveWithdrawalTransaction(message: WithdrawalMessageInfo, opts?: { signer?: Signer; }): Promise<TransactionResponse>; proveWithdrawalTransactionUsingL2Tx(transactionHash: string, opts?: { signer?: Signer; }): Promise<TransactionResponse>; finalizeWithdrawalTransaction(message: WithdrawalMessageInfo, opts?: { signer?: Signer; }): Promise<TransactionResponse>; finalizeWithdrawalTransactionUsingL2Tx(transactionHash: string, opts?: { signer?: Signer; }): Promise<TransactionResponse>; fpac(): Promise<boolean>; populateTransaction: { depositTransaction: (request: DepositTransactionRequest) => Promise<TransactionRequest>; initiateWithdrawal: (request: WithdrawalTransactionRequest) => Promise<TransactionRequest>; proveWithdrawalTransaction: (message: WithdrawalMessageInfo, opts?: { overrides?: PayableOverrides; }) => Promise<TransactionRequest>; finalizeWithdrawalTransaction: (message: WithdrawalMessageInfo) => Promise<TransactionRequest>; }; estimateGas: { depositTransaction: (request: DepositTransactionRequest) => Promise<BigNumber>; initiateWithdrawal: (request: WithdrawalTransactionRequest) => Promise<BigNumber>; proveWithdrawalTransaction: (message: WithdrawalMessageInfo, opts?: { overrides?: PayableOverrides; }) => Promise<BigNumber>; finalizeWithdrawalTransaction: (message: WithdrawalMessageInfo) => Promise<BigNumber>; }; }