import { EthFetchConfig, PreprocessResult } from '@sentio/protos'; import { PartiallyOptional, PromiseOrVoid } from '../core/index.js'; import { AccountBindOptions } from './bind-options.js'; import { TransferEvent as ERC20TransferEvent } from './builtin/erc20.js'; import { TransferEvent as ERC721TransferEvent } from './builtin/erc721.js'; import { AccountContext } from './context.js'; import { AddressOrTypeEventFilter, EventsHandler } from './base-processor.js'; import { TypedEvent } from './eth.js'; import { EthChainId } from '@sentio/chain'; export declare class AccountProcessor { config: AccountBindOptions; eventHandlers: EventsHandler[]; static bind(config: PartiallyOptional): AccountProcessor; protected constructor(config: PartiallyOptional); getChainId(): EthChainId; /** * Register custom handler function to process erc20 transfer event to this account * @param handler custom handler function * @param tokensAddresses all the erc20 token address to watch * @param fetchConfig * @param preprocessHandler */ onERC20TransferIn(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC20TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; /** * Register custom handler function to process erc20 transfer event from this account * @param handler custom handler function * @param tokensAddresses all the erc20 token address to watch * @param fetchConfig * @param preprocessHandler */ onERC20TransferOut(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC20TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; /** * Register custom handler function to process erc20 mint for this account * @param handler custom handler function * @param tokensAddresses all the erc20 token address to watch * @param fetchConfig * @param preprocessHandler */ onERC20Minted(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC20TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; private onERC20; /** * Register custom handler function to process ERC721 transfer event to this account * @param handler custom handler function * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721 * @param fetchConfig * @param preprocessHandler */ onERC721TransferIn(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC721TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; /** * Register custom handler function to process ERC721 transfer event from this account * @param handler custom handler function * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721 * @param fetchConfig * @param preprocessHandler */ onERC721TransferOut(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC721TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; /** * Register custom handler function to process ERC721 mint for this account * @param handler custom handler function * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721 * @param fetchConfig * @param preprocessHandler */ onERC721Minted(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections?: string[], fetchConfig?: Partial, preprocessHandler?: (event: ERC721TransferEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; private onERC721; private onERC; protected onEvent(handler: (event: TypedEvent, ctx: AccountContext) => PromiseOrVoid, filter: AddressOrTypeEventFilter | AddressOrTypeEventFilter[], fetchConfig?: Partial, preprocessHandler?: (event: TypedEvent, ctx: AccountContext, preprocessStore: { [k: string]: any; }) => Promise): this; } //# sourceMappingURL=account-processor.d.ts.map