import Long from "long"; import _m0 from "protobufjs/minimal"; import { Any } from "../../../google/protobuf/any"; import { Coin } from "../../base/v1beta1/coin"; import { CompactBitArray } from "../../crypto/multisig/v1beta1/multisig"; import { SignMode } from "../signing/v1beta1/signing"; export declare const protobufPackage = "cosmos.tx.v1beta1"; /** Tx is the standard type used for broadcasting transactions. */ export interface Tx { /** body is the processable content of the transaction */ body: TxBody | undefined; /** * auth_info is the authorization related content of the transaction, * specifically signers, signer modes and fee */ authInfo: AuthInfo | undefined; /** * signatures is a list of signatures that matches the length and order of * AuthInfo's signer_infos to allow connecting signature meta information like * public key and signing mode by position. */ signatures: Uint8Array[]; } /** * TxRaw is a variant of Tx that pins the signer's exact binary representation * of body and auth_info. This is used for signing, broadcasting and * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and * the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used * as the transaction ID. */ export interface TxRaw { /** * body_bytes is a protobuf serialization of a TxBody that matches the * representation in SignDoc. */ bodyBytes: Uint8Array; /** * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the * representation in SignDoc. */ authInfoBytes: Uint8Array; /** * signatures is a list of signatures that matches the length and order of * AuthInfo's signer_infos to allow connecting signature meta information like * public key and signing mode by position. */ signatures: Uint8Array[]; } /** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ export interface SignDoc { /** * body_bytes is protobuf serialization of a TxBody that matches the * representation in TxRaw. */ bodyBytes: Uint8Array; /** * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the * representation in TxRaw. */ authInfoBytes: Uint8Array; /** * chain_id is the unique identifier of the chain this transaction targets. * It prevents signed transactions from being used on another chain by an * attacker */ chainId: string; /** account_number is the account number of the account in state */ accountNumber: Long; } /** * SignDocDirectAux is the type used for generating sign bytes for * SIGN_MODE_DIRECT_AUX. */ export interface SignDocDirectAux { /** * body_bytes is protobuf serialization of a TxBody that matches the * representation in TxRaw. */ bodyBytes: Uint8Array; /** public_key is the public key of the signing account. */ publicKey: Any | undefined; /** * chain_id is the identifier of the chain this transaction targets. * It prevents signed transactions from being used on another chain by an * attacker. */ chainId: string; /** account_number is the account number of the account in state. */ accountNumber: Long; /** sequence is the sequence number of the signing account. */ sequence: Long; /** * tips have been depreacted and should not be used * * @deprecated */ tip: Tip | undefined; } /** TxBody is the body of a transaction that all signers sign over. */ export interface TxBody { /** * messages is a list of messages to be executed. The required signers of * those messages define the number and order of elements in AuthInfo's * signer_infos and Tx's signatures. Each required signer address is added to * the list only the first time it occurs. * By convention, the first required signer (usually from the first message) * is referred to as the primary signer and pays the fee for the whole * transaction. */ messages: Any[]; /** * memo is any arbitrary note/comment to be added to the transaction. * WARNING: in clients, any publicly exposed text should not be called memo, * but should be called `note` instead (see * https://github.com/cosmos/cosmos-sdk/issues/9122). */ memo: string; /** * timeout_height is the block height after which this transaction will not * be processed by the chain. */ timeoutHeight: Long; /** * unordered, when set to true, indicates that the transaction signer(s) * intend for the transaction to be evaluated and executed in an un-ordered * fashion. Specifically, the account's nonce will NOT be checked or * incremented, which allows for fire-and-forget as well as concurrent * transaction execution. * * Note, when set to true, the existing 'timeout_timestamp' value must * be set and will be used to correspond to a timestamp in which the transaction is deemed * valid. * * When true, the sequence value MUST be 0, and any transaction with unordered=true and a non-zero sequence value will * be rejected. * External services that make assumptions about sequence values may need to be updated because of this. */ unordered: boolean; /** * timeout_timestamp is the block time after which this transaction will not * be processed by the chain. * * Note, if unordered=true this value MUST be set * and will act as a short-lived TTL in which the transaction is deemed valid * and kept in memory to prevent duplicates. */ timeoutTimestamp: Date | undefined; /** * extension_options are arbitrary options that can be added by chains * when the default options are not sufficient. If any of these are present * and can't be handled, the transaction will be rejected */ extensionOptions: Any[]; /** * extension_options are arbitrary options that can be added by chains * when the default options are not sufficient. If any of these are present * and can't be handled, they will be ignored */ nonCriticalExtensionOptions: Any[]; } /** * AuthInfo describes the fee and signer modes that are used to sign a * transaction. */ export interface AuthInfo { /** * signer_infos defines the signing modes for the required signers. The number * and order of elements must match the required signers from TxBody's * messages. The first element is the primary signer and the one which pays * the fee. */ signerInfos: SignerInfo[]; /** * Fee is the fee and gas limit for the transaction. The first signer is the * primary signer and the one which pays the fee. The fee can be calculated * based on the cost of evaluating the body and doing signature verification * of the signers. This can be estimated via simulation. */ fee: Fee | undefined; /** * Tip is the optional tip used for transactions fees paid in another denom. * * This field is ignored if the chain didn't enable tips, i.e. didn't add the * `TipDecorator` in its posthandler. * * @deprecated */ tip: Tip | undefined; } /** * SignerInfo describes the public key and signing mode of a single top-level * signer. */ export interface SignerInfo { /** * public_key is the public key of the signer. It is optional for accounts * that already exist in state. If unset, the verifier can use the required \ * signer address for this position and lookup the public key. */ publicKey: Any | undefined; /** * mode_info describes the signing mode of the signer and is a nested * structure to support nested multisig pubkey's */ modeInfo: ModeInfo | undefined; /** * sequence is the sequence of the account, which describes the * number of committed transactions signed by a given address. It is used to * prevent replay attacks. */ sequence: Long; } /** ModeInfo describes the signing mode of a single or nested multisig signer. */ export interface ModeInfo { /** single represents a single signer */ single?: ModeInfo_Single | undefined; /** multi represents a nested multisig signer */ multi?: ModeInfo_Multi | undefined; } /** * Single is the mode info for a single signer. It is structured as a message * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the * future */ export interface ModeInfo_Single { /** mode is the signing mode of the single signer */ mode: SignMode; } /** Multi is the mode info for a multisig public key */ export interface ModeInfo_Multi { /** bitarray specifies which keys within the multisig are signing */ bitarray: CompactBitArray | undefined; /** * mode_infos is the corresponding modes of the signers of the multisig * which could include nested multisig public keys */ modeInfos: ModeInfo[]; } /** * Fee includes the amount of coins paid in fees and the maximum * gas to be used by the transaction. The ratio yields an effective "gasprice", * which must be above some miminum to be accepted into the mempool. */ export interface Fee { /** amount is the amount of coins to be paid as a fee */ amount: Coin[]; /** * gas_limit is the maximum gas that can be used in transaction processing * before an out of gas error occurs */ gasLimit: Long; /** * if unset, the first signer is responsible for paying the fees. If set, the * specified account must pay the fees. the payer must be a tx signer (and * thus have signed this field in AuthInfo). setting this field does *not* * change the ordering of required signers for the transaction. */ payer: string; /** * if set, the fee payer (either the first signer or the value of the payer * field) requests that a fee grant be used to pay fees instead of the fee * payer's own balance. If an appropriate fee grant does not exist or the * chain does not support fee grants, this will fail */ granter: string; } /** * Tip is the tip used for meta-transactions. * * @deprecated */ export interface Tip { /** amount is the amount of the tip */ amount: Coin[]; /** tipper is the address of the account paying for the tip */ tipper: string; } /** * AuxSignerData is the intermediary format that an auxiliary signer (e.g. a * tipper) builds and sends to the fee payer (who will build and broadcast the * actual tx). AuxSignerData is not a valid tx in itself, and will be rejected * by the node if sent directly as-is. */ export interface AuxSignerData { /** * address is the bech32-encoded address of the auxiliary signer. If using * AuxSignerData across different chains, the bech32 prefix of the target * chain (where the final transaction is broadcasted) should be used. */ address: string; /** * sign_doc is the SIGN_MODE_DIRECT_AUX sign doc that the auxiliary signer * signs. Note: we use the same sign doc even if we're signing with * LEGACY_AMINO_JSON. */ signDoc: SignDocDirectAux | undefined; /** mode is the signing mode of the single signer. */ mode: SignMode; /** sig is the signature of the sign doc. */ sig: Uint8Array; } export declare const Tx: { encode(message: Tx, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Tx; fromJSON(object: any): Tx; toJSON(message: Tx): unknown; create(base?: DeepPartial): Tx; fromPartial(object: DeepPartial): Tx; }; export declare const TxRaw: { encode(message: TxRaw, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TxRaw; fromJSON(object: any): TxRaw; toJSON(message: TxRaw): unknown; create(base?: DeepPartial): TxRaw; fromPartial(object: DeepPartial): TxRaw; }; export declare const SignDoc: { encode(message: SignDoc, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SignDoc; fromJSON(object: any): SignDoc; toJSON(message: SignDoc): unknown; create(base?: DeepPartial): SignDoc; fromPartial(object: DeepPartial): SignDoc; }; export declare const SignDocDirectAux: { encode(message: SignDocDirectAux, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SignDocDirectAux; fromJSON(object: any): SignDocDirectAux; toJSON(message: SignDocDirectAux): unknown; create(base?: DeepPartial): SignDocDirectAux; fromPartial(object: DeepPartial): SignDocDirectAux; }; export declare const TxBody: { encode(message: TxBody, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TxBody; fromJSON(object: any): TxBody; toJSON(message: TxBody): unknown; create(base?: DeepPartial): TxBody; fromPartial(object: DeepPartial): TxBody; }; export declare const AuthInfo: { encode(message: AuthInfo, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AuthInfo; fromJSON(object: any): AuthInfo; toJSON(message: AuthInfo): unknown; create(base?: DeepPartial): AuthInfo; fromPartial(object: DeepPartial): AuthInfo; }; export declare const SignerInfo: { encode(message: SignerInfo, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SignerInfo; fromJSON(object: any): SignerInfo; toJSON(message: SignerInfo): unknown; create(base?: DeepPartial): SignerInfo; fromPartial(object: DeepPartial): SignerInfo; }; export declare const ModeInfo: { encode(message: ModeInfo, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo; fromJSON(object: any): ModeInfo; toJSON(message: ModeInfo): unknown; create(base?: DeepPartial): ModeInfo; fromPartial(object: DeepPartial): ModeInfo; }; export declare const ModeInfo_Single: { encode(message: ModeInfo_Single, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Single; fromJSON(object: any): ModeInfo_Single; toJSON(message: ModeInfo_Single): unknown; create(base?: DeepPartial): ModeInfo_Single; fromPartial(object: DeepPartial): ModeInfo_Single; }; export declare const ModeInfo_Multi: { encode(message: ModeInfo_Multi, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Multi; fromJSON(object: any): ModeInfo_Multi; toJSON(message: ModeInfo_Multi): unknown; create(base?: DeepPartial): ModeInfo_Multi; fromPartial(object: DeepPartial): ModeInfo_Multi; }; export declare const Fee: { encode(message: Fee, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Fee; fromJSON(object: any): Fee; toJSON(message: Fee): unknown; create(base?: DeepPartial): Fee; fromPartial(object: DeepPartial): Fee; }; export declare const Tip: { encode(message: Tip, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Tip; fromJSON(object: any): Tip; toJSON(message: Tip): unknown; create(base?: DeepPartial): Tip; fromPartial(object: DeepPartial): Tip; }; export declare const AuxSignerData: { encode(message: AuxSignerData, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AuxSignerData; fromJSON(object: any): AuxSignerData; toJSON(message: AuxSignerData): unknown; create(base?: DeepPartial): AuxSignerData; fromPartial(object: DeepPartial): AuxSignerData; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export {};