import { BaseContract, Overrides } from 'ethers'; import { LogParams, BlockParams, TransactionReceiptParams, TransactionResponseParams } from 'ethers/providers'; import { EthCallContext, PreparedData, RecordMetaData } from '@sentio/protos'; import { Trace } from './eth.js'; import { Labels } from '../core/index.js'; import { BaseContext } from '../core/base-context.js'; import { EthChainId } from '@sentio/chain'; export declare abstract class EthContext extends BaseContext { readonly chainId: EthChainId; address: string; private readonly log?; readonly block?: BlockParams; readonly trace?: Trace; readonly blockNumber: number; readonly transactionHash?: string; readonly transaction?: TransactionResponseParams; readonly transactionReceipt?: TransactionReceiptParams; readonly timestamp: Date; readonly preparedData?: PreparedData; constructor(chainId: EthChainId, address: string, timestamp?: Date, block?: BlockParams, log?: LogParams, trace?: Trace, transaction?: TransactionResponseParams, transactionReceipt?: TransactionReceiptParams, baseLabels?: Labels, preparedData?: PreparedData); protected abstract getContractName(): string; getChainId(): EthChainId; getMetaDataInternal(name: string, labels: Labels): RecordMetaData; getBlockTag(overrides?: Overrides): string; getEthCallContext(): EthCallContext; } export declare class AccountContext extends EthContext { protected getContractName(): string; } export declare class GlobalContext extends EthContext { constructor(chainId: EthChainId, address: string, timestamp?: Date, block?: BlockParams, log?: LogParams, trace?: Trace, transaction?: TransactionResponseParams, transactionReceipt?: TransactionReceiptParams, baseLabels?: Labels, preparedData?: PreparedData); protected getContractName(): string; getMetaDataInternal(name: string, labels: Labels): RecordMetaData; } export declare class ContractContext>> extends EthContext { contract: TContractBoundView; contractName: string; constructor(contractName: string, view: TContractBoundView, chainId: EthChainId, timestamp?: Date, block?: BlockParams, log?: LogParams, trace?: Trace, transaction?: TransactionResponseParams, transactionReceipt?: TransactionReceiptParams, baseLabels?: Labels, preparedData?: PreparedData); protected getContractName(): string; } export declare class ContractView { protected contract: TContract; constructor(contract: TContract); get rawContract(): TContract; get provider(): import("ethers").Provider; } export declare class BoundContractView> { protected view: TContractView; address: string; context: EthContext; callStatic: { context: EthContext; view: TContractView; }; encodeCall: { context: EthContext; view: TContractView; }; constructor(address: string, view: TContractView); get rawContract(): TContract; get provider(): import("ethers").Provider; get filters(): Record>; } //# sourceMappingURL=context.d.ts.map