@firmachain/firma-js
Version:
The Official FirmaChain Javascript SDK written in Typescript
31 lines (30 loc) • 1.26 kB
TypeScript
import { EncodeObject, Registry } from "@cosmjs/proto-signing";
import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
import { SignAndBroadcastOptions } from "./TxCommon";
export interface LedgerWalletInterface {
getAddress(): Promise<string>;
sign(message: string): Promise<Uint8Array>;
getPublicKey(): Promise<Uint8Array>;
getAddressAndPublicKey(): Promise<{
address: string;
publicKey: Uint8Array;
}>;
showAddressOnDevice?(): Promise<void>;
}
export interface SignerData {
readonly account_number: number;
readonly sequence: number;
readonly chain_id: string;
}
/**
* Signs a protobuf-based Cosmos transaction using a general Signer
* compatible with SIGN_MODE_DIRECT (e.g. Ledger, Keplr, etc.)
*
* @param signer - SignerInterface instance
* @param messages - Cosmos transaction messages
* @param signerData - Chain ID, account number, sequence
* @param option - Fee, memo, granter info
* @param registry - Protobuf registry for message encoding
* @returns TxRaw - fully signed transaction
*/
export declare function signWithSignerProtobuf(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;