import { Fee, ModeInfo } from '@routerprotocol/chain-api/cosmos/tx/v1beta1/tx_pb'; import { PublicKey } from '@routerprotocol/chain-api/tendermint/crypto/keys_pb'; export interface SignerInfo { public_key: PublicKey | null; mode_info: ModeInfo; sequence: string; } export interface AuthInfo { signer_infos: SignerInfo[]; fee: Fee; } export interface TxBody { messages: any[]; memo: string; timeout_height: string; } export interface Tx { body: TxBody; auth_info: AuthInfo; signatures: string[]; } export interface TxLog { msg_index: number; log: string; events: { type: string; attributes: { key: string; value: string; }[]; }[]; } export interface TxInfo { height: string; txhash: string; codespace: string; code: number; data: string; raw_log: string; logs: TxLog[]; info: string; gas_wanted: string; gas_used: string; tx: Tx; timestamp: string; } export interface Wait { height: number; txhash: string; raw_log: string; gas_wanted: number; gas_used: number; logs: TxLog[]; timestamp: string; } export interface Block extends Wait { info: string; data: string; } export interface Sync { height: number; txhash: string; raw_log: string; } export interface Async { height: number; txhash: string; } export interface TxSuccess { logs: TxLog[]; } export interface TxError { code: number | string; codespace?: string; } export declare type TxBroadcastResult = B & C; export declare type WaitTxBroadcastResult = TxBroadcastResult; export declare type BlockTxBroadcastResult = TxBroadcastResult; export declare type SyncTxBroadcastResult = TxBroadcastResult; export declare type AsyncTxBroadcastResult = TxBroadcastResult; export declare enum BroadcastMode { Sync = "BROADCAST_MODE_SYNC", Async = "BROADCAST_MODE_ASYNC", Block = "BROADCAST_MODE_BLOCK" } export interface TxResult { tx: Tx; tx_response: TxInfo; } export interface TxSearchResult { pagination: any; txs: TxInfo[]; } export interface TxSearchResultParams { txs: Tx; tx_responses: TxInfo; pagination: any; } export interface SimulationResponse { gas_info: { gas_wanted: string; gas_used: string; }; result: { data: string; log: string; events: { type: string; attributes: { key: string; value: string; }[]; }[]; }; }