import { BigNumber, ethers } from 'ethers'; import { YlideMailerV6 } from '@ylide/ethereum-contracts'; import { EthereumBlockchainReader } from '../controllers/helpers/EthereumBlockchainReader'; import { IMessageContent, IMessageCorruptedContent, Uint256 } from '@ylide/sdk'; import { MailPushEventObject, MailContentEventObject } from '@ylide/ethereum-contracts/lib/YlideMailerV6'; import { IEVMEnrichedEvent, IEVMEvent, IEVMMailerContractLink, IEVMMessage } from '../misc'; import { TypedEvent, TypedEventFilter } from '@ylide/ethereum-contracts/lib/common'; import { EventParsed } from '../controllers/helpers/ethersHelper'; import { GenericMessageContentEventObject } from '../controllers/helpers/EthereumContentReader'; import { ContractCache } from './ContractCache'; export declare class EthereumMailerV6Wrapper { readonly blockchainReader: EthereumBlockchainReader; readonly cache: ContractCache; constructor(blockchainReader: EthereumBlockchainReader); static deploy(signer: ethers.Signer, from: string): Promise; mailPushLogToEvent(log: { log: ethers.providers.Log; logDescription: ethers.utils.LogDescription; }): IEVMEvent; validateMessage(mailer: IEVMMailerContractLink, message: IEVMMessage | null): void; processMailPushEvent(mailer: IEVMMailerContractLink, event: IEVMEnrichedEvent): IEVMMessage; retrieveHistoryDesc(mailer: IEVMMailerContractLink, getBaseIndex: () => Promise, getFilter: (contract: YlideMailerV6) => TypedEventFilter, processEvent: (event: IEVMEnrichedEvent>) => IEVMMessage, fromMessage: IEVMMessage | null, includeFromMessage: boolean, toMessage: IEVMMessage | null, includeToMessage: boolean, limit: number | null): Promise; getRecipientToMailIndex(mailer: IEVMMailerContractLink, recipient: Uint256): Promise; getSenderToBroadcastIndex(mailer: IEVMMailerContractLink, sender: string): Promise; getOwner(mailer: IEVMMailerContractLink): Promise; setOwner(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, owner: string): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; }>; getBeneficiary(mailer: IEVMMailerContractLink): Promise; setBeneficiary(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, beneficiary: string): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; }>; getFees(mailer: IEVMMailerContractLink): Promise<{ contentPartFee: BigNumber; recipientFee: BigNumber; }>; setFees(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, fees: { contentPartFee: BigNumber; recipientFee: BigNumber; }): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; }>; sendSmallMail(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, uniqueId: number, recipient: Uint256, key: Uint8Array, content: Uint8Array): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; logs: ethers.utils.LogDescription[]; mailPushEvents: IEVMEvent[]; messages: IEVMMessage[]; }>; sendBulkMail(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, uniqueId: number, recipients: Uint256[], keys: Uint8Array[], content: Uint8Array): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; logs: ethers.utils.LogDescription[]; mailPushEvents: IEVMEvent[]; messages: IEVMMessage[]; }>; addMailRecipients(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, uniqueId: number, initTime: number, recipients: Uint256[], keys: Uint8Array[]): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; logs: ethers.utils.LogDescription[]; mailPushEvents: IEVMEvent[]; messages: IEVMMessage[]; }>; sendMessageContentPart(mailer: IEVMMailerContractLink, signer: ethers.Signer, from: string, uniqueId: number, initTime: number, parts: number, partIdx: number, content: Uint8Array): Promise<{ tx: ethers.ContractTransaction; receipt: ethers.ContractReceipt; logs: ethers.utils.LogDescription[]; }>; getMailPushEvent(mailer: IEVMMailerContractLink, blockNumber: number, txIndex: number, logIndex: number): Promise; retrieveMailHistoryDesc(mailer: IEVMMailerContractLink, recipient: Uint256, fromMessage: IEVMMessage | null, includeFromMessage: boolean, toMessage: IEVMMessage | null, includeToMessage: boolean, limit: number | null): Promise; processMessageContentEvent(args: MailContentEventObject): GenericMessageContentEventObject; retrieveMessageContent(mailer: IEVMMailerContractLink, message: IEVMMessage): Promise; }