import { AmountData, BaseRequestSign, ChainType, ExtrinsicDataTypeMap, ExtrinsicStatus, ExtrinsicType, ValidateTransactionResponse } from '@soul-wallet/extension-base/background/KoniTypes'; import EventEmitter from 'eventemitter3'; import { TransactionConfig } from 'web3-core'; import { SubmittableExtrinsic } from '@polkadot/api/promise/types'; import { EventRecord } from '@polkadot/types/interfaces'; export interface SWTransaction extends ValidateTransactionResponse, Partial> { id: string; url?: string; isInternal: boolean; chain: string; chainType: ChainType; address: string; data: ExtrinsicDataTypeMap[ExtrinsicType]; status: ExtrinsicStatus; extrinsicHash: string; extrinsicType: ExtrinsicType; createdAt: number; updatedAt: number; estimateFee?: AmountData; transaction: SubmittableExtrinsic | TransactionConfig; additionalValidator?: (inputTransaction: SWTransactionResponse) => Promise; eventsHandler?: (eventEmitter: TransactionEmitter) => void; } export declare type SWTransactionResult = Omit; declare type SwInputBase = Pick & Partial>; export interface SWTransactionInput extends SwInputBase, Partial> { id?: string; transaction?: SWTransaction['transaction'] | null; warnings?: SWTransaction['warnings']; errors?: SWTransaction['errors']; edAsWarning?: boolean; isTransferAll?: boolean; } export declare type SWTransactionResponse = SwInputBase & Pick & Partial>; export declare type ValidateTransactionResponseInput = SWTransactionInput; export declare type TransactionEmitter = EventEmitter; export interface TransactionEventResponse extends ValidateTransactionResponse { id: string; extrinsicHash?: string; blockHash?: string; blockNumber?: number; eventLogs?: EventRecord[]; nonce?: number; startBlock?: number; } export interface TransactionEventMap { send: (response: TransactionEventResponse) => void; signed: (response: TransactionEventResponse) => void; extrinsicHash: (response: TransactionEventResponse) => void; error: (response: TransactionEventResponse) => void; success: (response: TransactionEventResponse) => void; } export {};