import { SignModeMap } from '@routerprotocol/chain-api/cosmos/tx/signing/v1beta1/signing_pb'; import { BroadcastModeMap } from '@routerprotocol/chain-api/cosmos/tx/v1beta1/service_pb'; import { SignDoc, TxRaw } from '@routerprotocol/chain-api/cosmos/tx/v1beta1/tx_pb'; import { StdFee } from '@cosmjs/amino'; export interface TxClientBroadcastOptions { mode: BroadcastModeMap[keyof BroadcastModeMap]; timeout: number; } export interface TxClientBroadcastResponse { height: number; txHash: string; codespace: string; code: number; data?: string; rawLog: string; logs?: any[]; info?: string; gasWanted: number; gasUsed: number; timestamp: string; events?: any[]; logsList?: any[]; eventsList?: any[]; } export interface TxClientSimulateResponse { result: { data: Uint8Array | string; log: string; eventsList: any[]; }; gasInfo: { gasWanted: number; gasUsed: number; }; } export interface TxConcreteApi { broadcast(txRaw: TxRaw, options?: TxClientBroadcastOptions): Promise; broadcastBlock(txRaw: TxRaw): Promise; fetchTx(txHash: string): Promise; fetchTxPoll(txHash: string): Promise; simulate(txRaw: TxRaw): Promise; } export declare enum TxClientMode { gRpc = "grpc", rest = "rest" } export declare type MsgArg = { type: string; message: any; }; export interface SignerDetails { pubKey: string; sequence: number; accountNumber: number; } /** @type {CreateTransactionWithSignersArgs} */ export interface CreateTransactionWithSignersArgs { fee?: StdFee; memo?: string; chainId: string; message: MsgArg | MsgArg[]; signers: SignerDetails | SignerDetails[]; signMode?: SignModeMap[keyof SignModeMap]; timeoutHeight?: number; } /** @type {CreateTransactionArgs} */ export interface CreateTransactionArgs { fee?: StdFee; memo?: string; chainId: string; message: MsgArg | MsgArg[]; pubKey: string; sequence: number; accountNumber: number; signMode?: SignModeMap[keyof SignModeMap]; timeoutHeight?: number; } /** @type {CreateTransactionResult} */ export interface CreateTransactionResult { txRaw: TxRaw; signDoc: SignDoc; bodyBytes: Uint8Array; signers: SignerDetails | SignerDetails[]; signer: SignerDetails; authInfoBytes: Uint8Array; signBytes: Uint8Array; signHashedBytes: Uint8Array; } export interface TxResponse { height: number; txHash: string; codespace: string; code: number; data?: string; rawLog: string; logs?: any[]; info?: string; gasWanted: number; gasUsed: number; timestamp: string; events?: any[]; logsList?: any[]; eventsList?: any[]; }