import { AddressOrPair, SubmittableExtrinsic } from "@polkadot/api/types"; import { ISubmittableResult } from "@polkadot/types/types"; import { EventRecord, DispatchError } from "@polkadot/types/interfaces/system"; import { ExtrinsicStatus } from "@polkadot/types/interfaces/author"; import { ApiPromise } from "@polkadot/api"; import { AugmentedEvent, ApiTypes } from "@polkadot/api/types"; import type { AnyTuple } from "@polkadot/types/types"; import { MonetaryAmount, Currency } from "@interlay/monetary-js"; import { DryRunResult } from "../types"; export interface TransactionAPI { api: ApiPromise; setAccount(account: AddressOrPair): void; removeAccount(): void; getAccount(): AddressOrPair | undefined; sendLogged(transaction: SubmittableExtrinsic<"promise">, successEventType?: AugmentedEvent, extrinsicStatus?: ExtrinsicStatus): Promise; /** * Builds a submittable extrinsic to send other extrinsic in batch. * * @param extrinsics An array of extrinsics to be submitted as batch. * @param atomic Whether the given extrinsics should be handled atomically or not. * When true (default) all extrinsics will rollback if one fails (batchAll), otherwise allows partial successes (batch). * @returns A batch/batchAll submittable extrinsic. */ buildBatchExtrinsic(extrinsics: SubmittableExtrinsic<"promise", ISubmittableResult>[], atomic?: boolean): SubmittableExtrinsic<"promise", ISubmittableResult>; /** * Getter for fee estimate of the extrinsic. * * @param {SubmittableExtrinsic<"promise">} extrinsic Extrinsic to get fee estimation about. * @returns {MonetaryAmount} amount of native currency that will be paid as transaction fee. * @note This fee estimation does not include tip. */ getFeeEstimate(extrinsic: SubmittableExtrinsic<"promise">): Promise>; /** * Tests extrinsic execution against runtime. * * @param {SubmittableExtrinsic<"promise">} extrinsic Extrinsic to dry run. * @return {Promise} Object consisting of `success` boolean that is true if extrinsic * was successfully executed, false otherwise. If execution fails, caught error is exposed. */ dryRun(extrinsic: SubmittableExtrinsic<"promise">): Promise; } export declare class DefaultTransactionAPI implements TransactionAPI { api: ApiPromise; private account?; constructor(api: ApiPromise, account?: AddressOrPair | undefined); setAccount(account: AddressOrPair): void; removeAccount(): void; getAccount(): AddressOrPair | undefined; sendLogged(transaction: SubmittableExtrinsic<"promise">, successEventType?: AugmentedEvent, extrinsicStatus?: ExtrinsicStatus): Promise; getFeeEstimate(extrinsic: SubmittableExtrinsic<"promise">): Promise>; dryRun(extrinsic: SubmittableExtrinsic<"promise">): Promise; buildBatchExtrinsic(extrinsics: SubmittableExtrinsic<"promise", ISubmittableResult>[], atomic?: boolean): SubmittableExtrinsic<"promise", ISubmittableResult>; /** * Builds a submittable extrinsic to send other extrinsic in batch. * * @param api The ApiPromis instance to construct the batch extrinsic with. * @param extrinsics An array of extrinsics to be submitted as batch. * @param atomic Whether the given extrinsics should be handled atomically or not. * When true (default) all extrinsics will rollback if one fails (batchAll), otherwise allows partial successes (batch). * @returns A batch/batchAll submittable extrinsic. */ static buildBatchExtrinsic(api: ApiPromise, extrinsics: SubmittableExtrinsic<"promise", ISubmittableResult>[], atomic?: boolean): SubmittableExtrinsic<"promise", ISubmittableResult>; static sendLogged(api: ApiPromise, account: AddressOrPair, transaction: SubmittableExtrinsic<"promise">, successEventType?: AugmentedEvent, extrinsicStatus?: ExtrinsicStatus): Promise; static printEvents(api: ApiPromise, events: EventRecord[]): void; static isDispatchError(eventData: unknown): eventData is DispatchError; static doesArrayContainEvent(events: EventRecord[], eventType: AugmentedEvent): boolean; }