import { MapStateStorage } from '@sentio/runtime' import { Data_FuelBlock, Data_FuelReceipt, Data_FuelTransaction, FuelAssetHandlerConfig, FuelCallHandlerConfig, FuelReceiptHandlerConfig, HandleInterval, OnIntervalConfig, ProcessResult } from '@sentio/protos' import { Block, TransactionSummary } from 'fuels' export interface FuelBaseProcessor { configure(): Promise config: T txHandlers: CallHandler[] blockHandlers: BlockHandler[] receiptHandlers?: ReceiptHandler[] } export class FuelProcessorState extends MapStateStorage> { static INSTANCE = new FuelProcessorState() } export type CallHandler = { handlerName: string handler: (call: T) => Promise fetchConfig?: Partial assetConfig?: Partial partitionHandler?: (call: T) => Promise } export type ReceiptHandler = { handlerName: string handler: (receipt: Data_FuelReceipt) => Promise receiptConfig?: Partial partitionHandler?: (receipt: Data_FuelReceipt) => Promise } export type BlockHandler = { blockInterval?: HandleInterval timeIntervalInMinutes?: HandleInterval handler: (block: Data_FuelBlock) => Promise handlerName: string fetchConfig?: Partial partitionHandler?: (block: Data_FuelBlock) => Promise } export interface FuelLog { logId: string data: T receiptIndex: number } export type FuelTransaction = TransactionSummary & { blockNumber?: string logs?: FuelLog[] sender?: string } export type FuelBlock = Omit export type ContractTransferFilter = { assetId?: string from?: string to?: string }