@firmachain/firma-js
Version:
The Official FirmaChain Javascript SDK written in Typescript
91 lines (90 loc) • 4.92 kB
TypeScript
import { SignDoc, TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
import { Duration } from "cosmjs-types/google/protobuf/duration";
import { EncodeObject, Registry } from "@cosmjs/proto-signing";
import { SignAndBroadcastOptions, TxMisc } from "./firmachain/common";
import { FirmaConfig } from "./FirmaConfig";
import { FirmaWalletService } from "./FirmaWalletService";
import { Any } from "cosmjs-types/google/protobuf/any";
import { CommonTxClient } from "./firmachain/common/CommonTxClient";
import { ArbitraryVerifyData } from "./firmachain/common/SigningProtobufStargateClient";
export declare class FirmaUtil {
static config: FirmaConfig;
static readonly FctDecimal: number;
constructor(firmaConfig: FirmaConfig);
static getSignAndBroadcastOption(denom: string, txMisc: TxMisc): SignAndBroadcastOptions;
static getUTokenStringFromTokenStr(tokenAmount: string, decimal: number): string;
static getTokenStringFromUTokenStr(uTokenAmount: string, decimal: number): string;
static getUTokenStringFromToken(tokenAmount: number, decimal: number): string;
static getUTokenFromToken(tokenAmount: number, decimal: number): number;
static arrayBufferToBase64(buffer: Uint8Array): string;
static base64ToArrayBuffer(base64: string): Uint8Array;
static getTokenStringFromUToken(uTokenAmount: number, decimal: number): string;
static getUFCTStringFromFCTStr(fctAmount: string): string;
static getUFCTFromFCT(fctAmount: number): number;
static getFCTStringFromUFCTStr(uFctAmount: string): string;
static getUFCTStringFromFCT(fctAmount: number): string;
static getFCTStringFromUFCT(uFctAmount: number): string;
static getFileHash(filePath: string): Promise<string>;
static getFileHashFromBuffer(buffer: Uint8Array): string;
static getSha1HashFromString(text: string): string;
static getHashFromString(text: string): string;
static isValidAddress(address: string): boolean;
static buf2hex(buffer: Uint8Array): string;
static getHexAddressFromAddress(address: string): string;
static getValOperAddressFromAccAddress(address: string): string;
static getValConsAddressFromAccAddress(consensusPubkey: string): string;
static getAccAddressFromValOperAddress(address: string): string;
static estimateGas(txRaw: TxRaw): Promise<number>;
static estimateGasRaw(txRaw: Uint8Array): Promise<number>;
static getAccountInfo(address: string): Promise<{
account_number: string;
sequence: string;
}>;
static getChainId(): Promise<string>;
static printLog(log: any): void;
/**
* ADR-036 protobuf arbitrary signing (wrapper for protobufArbitrarySign)
*
* @param wallet - FirmaWalletService instance
* @param data - Arbitrary data string to sign
* @returns ArbitraryVerifyData for verification
*/
static experimentalAdr36Sign(wallet: FirmaWalletService, data: string): Promise<ArbitraryVerifyData>;
/**
* ADR-036 protobuf arbitrary signature verification (wrapper for protobufArbitraryVerify)
*
* @param data - ArbitraryVerifyData to verify
* @param checkMsg - Original message that was signed
* @returns boolean indicating if the signature is valid
*/
static experimentalAdr36Verify(data: ArbitraryVerifyData, checkMsg: string): Promise<boolean>;
static makeSignDoc(signerAddress: string, pubkey: string, messages: readonly EncodeObject[], txMisc?: TxMisc): Promise<SignDoc>;
static makeSignDocWithStringify(signerAddress: string, pubkey: string, messages: readonly EncodeObject[], txMisc?: TxMisc): Promise<string>;
private static recoverSigningAddress;
private static verifySignature;
static verifyDirectSignature(address: string, signature: string, signDoc: SignDoc): Promise<boolean>;
static parseSignDocValues(signDocString: string): any;
static stringifySignDocValues(signDoc: any): string;
static getAnyData(registry: Registry, message: EncodeObject): Any;
static getCommonTxClient(aliceWallet: FirmaWalletService): CommonTxClient;
static parseDurationString(durationStr: string): {
seconds: bigint;
nanos: number;
};
static createDurationFromString(durationStr: string): Duration;
/**
* Safely processes commission rate strings to prevent big.Int conversion errors.
* Converts decimal commission rates to Cosmos SDK atomics format (integer representation).
*
* @param commissionRate - Commission rate string from staking params
* @returns Processed commission rate string safe for protobuf usage (atomics format or empty string)
*/
static processCommissionRateAsDecimal(commissionRate: string): string;
}
export declare const DefaultTxMisc: {
memo: string;
fee: number;
gas: number;
feeGranter: string;
};
export declare const getSignAndBroadcastOption: typeof FirmaUtil.getSignAndBroadcastOption;